jellyfin-roku/components/mediaPlayers/AudioPlayer.bs
2023-10-03 12:11:25 -04:00

44 lines
1.2 KiB
Plaintext

import "pkg:/source/utils/misc.bs"
sub init()
m.playReported = false
m.top.observeField("state", "audioStateChanged")
end sub
' State Change Event Handler
sub audioStateChanged()
currentState = LCase(m.top.state)
reportedPlaybackState = "update"
m.top.disableScreenSaver = (currentState = "playing")
if currentState = "playing" and not m.playReported
reportedPlaybackState = "start"
m.playReported = true
else if currentState = "stopped" or currentState = "finished"
reportedPlaybackState = "stop"
m.playReported = false
end if
ReportPlayback(reportedPlaybackState)
end sub
' Report playback to server
sub ReportPlayback(state as string)
if not isValid(m.top.position) then return
params = {
"ItemId": m.global.queueManager.callFunc("getCurrentItem").id,
"PlaySessionId": m.top.content.id,
"PositionTicks": int(m.top.position) * 10000000&, 'Ensure a LongInteger is used
"IsPaused": (LCase(m.top.state) = "paused")
}
' Report playstate via global task
playstateTask = m.global.playstateTask
playstateTask.setFields({ status: state, params: params })
playstateTask.control = "RUN"
end sub