uniapp实现直播的方法:首先通过推流,代码为【<button class="btn" @click="start">开始推流</button>】;然后使用video标签实现拉流即可。
本教程操作环境:windows7系统、uni-app2.5.1版本,该方法适用于所有品牌电脑。
(免费):uni-app开发教程
uniapp实现直播的方法:
1、推流
<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 延时text = uni.createLivePusherContext('livePusher', this); }, methods: { statechange(e) { console.log('statechange:' + JSON.stringify(e)); }, netstatus(e) { console.log('netstatus:' + JSON.stringify(e)); }, error(e) { console.log('error:' + JSON.stringify(e)); }, start(){ this.context.start({ success: a => { console.log('livePusher.start:' + JSON.stringify(a)); }, error:err=>{ console.log(err) } }); }, close() { this.context.close({ success: a => { console.log('livePusher.close:' + JSON.stringify(a)); } }); }, snapshot() { this.context.snapshot({ success: e => { console.log(JSON.stringify(e)); } }); }, resume() { this.context.resume({ success: a => { console.log('livePusher.resume:' + JSON.stringify(a)); } }); }, pause() { this.context.pause({ success: a => { console.log('livePusher.pause:' + JSON.stringify(a)); } }); }, stop() { this.context.stop({ success: a => { console.log(JSON.stringify(a)); } }); }, switchCamera() { this.context.switchCamera({ success: a => { console.log('livePusher.switchCamera:' + JSON.stringify(a)); } }); }, startPreview() { this.context.startPreview({ success: a => { console.log('livePusher.startPreview:' + JSON.stringify(a)); } }); }, stopPreview() { this.context.stopPreview({ success: a => { console.log('livePusher.stopPreview:' + JSON.stringify(a)); } }); }, bofang(){ this.$u.route({ url: 'pages/index/index' }) } } }; </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、拉流
这里是app拉流,用的是video标签,代码如下
<template> <view> <video src="" style="width: 100vw;height: 400rpx;" :autoplay="true" controls></video> </view> </template> <script> export default {} </script>
src是请求接口得到的拉流地址
相关免费学习:php编程
消息,BTC空单在Hyperliquid平台上增持46.70枚,约合363.52万美元,持仓规模达到813.27万美元,均价...
2 伊朗同意通过技术委员会讨论核问题消息,据阿拉伯电视台记者披露,德黑兰同意通过技术委员会讨论核问题,长期冻结铀浓缩活...
3 Strategy对手盘:BTC空单增持95.92枚,持仓规消息,BTC空单在Hyperliquid平台上增持95.92枚,约合1,498,085.60美元,当前持仓规模为4,497,465.13美元...
4 麻吉黄立成:BTC多单增持25枚,当前盈亏消息,麻吉黄立成在Hyperliquid平台上增持BTC多单25.00枚,约合2,012,000.00美元。当前持仓规模为...
5 最新行情晚报:BTC比特币价格突破78000美XBIT Wallet数据来源,比特币BTC今日行情消息,BTC比特币最新价格:$78016.69000000,24小时涨2.1700...
6 币界晚讯 2026年4月加密领域遭遇40起重大1. 2026年4月加密领域遭遇40起重大黑客攻击,损失达6.47亿美元。 2. Arkham数据揭示2026年比特币最...
7 2026年4月加密领域遭遇40起重大黑客攻击,2026年4月,加密领域共发生40起重大黑客攻击,总损失达到6.47亿美元,较3月的5220万美元激增...
8 特朗普对德国总理涉伊朗言论不满美国总统特朗普近日对德国总理默茨关于伊朗的言论表达不满,并称美国正在研究削减驻德国...
9 比特币教育组织推出AI工具应对能源争议消息,北欧比特币教育组织Bitcoin Beyond 66发布了一款名为比特币证据库的开源AI数据库,旨在生...
10 Bakkt完成DTR收购,稳定币支付成未来增长消息,Bakkt已完成对分布式技术研究的收购,DTR是一家稳定币支付基础设施公司。此次交易将...
成都来彰科技 蜀ICP备2025134723号-1
资讯来源互联网,如有版权问题请联系管理员删除。