1
当我使用的事件处理程序:火狐等待loadedmetadata事件
video.on( “等待loadedmetadata”,函数(){...})
火狐似乎不正确时,设置视频尺寸回调被称为。 Chrome工作得很好。有没有办法在Firefox上正确地获取视频尺寸?
编辑: 它似乎工作,如果我把一个调试器,并通过代码手动运行。这让我相信这是一种竞争条件。但是这对我来说没有任何意义,因为该方法被调用,这意味着该事件应该正确发生=维度应该被设置。
下面的代码片段:
$("document").ready() ->
# Setup variables
video = $("#video")
toolbar = $("#toolbar")
canvas = $("#filter")
context = canvas.get(0).getContext('2d')
# Setup webcam
# I have a separate webcam module that simply wraps the behavior of
# navigator.getMediaStream. Works fine in chrome.
webcam.setup(() -> alert("Browser Unsupported."))
webcam.getMedia({video:true}, (localMediaStream) ->
video.attr("src", window.URL.createObjectURL(localMediaStream))
# Video loaded event
video.on "loadedmetadata", (e) ->
# Turn on video controls
video.prop("controls", true)
# Setup canvas dimensions and add border
width = video.width()
height = video.height()
canvas
.css("border", "solid")
.css("border-width", "1px")
.attr("width", width)
.attr("height", height)
# In firefox, the width and height are 0! In chrome, they
# are correct. I tested videoWidth/videoHeight and most other
# variables. Does not work.
发布一个更完整的代码片段,并解释你到底看到了什么。你有其他一些我们看不到的错误是完全可能的。 – 2013-10-27 04:54:43
添加了一些评论解释的片段。 – ImpGuard
https://bugzilla.mozilla.org/show_bug.cgi?id=926753 找到了。这确实是Firefox中的一个错误。该死。希望这会在我发布我正在工作之前解决。真的不想让黑客兼容。 – ImpGuard