小程序的拉流组件live-player的使用

这篇具有很好参考价值的文章主要介绍了小程序的拉流组件live-player的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

        我们在小程序中实现音视频-直播/录播 的播放时候,会使用到微信官方提供的两个组件,推流组件和拉流组件,这里来分享下他的拉流组件的使用和具体需要注意的点。

效果图:

1、拉流状态code日志

小程序的拉流组件live-player的使用小程序的拉流组件live-player的使用

 小程序的拉流组件live-player的使用小程序的拉流组件live-player的使用

2、代码使用截图:

小程序的拉流组件live-player的使用

 官方文档:

live-player | 微信开放文档

 注意事项:

1、要用到 音视频,涉及直播的话小程序必须申请直播权限,不然你提审会出问题

2、音视频地址。目前仅支持 flvrtmp 格式

3、网络的状态码中,官方文档部分是没有的,比如 2026,6000等

具体使用:

1、wxml 上使用 标签

<live-player
    src="{{url}}"
    orientation="{{orientation}}"
    object-fit="{{objectFit}}"
    min-cache="{{minCache}}"
    max-cache="{{maxCache}}"
    mode="{{mode}}"
    autoplay="{{true}}"
    bindstatechange="onPlayStateChange"
    bindnetstatus="onPlayNetStateChange"
    bindaudiovolumenotify="onPlayAudiovolumenotify"
></live-player>

2、js中定义变量与方法

data: {
    //直播地址 rtmp://58.200.131.2:1935/livetv/cetv1          http://39.134.65.162/PLTV/88888888/224/3221225611/index.m3u8
    url:'',
    orientation: 'vertical', //画面方向
    objectFit: 'fillCrop', //填充模式
    minCache: 0.2, //最小缓冲区,单位s
    maxCache: 0.8, //最大缓冲区,单位s(RTC 模式推荐 0.8s)。缓冲区用来抵抗网络波动,缓冲数据越多,网络抗性越好,但时延越大。
    mode: 'live', //模式  live是直播
}
// 播放状态变化事件
onPlayStateChange(e) {
   const codeArr = [
      {
          code:'2001',
          value:'拉流:已经连接服务器',
      },{
          code:'2002',
          value:'拉流:已经连接 RTMP 服务器,开始拉流',
      },{
          code:'2003',
          value:'拉流:网络接收到首个视频数据包(IDR)',
      },{
          code:'2004',
          value:'拉流:视频播放开始',
     },{
          code:'2008',
          value:'拉流:解码器启动',
     },{
          code:'2009',
          value:'拉流:视频分辨率改变',
     },{
          code:'2105',
          value:'拉流:当前视频播放出现卡顿',
     }
    ]
   console.log('hx----------wx网络code:');
   console.log('+++++++++++++++++++++:');
   console.log(e.detail.code);
   let text = codeArr.filter(v=>v.code == e.detail.code)?codeArr.filter(v=>v.code == e.detail.code)[0].value:''
   console.log(text );
   console.log('hx----------wx网络code:');
   if(e.detail.code == 2001 || e.detail.code == 2002 || e.detail.code == 2008){
        this.triggerEvent('updateLoadingFlagHX',true)
   }
   if(e.detail.code == 2003 || e.detail.code == 2032){
        wx.showToast({
          title: '网络接收到首个视频数据包',
          icon: 'none',
        });
        //调用父级的方法
        this.triggerEvent('updateLoadingFlagHX',false)
   }

        
        //在这里做你的逻辑操作...

},
//网络问题
onPlayNetStateChange(e) {
     
},
// 播放声音数值
onPlayAudiovolumenotify(e) {
  if (e.detail.volume > 20) {
     // console.log(e,e.detail.volume,'采集声音')
  }
},

api文档:

属性说明

