VideoJS не проигрывает после паузы RTMP прямой эфир
Я использую VideoJS для прямой трансляции с сервера Wowza, но когда я приостанавливаю проигрыватель и их воспроизведение, я снова играю, проигрыватель не восстанавливает поток. Мне нужно перезагрузить веб-страницу, чтобы начать поток снова.
<video id="videoID" class="video-js vjs-default-skin vjs-big-play-centered" poster="/images/image.png" controls="controls" width="320" height="240" data-setup='{"techOrder": ["flash"]}'>
<source src="rtmp://www.myhost.com:1935/live/live.stream" type="rtmp/mp4" />
</video>
Есть ли какой-нибудь способ сделать остановку или перезагрузку VideoJS при появлении приостановленного события?
РЕДАКТИРОВАТЬ: я столкнулся с решением с помощью этого сценария:
<script type="text/javascript">
var myPlayer = videojs('videoID');
videojs("videoID").ready(function(){
var myPlayer = this;
myPlayer.on("pause", function () {
myPlayer.on("play", function () { myPlayer.load (); myPlayer.off("play"); });
});
});
</script>
1 ответ
Итак, я нашел решение. Вместо удаления всех событий воспроизведения из плеера вам просто нужно отредактировать событие flash play внутри video.dev.js в строке 7337 (я думаю, что в версии 4.11.4). это строка, которая говорит:
vjs.Flash.prototype.play = function(){
this.el_.vjs_play();
};
это должно быть изменено, чтобы сказать:
vjs.Flash.prototype.play = function(){
this.el_.vjs_load();
this.el_.vjs_play();
};
так что событие загрузки вызывается до события воспроизведения.
Я нашел решение здесь
$(document).ready(function(){
var player = videojs('really-cool-video', { /* Options */}, function () {
// ...
var player = this;
player.on("pause", function () {
player.one("play", function () {
player.load();
player.play();
});
});
});
});