我正在使用 dash.js 库并通过 DASH 协议(protocol)为我的音频播放器实现自适应比特率。
在其中一种情况下,我遇到了问题,我不想自适应地改变比特率,而是希望它是特定的,即 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
auto 将允许自适应比特率,但在此之后的任何时间选择 320 kbps 时,它应该只获取该比特率的片段。
对于后一种情况,我面临这个问题。
有什么方法可以做到吗?我在这里遗漏了什么吗?
最佳答案
它没有设置比特率,因为它正在对比特率进行精确匹配。
到目前为止,如何使用 dash.js 设置比特率如下。
当您执行 player.setInitialBitrateFor('audio', 320);
时,它首先会从 mpd 文件中获取带宽。
然后有一个内部机制将带宽除以 1000,然后对值进行舍入。所以因为如果你的 mpd 文件包含像 bandwidth="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)
关于javascript - 如何使用 dash js 音频播放器仅播放特定比特率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42809288/