feat: Add sleep function for delayed frame drawing in artplayer-proxy-canvas

This commit is contained in:
Harvey Zack committed 2024-09-08 18:53:00 +08:00
1 parent 7bf8a00a7d
commit c8b5282af9
3 files changed
+9 -12

No files matched your search

@@ -149,7 +149,7 @@ parcelHelpers.export(exports, "default", ()=>artplayerProxyCanvas);
function artplayerProxyCanvas(callback) {
return (art)=>{
const { option, constructor } = art;
const { createElement, def, append } = constructor.utils;
const { createElement, def, append, sleep } = constructor.utils;
const canvas = createElement("canvas");
const ctx = canvas.getContext("2d");
const video = createElement("video");
@@ -253,20 +253,19 @@ function artplayerProxyCanvas(callback) {
Object.assign(canvas.style, {
padding: `${paddingTop}px ${paddingLeft}px`
});
// 重新绘制当前帧
drawFrame();
} catch (error) {
console.error("Error in resize function:", error);
}
};
// 在视频元数据加载完成后设置 canvas 尺寸并绘制第一帧
art.on("video:loadedmetadata", ()=>{
art.on("video:loadedmetadata", async ()=>{
canvas.width = video.videoWidth;
canvas.height = video.videoHeight;
resize();
});
// 在视频数据可用时绘制第一帧
art.on("video:canplay", ()=>{
art.on("video:canplay", async ()=>{
await sleep(300);
drawFrame();
});
art.on("video:play", ()=>{