This commit is contained in:
2026-06-15 22:46:12 +08:00
commit f6508eccdb
38 changed files with 3133 additions and 0 deletions

View File

@@ -0,0 +1,71 @@
export function createPlayer({ onError } = {}) {
let nativePlayer = null
try {
// Available only after the native plugin is added in HBuilderX.
nativePlayer = uni.requireNativePlugin && uni.requireNativePlugin('SyncTV-VLC')
} catch (err) {
nativePlayer = null
}
return {
hasNative: !!nativePlayer,
open(source, server) {
const url = source.url && source.url.startsWith('/api/')
? server.replace(/\/$/, '') + source.url
: source.url
if (nativePlayer) {
nativePlayer.open({
url,
headers: source.headers || {},
username: source.username || '',
password: source.password || '',
isLive: !!source.isLive
})
}
return url
},
play() {
if (nativePlayer) {
nativePlayer.play()
return true
}
return false
},
pause() {
if (nativePlayer) {
nativePlayer.pause()
return true
}
return false
},
seek(positionMs) {
if (nativePlayer) {
nativePlayer.seek({ positionMs })
return true
}
return false
},
getPosition(callback) {
if (nativePlayer) {
nativePlayer.getPosition(callback)
return
}
callback({ positionMs: 0 })
},
release() {
if (nativePlayer) {
nativePlayer.release()
}
},
error(message) {
if (onError) onError(message)
}
}
}