属性 类型 默认值 必填 说明 最低版本
src string 音视频地址。目前仅支持 flvrtmp 格式 1.7.0
mode string live 模式 1.7.0
合法值 说明
live 直播
RTC 实时通话,该模式时延更低
autoplay boolean false 自动播放 1.7.0
muted boolean false 是否静音 1.7.0
orientation string vertical 画面方向 1.7.0
合法值 说明
vertical 竖直
horizontal 水平
object-fit string contain 填充模式,可选值有 containfillCrop 1.7.0
合法值 说明
contain 图像长边填满屏幕,短边区域会被填充⿊⾊
fillCrop 图像铺满屏幕,超出显示区域的部分将被截掉
background-mute boolean false 进入后台时是否静音(已废弃,默认退后台静音) 1.7.0
min-cache number 1 最小缓冲区,单位s(RTC 模式推荐 0.2s) 1.7.0
max-cache number 3 最大缓冲区,单位s(RTC 模式推荐 0.8s)。缓冲区用来抵抗网络波动,缓冲数据越多,网络抗性越好,但时延越大。 1.7.0
sound-mode string speaker 声音输出方式 1.9.90
合法值 说明
speaker 扬声器
ear 听筒
auto-pause-if-navigate boolean true 当跳转到本小程序的其他页面时,是否自动暂停本页面的实时音视频播放 2.5.0
auto-pause-if-open-native boolean true 当跳转到其它微信原生页面时,是否自动暂停本页面的实时音视频播放 2.5.0
picture-in-picture-mode string/Array 设置小窗模式: push, pop,空字符串或通过数组形式设置多种模式(如: ["push", "pop"]) 2.10.3
合法值 说明
[] 取消小窗
push 路由 push 时触发小窗
pop 路由 pop 时触发小窗
enable-auto-rotation boolean false 是否开启手机横屏时自动全屏,当系统设置开启自动旋转时生效 2.11.0
referrer-policy string no-referrer 格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 为小程序的 appid,{version} 为小程序的版本号,版本号为 0 表示为开发版、体验版以及审核版本,版本号为 devtools 表示为开发者工具,其余为正式版本; 2.13.0
合法值 说明
origin 发送完整的referrer
no-referrer 不发送
bindstatechange eventhandle 播放状态变化事件,detail = {code} 1.7.0
bindfullscreenchange eventhandle 全屏变化事件,detail = {direction, fullScreen} 1.7.0
bindnetstatus eventhandle 网络状态通知,detail = {info} 1.9.0
bindaudiovolumenotify eventhandler 播放音量大小通知,detail = {} 2.10.0
bindenterpictureinpicture eventhandler 播放器进入小窗 2.11.0
bindleavepictureinpicture eventhandler 播放器退出小窗 2.11.0

状态码

代码 说明
2001 拉流:已经连接服务器
2002 拉流:已经连接 RTMP 服务器,开始拉流
2003 拉流:网络接收到首个视频数据包(IDR)
2004 拉流:视频播放开始
2005 拉流:视频播放进度
2006 拉流:视频播放结束
2007 拉流:视频播放Loading
2008 拉流:解码器启动
2009 拉流:视频分辨率改变
2030 音频设备发生改变,即当前的输入输出设备发生改变,比如耳机被拔出
2032 拉流:视频渲染首帧事件
2101 拉流:当前视频帧解码失败
2102 拉流:当前音频帧解码失败
2103 拉流:网络断连, 已启动自动重连
2104 拉流:网络来包不稳:可能是下行带宽不足,或由于主播端出流不均匀
2105 拉流:当前视频播放出现卡顿
2106 拉流:硬解启动失败,采用软解
2107 拉流:当前视频帧不连续,可能丢帧
2108 拉流:当前流硬解第一个 I 帧失败,SDK自动切软解
3001 拉流:RTMP -DNS解析失败
3002 拉流:RTMP服务器连接失败
3003 拉流:RTMP服务器握手失败
3005 拉流:RTMP 读/写失败,之后会发起网络重试
-2301 拉流:网络断连,且经多次重连无效,请自行重启拉流
-2302 拉流:获取拉流地址失败

 文章来源地址https://www.toymoban.com/news/detail-423004.html

 

