commit 28fef0a8b82bd48e516641f9aa6073992f84923f
parent 6e8aa3659db9b3c2ca189b2aa861281fc02e2a67
Author: Brian C. Lane <bcl@brianlane.com>
Date: Fri, 29 Oct 2010 20:19:43 -0700
Added basic video playback
No detail screen right now, goes right to video and a bunch of
parameters are hard coded (eg. SD/HD)
Diffstat:
1 file changed, 52 insertions(+), 2 deletions(-)
diff --git a/HMS/source/appDisplayDirectory.brs b/HMS/source/appDisplayDirectory.brs
@@ -197,6 +197,22 @@ Function showMovies( screen As Object, files As Object, dir as Object, url as St
end if
end for
+ o.IsHD = false
+ o.HDBranded = false
+ o.Description = "Should try reading this from a file"
+ o.Rating = "NR"
+ o.StarRating = 100
+ o.Title = f[1]["basename"]
+
+ ' Is there a generic number?
+ o.Length = 60
+
+ ' Video related stuff (can I put this all in the same object?)
+ o.StreamBitrates = [0]
+ o.StreamUrls = [url + f[0]]
+ o.StreamQualities = ["SD"]
+ o.StreamFormat = ["mp4"]
+
list.Push(o)
end for
@@ -216,10 +232,44 @@ Function showMovies( screen As Object, files As Object, dir as Object, url as St
if (files[msg.GetIndex()][0].Right(1) = "/")
return files[msg.GetIndex()]
else
- ' If it is a movie, play it
- print "Play movie here"
+ ' If it is a movie, play it
+ playMovie(list[msg.GetIndex()])
end if
end if
end while
End Function
+
+'******************************************************
+'** Play the video using the data from the movie
+'** metadata object passed to it
+'******************************************************
+Sub playMovie( movie as Object)
+ p = CreateObject("roMessagePort")
+ video = CreateObject("roVideoScreen")
+ video.setMessagePort(p)
+
+ video.SetContent(movie)
+ video.show()
+
+ lastPos = 0
+ while true
+ msg = wait(0, video.GetMessagePort())
+ if type(msg) = "roVideoScreenEvent"
+ if msg.isScreenClosed() then 'ScreenClosed event
+ print "Closing video screen"
+ exit while
+ else if msg.isPlaybackPosition() then
+ lastPos = msg.GetIndex()
+ else if msg.isRequestFailed()
+ print "play failed: "; msg.GetMessage()
+ else
+ print "Unknown event: "; msg.GetType(); " msg: "; msg.GetMessage()
+ end if
+ end if
+ end while
+
+ ' Save the last played position someplace
+
+End Sub
+