<template>
<view>
<!--VIDEO标签父元素-->
<video id="myVideo" autoplay style="height:750rpx;width:750rpx;"
src="https://repo.bfw.wiki/bfwrepo/video/modushanghai.mp4"></video>
<image :src="shot" style="width: 100%;height: 200px;"></image>
<button @click="doshot">截图</button>
</view>
</template>
<script>
export default {
data() {
return {
shot: "",
}
},
methods: {
doshot() {
this.videoContext = uni.createVideoContext('myVideo'); //创建视频实例指向video
this.videoContext.pause();
this.$nextTick(() => {
this.getCapture()
})
},
getCapture() {
let pages = getCurrentPages();
let page = pages[pages.length - 1];
let currentWebview = page.$getAppWebview()
var bitmap = new plus.nativeObj.Bitmap('csreen');
// 将webview内容绘制到Bitmap对象中
currentWebview.draw(bitmap, () => {
console.log('截屏绘制图片成功');
// 将原生Bitmap转换成Base64字符串
this.shot = bitmap.toBase64Data()
this.videoContext = uni.createVideoContext('myVideo'); //创建视频实例指向video
this.videoContext.play();
//这里我将文件名用四位随机数拼接了,不然会出现当前图片替换上一张图片只能保存一张图片的问题
let rand = Math.floor(Math.random() * 10000)
let saveUrl = '_doc/' + rand + 'a.jpg'
bitmap.save(saveUrl, {}, function(i) {
console.log('保存图片成功:' + JSON.stringify(i));
uni.saveImageToPhotosAlbum({
filePath: i.target,
success: function() {
bitmap.clear(); //销毁Bitmap图片
uni.showToast({
title: '保存截图成功',
duration: 1500
});
},
complete() {
uni.hideLoading();
}
});
}, function(e) {
console.log('保存图片失败:' + JSON.stringify(e));
});
}, (e) => {
console.log('截屏绘制图片失败:', e);
}, {
check: true, // 设置为检测白屏
clip: {
top: uni.getSystemInfoSync().statusBarHeight + 45,
left: '0px',
height: '266px',
width: '100%'
} // 设置截屏区域
});
}
}
}
</script>
<style>
</style> 网友回复
未来手机或电脑无应用,全部内置ai,ai实时生成ui界面帮你干活?
标准拉丁字母a与俄文西里尔a看上去一样却不相等?
CodeGraph与RTK(Rust Token Killer)有啥区别?
python如何将svg图标转换成png图片?
windows如何设置让多个人同时远程桌面连接同一台电脑同时可操作不被踢出?
什么是WebRCD技术?
如何在centos的服务器docker上安装运行微信qq?
如何用ai图片模型祛除图片油腻感?
google的gemini-omni多模态大模型在哪可以免费体验?
google的Antigravity 、Antigravity CLI、Antigravity IDE、Antigravity SDK有啥区别不同?


