mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-22 05:11:20 -08:00
36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
import { secondToTime, downloadImage } from '../utils';
|
|
|
|
export default function screenshotMix(art, player) {
|
|
const {
|
|
option,
|
|
notice,
|
|
template: { $video },
|
|
} = art;
|
|
|
|
Object.defineProperty(player, 'getScreenshotDataURL', {
|
|
value: () => {
|
|
try {
|
|
const canvas = document.createElement('canvas');
|
|
canvas.width = $video.videoWidth;
|
|
canvas.height = $video.videoHeight;
|
|
canvas.getContext('2d').drawImage($video, 0, 0);
|
|
return canvas.toDataURL('image/png');;
|
|
} catch (error) {
|
|
notice.show(error);
|
|
console.warn(error);
|
|
return null;
|
|
}
|
|
},
|
|
});
|
|
|
|
Object.defineProperty(player, 'downloadScreenshot', {
|
|
value: () => {
|
|
const dataUri = player.getScreenshotDataURL();
|
|
if (dataUri) {
|
|
downloadImage(dataUri, `${option.title || 'artplayer'}_${secondToTime($video.currentTime)}.png`);
|
|
art.emit('screenshot', dataUri);
|
|
}
|
|
},
|
|
});
|
|
}
|