Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用dash js音频播放器仅播放特定比特率?_Javascript_Media Source_Mediastream_Adaptive Bitrate_Dash.js - Fatal编程技术网

Javascript 如何使用dash js音频播放器仅播放特定比特率?

Javascript 如何使用dash js音频播放器仅播放特定比特率?,javascript,media-source,mediastream,adaptive-bitrate,dash.js,Javascript,Media Source,Mediastream,Adaptive Bitrate,Dash.js,我正在使用dash.js库,并通过dash协议为我的音频播放器实现自适应比特率 在其中一种情况下,我面临着一个问题,当我不想自适应地改变比特率时,我希望它是特定的,即320 kbps。我正在使用dash.js库中提供的方法,如下所示。但无法获取整个音频文件的静态比特率段 (function () { var url = "https://xxxxxxxxxxxx.xxxxxxxx.net/myplaylist.mpd"; var player = dashjs.MediaPlay

我正在使用dash.js库,并通过dash协议为我的音频播放器实现自适应比特率

在其中一种情况下,我面临着一个问题,当我不想自适应地改变比特率时,我希望它是特定的,即320 kbps。我正在使用dash.js库中提供的方法,如下所示。但无法获取整个音频文件的静态比特率段

(function () {
    var url = "https://xxxxxxxxxxxx.xxxxxxxx.net/myplaylist.mpd";
    var player = dashjs.MediaPlayer().create();
    player.initialize(document.querySelector("#audioPlayer"), url, true);
    player.setInitialBitrateFor('audio', 320);
    player.setQualityFor('audio', 320);
    player.setAutoSwitchQualityFor('audio', false);
    player.getDebug().setLogToBrowserConsole(false);
})();
所以基本上有两种选择:自动和320kbps

“自动”将允许自适应比特率,但在此后的任何时间选择320 kbps时,它应仅获取该比特率的段

对于后面的场景,我将面临这个问题


有什么方法可以做到这一点吗?我在这里遗漏了什么吗?

它没有设置比特率,因为它正在对比特率进行精确匹配

到目前为止,dash.js的比特率设置方式如下

当您执行
player.setInitialBitrateFor('audio',320)时首先它将从mpd文件中获取带宽。
然后是一个内部机制,它将带宽除以1000,然后对值进行四舍五入。因此,如果您的mpd文件包含带宽=“320000”,
然后
player.setInitialBitrateFor('audio',320)将起作用

带宽可能会有变化,如321684,它将生成比特率值=321。在这种情况下,您必须执行player.setInitialBitrateFor('audio',321)将起作用

另外,setQualityFor方法将索引作为第二个参数。 所以我们可以这样做

player.setQualityFor('audio', indexValue);
其中考虑到有三个自适应集和

low bitrate (64 kbps)     ==> 0 (indexValue)
Medium bitrate (128 kbps) ==> 1 (indexValue)
High bitrate (320 kbps)   ==> 2 (indexValue)