9***@qq.com
9***@qq.com
  • 发布:2019-12-31 14:15
  • 更新:2021-03-22 16:42
  • 阅读:1686

APP端使用video组件做观看直播页面

分类:uni-app

由于查看组件文档上说:App的实时音视频播放,不是使用 live-player,而是直接使用 video 组件。
于是我使用了video标签来做观看直播的组件;
我要问的问题是:在观看直播的过程中,主播断网了,当主播重新联网恢复推流继续直播后,在观看用户这边监听到了并打印log开始观看了,但是在页面上的表现并不是直播的视频画面,而是一直转圈加载中的黑色屏幕。无法继续观看直播。退出直播间,重新再次进入直播间可以观看了,但是这不符合产品设计,也是特别不好的用户体验。请问是不支持吗?或者我哪里使用错误?请帮忙解答一下。
下边是观看直播页面的一些代码:

<video  
        controls="true"  
        :poster="poster"  
        class="myVideo"  
        id="myVideo"  
        :src="src"  
        @play="play"  
        @error="videoErrorCallback"  
        enable-progress-gesture="false"  
        page-gesture="true"  
      ></video>
 export default {  
    onLoad(options) {  
        this.liveId = options.id  
    },  
    onReady() {  
        this.getPlayUrl()  
    },  
    data() {  
        return {  
            src: ''  
        }  
    },  
    methods: {  
        // 获取观看地址  
    async getPlayUrl() {  
      let options = {  
        ID: this.liveId  
      };  
      let result = await appliveInRu(options);  
      if (result.statusCode === 200 && result.errMsg.includes('request:ok')) {  
        let data = result.data;  
        console.log('获取拉流地址', data);  
        let msg = data._MSG_;  
        if (msg === '' || msg.startsWith('OK')) {  
          const _DATA_ = data._DATA_;  
          this.src = _DATA_.UIL;  
        } else {  
          uni.showToast({  
            title: msg,  
            icon: 'none'  
          });  
        }  
      }  
    },  
    play(e) {  
      console.log(e);  
      console.log('开始观看了');  
      // 开始观看  
      // this.getPlayUrl();  
    },  
    videoErrorCallback(e) {  
      console.log(e);  
      uni.showModal({  
        content: e.target.errMsg,  
        showCancel: false  
      });  
    },  
    }  
}
2019-12-31 14:15 负责人:无 分享
已邀请:
miron

miron

这个问题解决了吗,我也遇到这个问题

  • 9***@qq.com (作者)

    没有,官方没人答复

    2020-04-12 20:46

1***@qq.com

1***@qq.com

你好,这个问题解决了吗,我也遇到这个问题

[已删除]

[已删除]

这个问题我解决了

  • 1***@qq.com

    加你QQ了,能说一下怎么解决的吗?

    2020-04-27 19:35

2***@qq.com

2***@qq.com

请问你们是怎么解决的呢?

  • 锡城切图仔

    写个按钮刷新就可以了,一卡顿就一直刷,要么退出直播

    2020-06-30 09:19

1***@qq.com

1***@qq.com

有一个方法

第一 监听断流后 显示一个重新加载按钮 这一步不用说

第二 重点说一下怎么重新加载,据我查看文档。没发现video有重新加载这个方法(也可能是我没看见)。

     所以动态更新一下video组件的src就可以了  比如原来的拉流地址是xxx.xxx.com/live/123.flv只需要在重新加载的时候在地址后面加一个时间戳就ok了(xxx.xxx.com/live/123.flv?time=12312312),当src发生改变啊,video自然会重新加载视频源

该问题目前已经被锁定, 无法添加新回复