我一直在尝试设置 mpeg dash 流,但我运气不佳。我有 dash.all.debug.js 添加到 html 中,但随后它要求我在这里找到的/dash.all.debug.js.map。但在那之后,什么都没有。显然有些东西正在工作,因为它要求地图文件,但在那之后,Chrome 和 Firefox 都没有做任何事情。他们要求 mpd,我给出并在随机网站上进行了验证,但没有向服务器提出任何请求。
HTML 代码是:
<html>
<head>
<script src="dash.all.debug.js"></script>
<script>
(function(){
var url = "http://dash.edgesuite.net/envivio/Envivio-dash2/manifest.mpd";
var player = dashjs.MediaPlayer().create();
player.initialize(document.querySelector("#videoPlayer"), url, true);
})();
</script>
</head>
<body>
<img src="Soranin.jpg" alt="not found" height=500>
video:
<video id="videoPlayer" src="media/movies/Demo/video.mpd" type="application/dash+xml"></video>
</body>
</html>
控制台日志显示
[10] [dash.js 2.6.8] MediaPlayer has been initialized
所以某个地方必须有一些东西在工作,对吧?我错过了什么?
这里有几个问题。
主要问题是初始化播放器的脚本中的 querySelector 返回 null,因为脚本在 DOM 准备就绪之前运行。将此脚本移动到正文底部以解决此问题,或者确保脚本在 DOM 准备就绪时运行,而不是立即运行。
第二种情况是无法将源设置为 DASH 清单并获得视频播放,因为大多数浏览器(Edge 除外(都无法进行本机 DASH 播放。如果是这样,你就不需要破折号.js了。从视频代码中移除src
和type
属性,并将上述初始化脚本中的url
变量设置为清单网址。
请按照 https://github.com/Dash-Industry-Forum/dash.js/#standard-setup 获取完整说明。还有一个超级简单的版本,你不需要编写任何代码:https://github.com/Dash-Industry-Forum/dash.js/#quick-start-for-users。