视频 js 在 angular 和 FF 中无法按预期工作

Video js not working as expected with angular and FF

提问人:Wizzard 提问时间:3/6/2015 更新时间:5/9/2015 访问量:855

问:

我需要创建带有视频的网站,这些视频具有自动播放功能,并取决于用户选择的配置文件。所以在 angular 中我创建了模板 popupVideo:

<video id="example_video_1" class="video-js vjs-default-skin"
       controls autoplay preload="auto" height="100%" width="100%">
  <source ng-repeat="vidObj in fullScreenVideoUrl" src="{{vidObj.url}}" type="{{vidObj.type}}"/>
  <p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/">supports HTML5 video</a></p>
</video>

然后在控制器中我有代码:

function showPopupVideo() {
        $scope.fullScreenVideoUrl = [];
        var webm = {};
        webm.url = $scope.currentProfile.video_full + ".webm";
        webm.type = "video/webm";
        $scope.fullScreenVideoUrl.push(webm);
        var mp4 = {};
        mp4.url = $scope.currentProfile.video_full + ".mp4";
        mp4.type = "video/mp4";
        $scope.fullScreenVideoUrl.push(mp4);
        var ogg = {};
        ogg.url = $scope.currentProfile.video_full + ".ogv";
        ogg.type = "video/ogg";
        $scope.fullScreenVideoUrl.push(ogg);
        ngDialog.open({
          template: 'scripts/contents/template/popupVideo.html',
          className: 'popup-fullscreen',
          scope: $scope
        });
      }

因此,在Chrome和IE中一切正常,窗口打开视频开始并播放。 但是在 FF 中一切都出错了,当窗口第一次打开时,它开始下载(根据网络监视器),但没有自动播放,同样在控制台中我可以看到:

Specified "type" attribute of "{{vidObj.type}}" is not supported. Load of media resource {{vidObj.url}} failed. localhost:3000
All candidate resources failed to load. Media load paused. localhost:3000
All candidate resources failed to load. Media load paused.

然而!如果我按播放,它开始播放视频!

然后,如果我关闭此窗口并再次打开,它会在控制台中显示相同的文本,即不支持,但是现在它开始播放视频,同时在其上显示文本“未找到具有受支持格式和MIME类型的视频”,这怎么可能???它找不到并同时播放它......

AngularJS HTML Firefox 视频

评论


答:

0赞 benwsmith 5/9/2015 #1

可能为时已晚,但您需要做的是使用 ng-src=“{{vidObj.url}}” 而不是 src=“{{vidObj.url}}”