微信小程序多个视频组件同时播放

微信小程序多个视频组件同时播放,第1张

首先说一下我的应用场景, 在小程序中会有多个页面存在视频组件的情况, 为了防止视频播放时多个视频组件同时播放的情况,现记录一下方案:

一. 可以在需要视频播放的地方弄一个视频播放的按钮, 当视频播放的时候再孝搜初始化视频组件, 保证整个应用内只有一个视频组件(视频组件的位置需要计算), 整个方法只是理论下的情况

二. 在app.js中 设置两个对象, currentVideoId(播放视频组件的id)和videoContext(当前播放视频的对象, 通过wx.createVideoContext方法获得), 在页面的js中控制, 保证video组件绑定play方法:

 <video src="url" bindplay="play"></video>

在play方法中实现即可:

var id = e.currentTarget.id

      if (id != null) {

        if (app.currentVideoId != id) {

          if (app.videoContext != null) {

            app.videoContext.stop()

            console.warn("暂停")

          }

          app.currentVideoId = id

          app.videoContext = wx.createVideoContext(id)

        }

   瞎燃   }

因为currentVideoId 和videoContext是唯一的对象, 方法中播放监听事件会暂停之前的播放, 然后再赋值, 等下次video播放监听进来的时候, 会进行判断

三. 包含富文本组件的视频组件同时播放的情况

依据上面的例子, 当自定义富文本组件中包含多个video组件时也用上面的方法会产生错误磨慎虚, 虽然log会显示将执行视频暂停或者停止播放, 但是没有效果, 查看 视频api , 提示

根据api显示, id为video组件的id, 还有一个"Object this", 但是依据上面的api使用, 直接用id确实可以获取video对象, 但是api解释中提示, "在自定义组件下,当前组件实例的this,以 *** 作组件内 video组件", 在自定义组件中, 要加this, 所以总结: 在上面api使用中, 如果video在pages页面中, wx.createVideoContext参数只写id没有问题, 但是当video在自定义组件中, 要必须加this, 才能正确返回VideoContext对象

simplewebrtc的网页点对点视频聊天连接不上,可能是网络不好引起的。推荐选择ZEGO即构科技,该公司拥有4行代码,30分钟在APP、Web和小程序等应用内实现视频通话、语音通话,互动直播功能。【点击免费试用绝高橘,0成本启动】

ZEGO即构科技构建的音视频业务有:

1、音视频通话,实现1v1视频通话、多人视频通话。

2、音视直播,快速实现情感 FM、语聊房。

3、通话质量监测,透明的全链路数据,实时监控质量。

4、游戏语音,念塌范围语音、3D 音效等,助你搭建游戏语音。

5、音频频谱与音量变化,展示动感的音频状态。

6、变声/混响/立体声,丰富的变声玩法。

7、多路混流,把多路音视频流混流为一路流,节省带宽与性能。

8、IM 即并团时通讯,快速搭建语聊房内纯文本信息收发、广播消息以及d幕消息。

想要了解更多关于这方面的相关信息,推荐咨询ZEGO即构科技。ZEGO即构科技自成立伊始,就专注自研音视频引擎,在音频前处理、网络自适应和跨平台兼容性等方面,达到国际一流水平,同时充分利用基础云服务商的能力,构建了MSDN海量有序自学习数据网络,服务覆盖全球,涵盖上百个音视频互动业务场景,单日时长突破30亿分钟。

如果您需要一个高质量、可用性比较高的小程序webrtc解决方案,建议你选择一些知名的开发者或厂商,例如即构科技,支持多路视频画面,保障每一消闭路语音穗冲视频都清晰流畅提供端到端的SDK、分布式转码、接入鉴权云服务接入、摆脱运维、轻松支撑海量用户运营。即构科技拥有优秀的自研音视频引擎,整套技术独立可控,架拿族裂构高可靠,满足业务层的高质量体验需要。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12408708.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存