init
This commit is contained in:
71
hbuilder_app/common/player.js
Normal file
71
hbuilder_app/common/player.js
Normal 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)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user