Javascript Firefox drawImage tot画布错误:IndexSizeError:索引或大小为负或大于允许的数量
我曾经使用Chrome,但我需要用Firefox测试我的插件。 我试图捕获视频元素并将其绘制到画布上。在Chrome中,一切都很好,但在Firefox中,我遇到了这个恼人的错误,我还无法修复Javascript Firefox drawImage tot画布错误:IndexSizeError:索引或大小为负或大于允许的数量,javascript,firefox,canvas,drawimage,Javascript,Firefox,Canvas,Drawimage,我曾经使用Chrome,但我需要用Firefox测试我的插件。 我试图捕获视频元素并将其绘制到画布上。在Chrome中,一切都很好,但在Firefox中,我遇到了这个恼人的错误,我还无法修复 IndexSizeError: Index or size is negative or greater than the allowed amount 我正在使用以下代码行将视频$(“#视频”)[0]绘制到画布$(“#输出”)[0]。getContext('2d'): 我将获取video.width和v
IndexSizeError: Index or size is negative or greater than the allowed amount
我正在使用以下代码行将视频$(“#视频”)[0]
绘制到画布$(“#输出”)[0]。getContext('2d')
:
我将获取video.width和video.height值的错误。
我制作了一个JSFIDLE,它在Chrome中运行良好,但在Firefox中出现错误:尝试使用以下属性:
outputCtx.drawImage(video, 0,0, video.videoWidth, video.videoWeight,
0, 0, 1815, 1358);
源矩形必须始终位于源位图内。当其中一个参数在外部或0或负值时,会出现错误消息
在Firefox中,宽度可能并不反映实际的视频大小。因此,请尝试videoWidth/Height属性,或者在最坏的情况下将它们组合起来:
outputCtx.drawImage(video, 0,0,
video.videoWidth||video.width,
video.videoHeight||video.height,
0, 0, 1815, 1358);
希望这有帮助 谢谢你的回复!我已经改变了你的建议(),现在我再也不会犯错误了。快照已拍摄,但由于某些原因,两种浏览器(Chrome和FF)中的尺寸都过大(甚至视频元素上的宽度和高度属性都是正确的)。。
outputCtx.drawImage(video, 0,0,
video.videoWidth||video.width,
video.videoHeight||video.height,
0, 0, 1815, 1358);