【发布时间】:2016-11-28 23:40:58
【问题描述】:
我正在使用 video.js 和 videojs-playlist 在播放列表中显示一系列视频。每个来源都是一个从我的 MongoDB 和 Node 服务器流出的 url。
在播放列表之外,视频可以正确流式传输。使用播放列表库,只有第一个视频会反复播放。使用播放列表currentItem function 我可以看到索引始终为-1,永远不会改变,即使我尝试以编程方式进行。它会改变的唯一方法是如果我手动单击列表中的其他视频。
我认为这个问题与流式传输而不是从文件系统读取有关,但我对这个主题了解不足,无法调试。谢谢!
HTML
<section class="main-preview-player">
<video id="preview-player" class="video-js vjs-fluid vjs-big-play-centered" controls preload="auto">
<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/" target="_blank">supports HTML5 video</a>
</p>
</video>
<div class="playlist-container preview-player-dimensions vjs-fluid">
<ol class="vjs-playlist"></ol>
</div>
JS
$(document).ready(video);
function video() {
var arr = arrayOfIds.split(','); // IDs for video URLs
var player = videojs('preview-player');
function getPlaylist() {
var videos = arr.map(function(id) {
return obj = {
name: id,
sources: [{
src: "/api/mediaID/" + id, // URL for video stream
type: "video/mp4" // Is this right??
}]
}
})
player.playlist(videos, 0);
player.playlistUi();
}
function playNext() {
var num = player.playlist.currentItem();
console.log(num); // Always logs '-1'
player.playlist.next();
}
player.ready(function() {
if(arrayOfIds.length) {
getPlaylist();
}
player.on("ended", playNext);
})
}
【问题讨论】:
标签: javascript node.js video-streaming video.js playlist