到了这里,关于小程序的拉流组件live-player的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue2 组件vue-video-player播放视频,支持hls格式

    参考教程:https://juejin.cn/post/6939898078526881823 官方:https://github.com/surmon-china/videojs-player 安装指令 安装指令要注意带上版本号,如果没有会默认使用最新版,最新版仅支持vue3,因此会出问题。 HLSPlay.vue 自定义组件代码 直接引用,如果组件配置了自动播放,则会自动播放。 更

    2024年02月11日
    浏览(52)
  • Tiny Player (js) - 轻量好用、免费开源的 web 视频播放开发组件,内置硬解、软解视频功能

    一款简单好用的 JS 视频播放器,完美解决我遇到的移动端播放视频的需求,安利给各位。 关于 Tiny Player Tiny Player 是一个极简的视频播放器 JS 库,内置硬解、软解视频功能,支持原生控件样式以及自定义控件样式,小巧的体积实现了全部的视频播放功能。 Tiny Player JS 视频播

    2024年02月16日
    浏览(46)
  • 程序员的英语课🍊-前言(一)

    Hello,大家好,我是李林。 今天给大家分享一下关于程序员学英语的技巧。 最近发现搞开发是越来越卷卷卷了,AI 越来越成熟,结合 AI 开发效率提升不少,效率高了,焦虑也高了,公司甚至想低代码结合 AI 直接零代码了,前几天又裁员一批,程序员太难了啊! 发现单纯的学

    2024年02月01日
    浏览(48)
  • 【Git小白使用教程,一看就会用,快速上手Git(二——建立本地仓库和对Gitee或GitHub远程仓库的拉取和推送】

    1.1、先在本地创建一个文件夹用作本地仓库,里面可以放你的项目代码或者你想要上传到远程仓库的文件。 1.2、然后在文件夹内通过cmd打开终端命令行 git init ——初始化本地仓库,运行成功后,文件夹内会出现一个.git文件 也可以在文件夹内右击鼠标,选择git bash打开git命令

    2024年02月04日
    浏览(74)
  • 使用Gstreamer+OpenCV实现两路图像数据混合拉流推流

    本示例看完后,可基本掌握以下内容 1、利用opencv+gstreamer拉流推流的基本步骤 2、可学习gstreamer,图像混合的一些插件用法 3、TX2 NX上的视频编解码与硬件加速,H264编码参数调整 4、linux下如何提高线程优先级 我需要实现的功能是在TX2 NX上,拉取摄像头数据,并在摄像头数据上

    2024年02月09日
    浏览(43)
  • 使用GParted-live对Ubuntu进行分区

    GParted-live下载官网:https://gparted.org/download.php 1、用Rufus制作gparted-live启动盘(Windows) Rufus下载官网:https://rufus.ie 2、 用Unetbootin制作gparted-live启动盘(WindowsLinuxMac) Unetbootin下载官网:https://unetbootin.github.io   3、在BIOS里更改启动项顺序 在重启或开机过程中一直不停地按Esc/F

    2024年02月14日
    浏览(37)
  • 在VSCode中使用Live Server真机调试

    转载:在vscode中使用Live Server 真机调试_vscode live server-CSDN博客 第一步 安装Live Server 1、在vscode 中搜索 Live Server并安装   2、安装完成之后 鼠标右键单击 html文件 点击 Open with Live Server 3、 然后会弹出默认浏览器 并显示页面 。可以看到路径 类似启动一个服务器  4、想要在手机

    2024年01月19日
    浏览(44)
  • 在vscode中使用Live Server 真机调试

    第一步 安装Live Server 1、在vscode 中搜索 Live Server并安装   2、安装完成之后 鼠标右键单击 html文件 点击 Open with Live Server 3、 然后会弹出默认浏览器 并显示页面 。可以看到路径 类似启动一个服务器  4、想要在手机上访问 就需要输入你的IP地址加上后面的5500 查看ip地址 Wind

    2024年02月09日
    浏览(49)
  • uni app 使用live-pusher录制视频

    需求背景 当客户发货或者收货时 需要上传开箱或者封箱视频,直接选择相册视频上传速度太慢,现在随便一个视频都是几百M的,流量费很贵,所以就选择使用 直播推流的方式 实现视频上传。 app开发,推荐使用nvue做直播,比使用vue的优势有: nvue也可一套代码编译多端。

    2024年02月11日
    浏览(39)
  • 【深度学习】使用ffmpg及gstreamer进行视频拉流及编解码(一):ffmpg

    视频流需要编解码的主要原因是视频文件的数据量很大,直接传输视频文件会占用大量网络带宽和存储空间。而通过对视频进行编码和解码,可以将视频数据压缩到较小的体积,从而实现更高效的传输和存储。 具体来说,编码就是将原始的视频数据转换为压缩后的视频数据,

    2024年02月15日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包