3

我在一个页面上有两个 MP4 视频,但加载不正确。第一个视频可以播放,但第二个视频只会显示黑屏。我已经尝试了Multiple video.js player failed on flash fallback中详述的修复,但它们没有奏效。

我已将后备顺序更改为先使用 flash,然后再使用 html5,因为 firefox 不会尝试退回到 flash。我知道这是导致问题的 Flash 播放器,就好像我保留了 html5 的默认顺序,然后是 flash,播放器将在 chrome 上运行。

这是我正在经历的一个小提琴:http: //jsfiddle.net/jSp8Z/

<script src="//vjs.zencdn.net/c/video.js"></script>
<link rel="stylesheet" href="//vjs.zencdn.net/c/video-js.css">

<video class="video-js vjs-default-skin" controls width="320" height="459" poster="" data-setup='{"techOrder":["flash","html5","links"]}'>
<source src="http://images.pitchero.com/up/2013-01-08-iphone-af.mp4" type="video/mp4">
</video>
<video class="video-js vjs-default-skin" controls width="320" height="459" poster="" data-setup='{"techOrder":["flash","html5","links"]}'>
<source src="http://images.pitchero.com/up/2013-01-08-iphone-matchday.mp4" type="video/mp4">
</video>

提前致谢

[编辑] 我找到了一个解决方案,将视频重新编码为 OGG for firefox,但我不会接受这个作为我自己的答案,除非没有办法通过 flash 后备解决这个问题。

4

3 回答 3

1

我找到了这个。它对我来说工作正常。将以下这些行添加到您的页面

<script>
var myVideo = _V_("example_video_1"); // get my videojs.  
function onComplete(){  
    var myVideo1 = document.getElementsByTagName('video')[0]; // get my <video> tag.  
    var videoPlaying = myVideo1.currentSrc; // get the file being played  
    var ext = videoPlaying.substr(videoPlaying.lastIndexOf(".")); // figure the correct extension  
    myVideo1.src = 'video/eu'+ext; // set up the new src  
    myVideo.load(); // load the new video  
    myVideo.play(); // play the new video  
    myVideo.removeEvent("ended", onComplete); // remove the listener  
};  
myVideo.addEvent("ended", onComplete); // listener handler  
</script>  
于 2014-07-01T06:02:18.577 回答
0

您正在尝试使用 HTML5 播放 .mp4 视频,这在 firefox 中至少本机不支持。

看看这里的兼容性图表

于 2013-01-09T12:50:55.680 回答
0

尝试为每个视频标签添加唯一的“id”属性。文档说这是必需的,这是有道理的,因为 Flash 和 JS 组件可能需要在相互交谈时区分视频元素

于 2013-04-18T13:23:19.243 回答