Start push streaming]; then use the video tag to pull the stream."/> Start push streaming]; then use the video tag to pull the stream.">

Home >Web Front-end >uni-app >How uniapp implements live broadcast

How uniapp implements live broadcast

coldplay.xixi
coldplay.xixiOriginal
2020-12-15 17:50:0513010browse

Uniapp’s method of implementing live broadcast: first push the stream, the code is [75964874f6d2b01423dacf1140640b62Start push65281c5ac262bf6d81768915a4a77ac0 ]; Then use the video tag to pull the stream.

How uniapp implements live broadcast

The operating environment of this tutorial: windows7 system, uni-app2.5.1 version, Dell G3 computer.

uniapp's method of implementing live broadcast:

1. Push streaming

<template>
    <view class="content">
        <template>
            <view>
                <live-pusher
                    id="livePusher"
                    ref="livePusher"
                    class="livePusher"
                    url=""  **这里需要请求后端接口,拿到推流地址**
                    mode="SD"
                    :muted="true"
                    :enable-camera="true"
                    :auto-focus="true"
                    :beauty="1"
                    whiteness="2"
                    aspect="9:16"
                    @statechange="statechange"
                    @netstatus="netstatus"
                    @error="error"
                ></live-pusher>
                <button class="btn" @click="start">开始推流</button>
                <button class="btn" @click="pause">暂停推流</button>
                <button class="btn" @click="resume">resume</button>
                <button class="btn" @click="stop">停止推流</button>
                <button class="btn" @click="snapshot">快照</button>
                <button class="btn" @click="startPreview">开启摄像头预览</button>
                <button class="btn" @click="stopPreview">关闭摄像头预览</button>
                <button class="btn" @click="switchCamera">切换摄像头</button>
                <button class="btn" @click="bofang">去播放</button>
            </view>
        </template>
    </view>
</template>
<script>
export default {
    data() {
        return {
            context:[]
        };
    },
    onReady() {
        // 注意:需要在onReady中 或 onLoad 延时
        this.context = uni.createLivePusherContext(&#39;livePusher&#39;, this);
    },
    methods: {
        statechange(e) {
            console.log(&#39;statechange:&#39; + JSON.stringify(e));
        },
        netstatus(e) {
            console.log(&#39;netstatus:&#39; + JSON.stringify(e));
        },
        error(e) {
            console.log(&#39;error:&#39; + JSON.stringify(e));
        },
        start(){
            this.context.start({
                success: a => {
                    console.log(&#39;livePusher.start:&#39; + JSON.stringify(a));
                },
                error:err=>{
                    console.log(err)
                }
            });
        },
        close() {
            this.context.close({
                success: a => {
                    console.log(&#39;livePusher.close:&#39; + JSON.stringify(a));
                }
            });
        },
        snapshot() {
            this.context.snapshot({
                success: e => {
                    console.log(JSON.stringify(e));
                }
            });
        },
        resume() {
            this.context.resume({
                success: a => {
                    console.log(&#39;livePusher.resume:&#39; + JSON.stringify(a));
                }
            });
        },
        pause() {
            this.context.pause({
                success: a => {
                    console.log(&#39;livePusher.pause:&#39; + JSON.stringify(a));
                }
            });
        },
        stop() {
            this.context.stop({
                success: a => {
                    console.log(JSON.stringify(a));
                }
            });
        },
        switchCamera() {
            this.context.switchCamera({
                success: a => {
                    console.log(&#39;livePusher.switchCamera:&#39; + JSON.stringify(a));
                }
            });
        },
        startPreview() {
            this.context.startPreview({
                success: a => {
                    console.log(&#39;livePusher.startPreview:&#39; + JSON.stringify(a));
                }
            });
        },
        stopPreview() {
            this.context.stopPreview({
                success: a => {
                    console.log(&#39;livePusher.stopPreview:&#39; + JSON.stringify(a));
                }
            });
        },
        bofang(){
            this.$u.route({
                url: &#39;pages/index/index&#39;
            })
        }
    }
};
</script>
<style>
.content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.logo {
    height: 200rpx;
    width: 200rpx;
    margin-top: 200rpx;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 50rpx;
}
.text-area {
    display: flex;
    justify-content: center;
}
.title {
    font-size: 36rpx;
    color: #8f8f94;
}
</style>
**

2. Pull streaming

Here is the app streaming, using the video tag, the code is as follows

<template>
    <view>
        <video src="" style="width: 100vw;height: 400rpx;" :autoplay="true" controls></video>
    </view>
</template>
 
<script>
    export default {}
</script>

src is the streaming address obtained from the request interface

Related free learning recommendations: php programming (video)

Recommended (free): uni-app development tutorial

The above is the detailed content of How uniapp implements live broadcast. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn