小程序播放视频流(直播流)

一、前言

最近写小程序的过程中需要播放监控视频流的功能。

原先主要是在微信小程序中使用的。这次也要在钉钉上面实现,还是有一些差异的。

二、微信小程序

微信小程序是单独的一个直播的组件。这个组件的使用:

<live-player class="player" :src="videoSrc" autoplay @statechange="statechange" @error="playError" orientation="vertical">

监控用的是 rtmp 流,取到流后直接绑定到 src 就可以播放。

使用的时候要注意两个问题:

1、小程序类目的选择

可以根据自己小程序的定位选择合适的类目。

其中大部分的需要提交一些资质文件,其中有一个不需要:工具 > 视频客服,可以直接使用直播权限。

2、全屏

没有全屏按钮,需要自己实现

直播组件有自己的全屏方法可以直接调用(但是一直有问题,已解决,第二个参数加 this)

下面是实现代码:

复制代码
// 初始化组件上下文(在 vue 组件中使用,第二个参数需要加上 this,否则无法全屏)
this.playerCtx = uni.createLivePlayerContext('monitorPlayer',this);

// 全屏
fullScreen(){
    if(this.isFullScreen){
        this.playerCtx.exitFullScreen({
            success: res => {
                this.isFullScreen = false;
                console.log('fullscreen success');
            },
            fail: res => {
              console.log('exit fullscreen success');
            }
          });
    } else{
        this.playerCtx.requestFullScreen({
            direction: 90,
            success: res => {
                this.isFullScreen = true;
                console.log('我要执行了');
            },
            fail: res => {
              console.log('fullscreen fail',res);
            },
            complete: res=>{
                console.log('全屏调用完成返回:',res);
            }
          });
    }
    
}
复制代码

 

3、cover-view

由于要自己实现全屏,把放大按钮放在 live-player 上面,就去了解了 cover-view。

官方文档是:为了更好的体验使用原生组件进行的渲染(native)。

所以为了解决有时候需要在这些原生组件上面放一些要素可以使用 cover-view 放置在这些组件上。

三、钉钉小程序

钉钉小程序播放视频流(直播)是直接用 video 组件的。相对来说比较简单。

对应的这个 video 有直接全屏等的按钮功能(这个比微信方便很多)。

<video class="player" :src="videoSrc" :enableNative="true" autoplay></video>

同样直接绑定 rtmp 流地址给 src 就可以。

注意:

需要设置 enableNative 为 true 否则无法播放。

 

格式问题:

在使用 flv 视频流播放的时候有问题,安卓手机可以正常播放,IOS 无法播放(小程序调用系统原生组件播放,IOS 不支持 flv)

posted @   漠里  阅读(3520)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
历史上的今天:
2020-03-25 Element 中的 DropDown 定位解析
点击右上角即可分享
微信分享提示