https://developers.weixin.qq.com/miniprogram/dev/component/canvas.html
toggleScreenShotMode() {
console.log("点击截屏")
const videoContext = wx.createVideoContext('ulVideo', this);
const query = wx.createSelectorQuery();
query.select('#videoCanvas')
.fields({
node: true,
size: true
})
.exec((res) => {
console.log(res);
const canvas = res[0].node;
const canvasContext = canvas.getContext('2d');
const width = res[0].width;
const height = res[0].height;
canvas.width = width;
canvas.height = height;
videoContext.pause();
console.log('currentTime =', this.data.currentTime);
videoContext.seek(this.data.currentTime);
setTimeout(() => {
wx.createSelectorQuery().select('#ulVideo').context().exec((res) => {
console.log(res);
const video = res[0].context;
canvasContext.clearRect(0, 0, width, height);
canvasContext.drawImage(video, 0, 0, width, height);
wx.canvasToTempFilePath({
canvas: canvas,
fileType: 'jpg',
success: (res) => {
console.log('截屏成功', res.tempFilePath);
// 获取图像数据
wx.getFileSystemManager().readFile({
filePath: res.tempFilePath,
encoding: 'base64',
success: (fileRes) => {
const base64Image = 'data:image/png;base64,' + fileRes.data;
this.addImageToReport(res.tempFilePath, base64Image);
},
fail: (err) => {
console.error('读取图像数据失败:', err);
},
});
},
fail: (err) => {
console.error('截屏失败', err);
}
});
});
}, 500);
});
},
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。