更新记录

1.0.9(2025-03-29)

优化细节

1.0.8(2025-03-28)

优化细节

1.0.7(2025-03-27)

优化细节

查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 4.25,Android:5.0,iOS:11,HarmonyNext:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
× × × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

yzc-vlckit 兼容安卓、iOS端VLC播放器,支持rtsp、rtmp流播放

uniappx用法

参数

参数 类型 是否必须 描述
url string 播放连接
options string数组 配置vlc,只在初始化配置有效
aspectRatio string 配置视频宽高比|

options配置可参考

方法

|方法名|参数|说明| |play|无参|播放方法| |pause|无参|暂停方法| |stop|无参|停止方法| |setupAspectRatio|string|设置宽高比(如"16:9")|

组件引入

复制代码<vlc-video 
ref="video"
class="video"
:options="vlcOptions"
url="rtsp://xxxxx"
aspectRatio="16:9"
@mediaPlayerStateChanged="mediaPlayerStateChanged"
@mediaPlayerTimeChanged="mediaPlayerTimeChanged"
@mediaPlayerVideoSizeChanged="mediaPlayerVideoSizeChanged"
></vlc-video>

类型导入

复制代码import { StateInfoType, TimeInfoType, VideoSizeType } from '@/uni_modules/yzc-vlckit/utssdk/interface.uts';

选项时API

复制代码export default {
    data() {
        return {
            videoElement: null as VlcVideoElement | null
        }
    },
    onLoad() {
    },
    methods: {
         btnClick() {
             if (this.videoElement == null) {
                 this.videoElement = this.$refs['video'] as VlcVideoElement
             }
             this.videoElement?.play()
             // this.videoElement?.pause()
             // this.videoElement?.stop()
         },
         // 状态改变回调方法
         mediaPlayerStateChanged(res: StateInfoType) {
            console.log('video: state', res.state)
         },
         // 时间改变回调方法
         mediaPlayerTimeChanged(res: TimeInfoType) {
            console.log('video: time', res.time) 
         },
         // 获取到真实视频的宽高
         mediaPlayerVideoSizeChanged(res: VideoSizeType) {
            console.log('video: Size', res.videoWidth, res.videoHeight)
         }
    }
}

组合式API

复制代码const video = ref(null)
const btnClick = (() => {
    (video.value as VlcVideoElement).play()
    // (video.value as VlcVideoElement).pause()
    // (video.value as VlcVideoElement).stop()
})
// 状态改变回调方法
const mediaPlayerStateChanged = ((res: StateInfoType) => {
    console.log('video: state', res.state)
})
// 时间改变回调方法
const mediaPlayerTimeChanged = ((res: TimeInfoType) => {
    console.log('video: time', res.time)
})
// 获取到真实视频的宽高
const mediaPlayerVideoSizeChanged = ((res: VideoSizeType) => {
    console.log('video: Size', res.videoWidth, res.videoHeight)
})

uniapp用法

复制代码export default {
    data() {
        return {
        }
    },
    onLoad() {
    },
    methods: {
         btnClick() {
             this.$refs['video'].play()
             // this.$refs['video'].pause()
             // this.$refs['video'].stop()
         },
         // 状态改变回调方法
         mediaPlayerStateChanged(res) {
            console.log('video: state', res.detail.state)
         },
         // 时间改变回调方法
         mediaPlayerTimeChanged(res) {
            console.log('video: time', res.detail.time) 
         },
         // 获取到真实视频的宽高
         mediaPlayerVideoSizeChanged(res) {
            console.log('video: Size', res.detail.videoWidth, res.detail.videoHeight)
         }
    }
}

mediaPlayerStateChanged方法回调说明

state说明

类型 描述
'buffering' 缓冲
'playing' 正在播放
'stopped' 播放暂停
'stopped' 播放停止
'ended' 播放结束
'error' 播放错误

mediaPlayerTimeChanged方法回调说明

time说明 返回为ms的整数类型

mediaPlayerVideoSizeChanged方法回调说明

参数 类型 描述
videoWidth number 视频宽(单位像素)
videoHeight number 视频高(单位像素)

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

100***@qq.com

2025-03-27

有联系方式吗作者

风在微笑 2025-03-27

单独私信我或者再交流群里找我

100***@qq.com 2025-03-27

这个群进不去我换个个群联系你的

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问