强制更新角度js项目中的html5视频源

时间:2016-10-28 03:53:44

标签: angularjs angularjs-directive angularjs-scope html5-video

我有一个项目,我在视图中嵌入了html5视频。

我使用$ scope动态填充源代码。

我填充播放器的初始视频效果很好。

在视频结束时,我尝试将视频的src更改为下一个剪辑,直到结束。

我的问题是视频src没有更新,只播放初始剪辑。

这里是html(很直接):

            <video style="width:100%; height:100%; padding:0;" class="embed-responsive embed-responsive-16by9" id="myVideo" controls>
                <source ng-src="{{currentVideo}}" type="video/mp4">
            </video>

这是从控制器实现更改的代码:

        if (videoId.currentTime >= videoId.duration - 1) {
            // $state.go('unit_1');

               $scope.currentVideo = myObj.units[1].lessonUrl; //set video
               videoId.play();
        }

仅供参考 - videoId是视频的var。它工作正常,因为我可以播放(),暂停(),获取当前时间等。

所以我知道我控制了播放器并且我成功加载了初始视频。

我假设当$ scope更改新的视频网址时,但显然我错了。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:6)

如果您想更改视频的<source>元素上的src,则需要在 videoId.load();之前调用videoId.play(); ,否则只需直接更改src属性视频元素本身 - 然后不需要加载:

<video ng-src="{{currentVideo}}" style="width:100%; height:100%; padding:0;" class="embed-responsive embed-responsive-16by9" id="myVideo" controls>
</video>