<live-pusher
v-if="showCamera"
id="previewPusher"
ref="previewPusher"
:url="dummyPushUrl"
mode="RTC"
:muted="true"
enableCamera="true"
enableMic="false"
:autoFocus="true"
:devicePosition="devicePosition"
aspect="9:16"
:beauty="0"
:whiteness="0"
@statechange="onPreviewStateChange"
@error="onPreviewError">
</live-pusher>
<script>
export default {
data() {
return {
showCamera: false,
dummyPushUrl:
'webrtc://example.com/live/preview'
}
},
methods: {
enableCamera() {
uni.getSetting({
success: (res) => {
if (res.authSetting['scope.camera'] ===
false) {
uni.openSetting();
} else {
this.showCamera = true;
this.$nextTick(() => {
this.previewContext =
uni.createLivePusherContext('previewPusher', this);
});
}
}
});
},
onPreviewStateChange(e) {
console.log('State change:', e.detail);
},
onPreviewError(e) {
console.error('Error:', e.detail);
}
}
}
</script>
在 uni-app 开发的小程序中,使用 <live-pusher>
组件预览摄像头时:
1. 点击按钮后设置 showCamera = true 显示
live-pusher 组件
2. pusherContext 创建成功
3. 但是没有触发权限弹窗
4. 没有触发 @statechange 事件
5. 没有触发 @error 事件
6. 摄像头无法打开
appid wx4d4cf46533838e60

无法弹出 摄像头打开授权