解决uniapp在安卓app端播放rtsp直播流的播放器问题

1、在项目的 components 文件夹下面创建 video-player/video-player.vue 文件,代码如下:

<template>
    <!-- autoplay="false" -->
    <view name="videoPlayer" class="flex flex-direction" style="width: 100%;">
        <video id="myVideo" 
            class="response" 
            :src="videoUrl"
            :title="videoTitle"
            controls="true"
            page-gesture="true"
            object-fit="contain"
            show-mute-btn="true"
            enable-play-gesture="true"
            vslide-gesture="true"
            @error="videoErrorCallback" 
            @waiting="videoWaiting"
            @loadedmetadata="videoLoadOk"
            style="width: 100%;"
        ></video>
    </view>
</template>

<script>
export default {
    name: 'videoPlayer',
    props: {
        title: {
            type: String,
            default: ''
        },
        firstPic: {
            type: String,
            default: ''
        },
        videoType: {
            type: String,
            default: ''
        },
        videoSrc: {
            type: String,
            default: ''
        }
    },
    data() {
        return {
            videoUrl: this.videoSrc,
            firstImg: this.firstPic,
            videoTitle: this.title
        };
    },
    watch: {
        videoSrc() {
            this.setVideoUrl();
        }
    },
    mounted() {
        this.setVideoUrl();
    },

    onReady: function(res) {
        // #ifndef MP-ALIPAY
        this.videoContext = uni.createVideoContext('myVideo');
        // #endif
    },
    methods: {
        setVideoUrl() {
            console.log(this.videoSrc)
            // uni.setNavigationBarTitle({
            //     title: this.title
            // });
            this.videoUrl = this.videoSrc;
            this.firstImg = this.firstPic;
            this.videoTitle = this.title;
            
            console.log(this.firstImg + '___' + this.firstPic)
            
            console.log(this.title + '___' + this.videoTitle)
        },
        videoErrorCallback(e) {
            uni.showModal({
                content: e.target.errMsg,
                showCancel: false
            });
        },
        videoWaiting() {
            // uni.showLoading({
            //     title: '加载中'
            // });
        },
        videoLoadOk() {
             // uni.hideLoading();
        }
    }
};
</script>

<style>
</style>

2、在需要使用到的组件中引入、注册、使用:

// 引入
import VideoPlayer from '../../components/vvideo-player/vvideo-player.vue'

// 注册
components: {
    VideoPlayer
}

// 使用
<!-- #ifdef APP-PLUS -->
<video-player title="奥力给" videoSrc="rtsp://admin:xinhangzhiyuan1204@192.168.0.124:554/cam/realmonitor?channel=1&subtype=0&unicast=true">
</video-player>
<!-- #endif -->
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值