Files
ArtPlayer/packages/artplayer/src/player/screenshotMix.js
T

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);
}
},
});
}