提供一个思路:通过livepush的预览和截图功能来实现。
想要定制更多样式的话,可以试试看 nvue的 live-pusher 组件。
<template>
<view>
<button @click="startPreview">Start</button>
<button @click="snapshot">Snapshot</button>
<image :src="photo" style="width:300rpx;" mode="widthFix"></image>
</view>
</template>
<script>
export default {
data() {
return {
pusher : null,
photo: '/static/logo.png'
};
},
methods: {
startPreview() {
const currentWebview = this.$mp.page.$getAppWebview();
var pusher = plus.video.createLivePusher("", {
//url: 'rtmp://testlivesdk.v0.upaiyun.com/live/upyunb', //并不需要真的进行推送,所以不设置
top: '300px',
left: '25%',
width: '50%',
height: '300px',
position: 'static'
});
//默认为前置摄像头,切换到后置。注:官方API未给出直接设置前置还是后置摄像头的方法,所以也存在可能把后置切换到前置的可能,这个比较悲剧。。因此需要给用户一个切换摄像头的按钮。
pusher.switchCamera();
currentWebview.append(pusher);
this.pusher = pusher
},
snapshot() {
this.pusher.snapshot((e)=>{
//plus.nativeUI.alert("snapshot path: "+e.tempImagePath);
//需要把绝对路径转换成本地路径
this.photo = plus.io.convertAbsoluteFileSystem(e.tempImagePath)
}, (e)=> {
plus.nativeUI.alert("snapshot error: "+JSON.stringify(e));
});
}
}
}
</script>
<style lang="scss">
</style>
4 个回复
z***@gmail.com - Hbuilder是个好东西
提供一个思路:通过livepush的预览和截图功能来实现。
想要定制更多样式的话,可以试试看 nvue的 live-pusher 组件。
3***@qq.com - 80后IT男
你好,问题解决了么?
一朵浪花 (作者)
没有,但是cordova倒是有相关的插件,我测试打包了没有问题。但是就脱了h5+这套了
一朵浪花 (作者)
没有,但是cordova倒是有相关的插件,我测试打包了没有问题。但是就脱了h5 这套了