mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-20 12:11:20 -08:00
test(multiple-subtitles): checkpoint native seek diagnostics [PKG-MULTI-SUB-05]
This commit is contained in:
1 parent
318de37e8a
commit
a8d19ce5ef
10 files changed
+7266
-8
No files matched your search
@@ -0,0 +1,31 @@
|
||||
export async function switchAfterNativeRestoration(page, url) {
|
||||
await page.evaluate((url) => {
|
||||
const art = window.art
|
||||
if (url === art.url)
|
||||
return art.switchUrl(url)
|
||||
const video = art.video
|
||||
let resolveRestored
|
||||
const restored = new Promise((resolve) => {
|
||||
resolveRestored = resolve
|
||||
})
|
||||
const onSeeked = () => resolveRestored()
|
||||
const onMetadata = () => {
|
||||
if (video.seeking)
|
||||
video.addEventListener('seeked', onSeeked, { once: true })
|
||||
else
|
||||
resolveRestored()
|
||||
}
|
||||
const cleanup = () => {
|
||||
video.removeEventListener('loadedmetadata', onMetadata)
|
||||
video.removeEventListener('seeked', onSeeked)
|
||||
}
|
||||
video.addEventListener('loadedmetadata', onMetadata, { once: true })
|
||||
try {
|
||||
return Promise.all([art.switchUrl(url), restored]).then(() => undefined).finally(cleanup)
|
||||
}
|
||||
catch (error) {
|
||||
cleanup()
|
||||
throw error
|
||||
}
|
||||
}, url)
|
||||
}
|
||||
Reference in new issue
Block a user