Merge pull request #997 from sevenrats/episode-failure
Graceful episode playback failure
This commit is contained in:
commit
083a83a051
|
@ -123,11 +123,10 @@ sub onState(msg)
|
|||
m.top.retryWithTranscoding = true ' If playback was not reported, retry with transcoding
|
||||
else
|
||||
' If an error was encountered, Display dialog
|
||||
dialog = createObject("roSGNode", "Dialog")
|
||||
dialog = createObject("roSGNode", "PlaybackDialog")
|
||||
dialog.title = tr("Error During Playback")
|
||||
dialog.buttons = [tr("OK")]
|
||||
dialog.message = tr("An error was encountered while playing this item.")
|
||||
dialog.observeField("buttonSelected", "dialogClosed")
|
||||
m.top.getScene().dialog = dialog
|
||||
end if
|
||||
|
||||
|
@ -208,11 +207,10 @@ sub bufferCheck(msg)
|
|||
m.top.callFunc("refresh")
|
||||
else
|
||||
' If buffering has stopped Display dialog
|
||||
dialog = createObject("roSGNode", "Dialog")
|
||||
dialog = createObject("roSGNode", "PlaybackDialog")
|
||||
dialog.title = tr("Error Retrieving Content")
|
||||
dialog.buttons = [tr("OK")]
|
||||
dialog.message = tr("There was an error retrieving the data for this item from the server.")
|
||||
dialog.observeField("buttonSelected", "dialogClosed")
|
||||
m.top.getScene().dialog = dialog
|
||||
|
||||
' Stop playback and exit player
|
||||
|
@ -223,14 +221,6 @@ sub bufferCheck(msg)
|
|||
|
||||
end sub
|
||||
|
||||
'
|
||||
' Clean up on Dialog Closed
|
||||
sub dialogClosed(msg)
|
||||
sourceNode = msg.getRoSGNode()
|
||||
sourceNode.unobserveField("buttonSelected")
|
||||
sourceNode.close = true
|
||||
end sub
|
||||
|
||||
function onKeyEvent(key as string, press as boolean) as boolean
|
||||
|
||||
if key = "OK" and m.nextEpisodeButton.hasfocus() and not m.top.trickPlayBar.visible
|
||||
|
|
9
components/PlaybackDialog.brs
Normal file
9
components/PlaybackDialog.brs
Normal file
|
@ -0,0 +1,9 @@
|
|||
function onKeyEvent(key as string, press as boolean) as boolean
|
||||
|
||||
if key = "OK"
|
||||
m.top.close = true
|
||||
return true
|
||||
end if
|
||||
|
||||
return false
|
||||
end function
|
6
components/PlaybackDialog.xml
Normal file
6
components/PlaybackDialog.xml
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- A PlaybackDialog is a regular dialog, except it takes key releases -->
|
||||
<!-- instead of presses so that key releases don't fall into other listeners -->
|
||||
<component name="PlaybackDialog" extends="Dialog">
|
||||
<script type="text/brightscript" uri="PlaybackDialog.brs" />
|
||||
</component>
|
|
@ -521,7 +521,11 @@ sub Main (args as dynamic) as void
|
|||
else if node.showID = invalid
|
||||
sceneManager.callFunc("popScene")
|
||||
else
|
||||
if video.errorMsg = ""
|
||||
autoPlayNextEpisode(node.id, node.showID)
|
||||
else
|
||||
sceneManager.callFunc("popScene")
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
else if type(msg) = "roDeviceInfoEvent"
|
||||
|
|
|
@ -46,7 +46,9 @@ sub AddVideoContent(video, mediaSourceId, audio_stream_idx = 1, subtitle_idx = -
|
|||
end if
|
||||
|
||||
if m.videotype = "Episode" or m.videotype = "Series"
|
||||
if isValid(meta.json.RunTimeTicks)
|
||||
video.runTime = (meta.json.RunTimeTicks / 10000000.0)
|
||||
end if
|
||||
video.content.contenttype = "episode"
|
||||
end if
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user