gpt4 book ai didi

javascript - 在 Flash 模式下切换比特率后,VideoJS 分辨率切换器不会自动重新启动

转载 作者:行者123 更新时间:2023-12-03 06:52:37 25 4
gpt4 key购买 nike

我们正在尝试为 video.js 播放器提供使用分辨率切换器插件 (https://github.com/kmoskwiak/videojs-resolution-switcher) 在不同视频比特率之间切换的能力。

这是一个演示页面,其中包含在 Flash 模式下运行 videojs 播放器的基本设置:jsbin (点击右上角的“在jsbin中编辑”查看实际代码)

该插件在 HTML5(DASH 和 HLS)流媒体中正常工作,但在 Flash 模式下失败。播放器将以默认比特率值(在本例中为“1080p”)开始播放,没有任何问题。当您实际切换比特率时会出现问题。如果您选择更改为不同的比特率,播放器将停止播放。没有浏览器控制台错误,播放器不会崩溃,只是卡住。似乎播放器甚至没有发送实际的 http 请求来获取新的视频源。有时插件甚至可以真正切换源,但它只是发生了几次,而且是随机的。换句话说,行为方式不稳定且 Not Acceptable 。

插件提供resolutionchange更改分辨率时应触发的事件,但事实并非如此。只有 UI 更改可见。

我非常感谢有关如何解决此行为的任何帮助或想法!

也包括在这里:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
<link href="http://vjs.zencdn.net/5.16.0/video-js.css" rel="stylesheet">
<style>
.video-js { background-color: black; }
video { width: 100%; height: 100% }
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/video.js/5.16.0/video.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-contrib-hls/5.1.0/videojs-contrib-hls.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dashjs/2.4.0/dash.all.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-contrib-dash/2.7.1/videojs-dash.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-resolution-switcher/0.4.2/videojs-resolution-switcher.min.js"></script>
</head>
<body>
<video id="player" class="video-js vjs-default-skin" width="450" height="250"></video>

<script>
videojs('player', {
preload: 'auto',
autoplay: true,
techOrder: ["flash"],
controls: true,
plugins: {
videoJsResolutionSwitcher: {
default: 1080,
dynamicLabel: true
}
}
}, function(){
handleReady(this);
});

var sources=[
{src:"rtmp://stagingmedia.livecoding.tv/livecodingtv/1080p_irwanbd?t=FDD4A16B14C34359A8677A339962B60D",label:"HQ",type:"rtmp/mp4",res:1080},
{src:"rtmp://stagingmedia.livecoding.tv/livecodingtv/720p_irwanbd?t=FDD4A16B14C34359A8677A339962B60D",label:"Medium",type:"rtmp/mp4",res:720},
{src:"rtmp://stagingmedia.livecoding.tv/livecodingtv/480p_irwanbd?t=FDD4A16B14C34359A8677A339962B60D",label:"Low",type:"rtmp/mp4",res:480}
];

function handleReady(player) {
window.player = player;
player.updateSrc(sources);
}
</script>
</body>
</html>

最佳答案

var player = videojs('video', {
controls: true,
muted: true,
width: 800,
plugins: {
videoJsResolutionSwitcher: {
ui: true,
default: '< default_res >', // Default resolution [{Number}, 'low', 'high'],
dynamicLabel: false
}
}
},
function() {
player.updateSrc([ < sourcetags > ]);
player.on('resolutionchange', function(){
player.play();
console.info('Source changed to %s', player.src());
})

关于javascript - 在 Flash 模式下切换比特率后,VideoJS 分辨率切换器不会自动重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42356285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com