DPlayer icon indicating copy to clipboard operation
DPlayer copied to clipboard

Quality switch does not work when play http-flv stream

Open lystormenvoy opened this issue 4 years ago • 6 comments

After I switch the quality, the default stream will continue being requested, and the other stream will start being loaded. The left-bottom of player will show a label with text 'Fast forward xx seconds' . But DPlayer will stop playing. The pause button will became play button. Sometimes it will work, but most of the time it failed

我切换清晰度之后,默认播放的流依然在加载,切换的流也会被加载。播放器左下角会显示一个标签“快进xx秒”。DPlayer停止播放。左下角的暂停按钮显示为播放按钮。 有时可以成功切换(不过依然是同时加载两个流),大部分时候是失败的。

GIF 2020-3-3 16-28-43

Code:

<script>   
const dp = new DPlayer({
    container: document.getElementById('dplayer'),
    live: true,
    autoplay: true,
    video: {
       quality: [
            {
                name: '高清',
                url: 'http://192.168.199.201:6080/flv/flvtest_HD',
                type: 'customFlv',
            },
            {  
                name: '标清',
                url: 'http://192.168.199.201:6080/flv/flvtest',
                type: 'customFlv',
            },
        ],
        defaultQuality:1,

        customType: {
            customFlv: function(video, player) {
                const flvPlayer = flvjs.createPlayer({
                type: 'flv',
                url: video.src,
                });
                flvPlayer.attachMediaElement(video);
                flvPlayer.load();
            },
        },
    },
    pluginOptions: {
         flv: {
        //     enableStashBuffer: true,
        //      isLive: true,
        //      fixAudioTimestampGap: false,
         },
    },
});
document.getElementById("sourceUrl").innerText = dp.options.video.url;
</script>

lystormenvoy avatar Mar 03 '20 08:03 lystormenvoy

我也遇到了同样的问题,请作者回复下吧。

greenhatking999 avatar Apr 22 '20 16:04 greenhatking999

切换 的flv 格式的直播流 也有问题 切换 不过去 直接报错

zhoulangchua avatar Aug 19 '20 03:08 zhoulangchua

请问有解决办法了么

guyijie1211 avatar May 14 '21 02:05 guyijie1211

请问有解决办法了么

销毁原来的,然后reload新的

lystormenvoy avatar May 20 '21 01:05 lystormenvoy

销毁原来的,然后reload新的

谢谢回答,但我还是不太明白销毁和reload的代码要写在哪里,怎么写。 下面是我的代码

var dp = new DPlayer({
              container: document.getElementById('dplayer'),
              autoplay: true, 
              live: true,
              video: {
                type: "customFlv",
                quality: this.quality,
                defaultQuality: this.quality.length-1,
                customType: {
                  customFlv: function (video, player) {
                    const flvPlayer = flvjs.createPlayer({
                      type: 'flv',
                      url: video.src,
                    });
                    flvPlayer.attachMediaElement(video);
                    flvPlayer.load();
                  },
                },
              },
            });

guyijie1211 avatar May 20 '21 05:05 guyijie1211

销毁原来的,然后reload新的

谢谢回答,但我还是不太明白销毁和reload的代码要写在哪里,怎么写。 下面是我的代码

var dp = new DPlayer({
              container: document.getElementById('dplayer'),
              autoplay: true, 
              live: true,
              video: {
                type: "customFlv",
                quality: this.quality,
                defaultQuality: this.quality.length-1,
                customType: {
                  customFlv: function (video, player) {
                    const flvPlayer = flvjs.createPlayer({
                      type: 'flv',
                      url: video.src,
                    });
                    flvPlayer.attachMediaElement(video);
                    flvPlayer.load();
                  },
                },
              },
            });

我也不太懂,我听前端开发人员说的

lystormenvoy avatar May 21 '21 11:05 lystormenvoy