多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 一、获取状态栏高度 ## 二、定义布局的内容距离顶部的间距为状态栏高度 ## 三、定义左上角关闭布局 ## 四、定义输入直播间名称布局 ## 五、定义工具布局 ## 六、 定义开始视频直播按钮 ## 七、 最终代码 ``` <template> <view> <live-pusher id="livePusher" ref="livePusher" class="livePusher" url="" :mode="mode" :muted="true" :enable-camera="enableCamera" :auto-focus="autoFocus" :beauty="beauty" whiteness="whiteness" device-position = "devicePosition" @statechange="statechange" @netstatus="netstatus" @error="error" :style="{'height' : windowHeight + 'px' }" style="width:750rpx" > </live-pusher> <view style="position: fixed; left : 0; right : 0; height: 500rpx;" :style="{'top' : statusBarHeight + 'px'}"> <!-- 关闭符号 --> <view class="flex align-center justify-center" style="width: 90rpx; height:90rpx; background-color: yellow;"> <text class="iconfont text-white">&#xe607;</text> </view> <!-- 输入直播间标题 --> <view class="position-absolute rounded bg-danger " style="left: 90rpx; right : 100rpx; height: 160rpx;"></view> <!-- 工具 --> <view class="position-absolute right-0 flex flex-column" style="width: 100rpx;"> <view style="height: 120rpx; width: 100rpx;" class="flex flex-column align-center justify-center bg-main"></view> <view style="height: 120rpx; width: 100rpx;" class="flex flex-column align-center justify-center bg-main"></view> <view style="height: 120rpx; width: 100rpx;" class="flex flex-column align-center justify-center bg-main"></view> <view style="height: 120rpx; width: 100rpx;" class="flex flex-column align-center justify-center bg-main"></view> </view> </view> <!-- 开启直播按钮 --> <view class="position-fixed bg-main flex align-center justify-center rounded-circle" style="left : 100rpx; right : 100rpx; bottom: 100rpx; height : 120rpx;"> <text class="text-white font-md ">开始视频直播</text> </view> </view> </template> <script> export default { data() { return { // 屏幕的高度 windowHeight : 0, // 保存live-pusher 实例对象 context : null, // 保存状态栏高度 statusBarHeight : 0, // 推流地址,支持RTMP协议。 url : "", // 推流视频模式,可取值:SD(标清), HD(高清), FHD(超清)。 mode : "SD", // 开启摄像头 enableCamera : true, // 自动聚集 autoFocus : true, // 美颜,取值范围 0-9(iOS取值范围为1) ,0 表示关闭。 beauty : 0, // 美白,取值范围 0-9(iOS取值范围为1) ,0 表示关闭。 whiteness : 0, // 前置或后置,值为front, back devicePosition : "back" }; }, onLoad() { const res = uni.getSystemInfoSync() this.windowHeight = res.windowHeight this.statusBarHeight = res.statusBarHeight }, onReady() { this.context = uni.createLivePusherContext("livePusher",this) this.startPreview() }, methods: { // 开启预览 startPreview(){ this.context.startPreview({ success : (e)=>{ console.log(e) } }) }, // 监听直播状态的变化 statechange(e){ console.log(e) }, // 监听直播网络状态变化 netstatus(e){ console.log(e) }, // 监听直播错误变化 error(e){ console.log(e) } } }; </script> <style></style> ```