mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-24 06:31:20 -08:00
fix(canvas): [PKG-CANVAS-SUBTITLE-01] attach native subtitle tracks
This commit is contained in:
1 parent
d89728c0a6
commit
c3967bcbf4
23 files changed
+1459
-11
No files matched your search
@@ -204,6 +204,21 @@ function createFrameScheduler(draw, active) {
|
||||
}
|
||||
};
|
||||
}
|
||||
function forwardSubtitleTrack(canvas, video, initialTrack, active) {
|
||||
if (!active())
|
||||
return;
|
||||
const append = canvas.appendChild;
|
||||
initialTrack.kind = "metadata";
|
||||
initialTrack.default = true;
|
||||
video.appendChild(initialTrack);
|
||||
canvas.appendChild = (node) => {
|
||||
if (active() && node.nodeType === 1 && node.nodeName === "TRACK" && "namespaceURI" in node && node.namespaceURI === "http://www.w3.org/1999/xhtml") {
|
||||
initialTrack.remove();
|
||||
return video.appendChild(node);
|
||||
}
|
||||
return append.call(canvas, node);
|
||||
};
|
||||
}
|
||||
function artplayerProxyCanvas(callback) {
|
||||
return (art) => {
|
||||
const constructor = art.constructor;
|
||||
@@ -262,6 +277,7 @@ function artplayerProxyCanvas(callback) {
|
||||
scheduler.request();
|
||||
}
|
||||
try {
|
||||
forwardSubtitleTrack(canvas, video, constructor.utils.createElement("track"), active);
|
||||
listen("destroy", destroy);
|
||||
listen("video:loadedmetadata", () => {
|
||||
if (hasDimensions(video)) {
|
||||
|
||||
Reference in new issue
Block a user