Jun 11, 2010 at 4:21 PM
Edited Jun 11, 2010 at 7:12 PM
Great work on the new player. I've been going through some of the code and have come up with a couple questions and issues I've encountered so far. There's still a bit of migration testing I need to perform, but I figure I would start with what I have now
and post more later as I come across them.
1) The marker plugin is a bit odd. I went to implement our SRT subtitle plugin; however we must hardcode "caption" for the marker type and the marker object itself must be of type CaptionMarker, which is part of the SilverlightMediaFramework.Core
library. I think the known marker types should be exposed for plugins to use and the CaptionMarker class shouldn't be included as part of the core library.
2) In addition to the above, the Content property of the CaptionMarker class is bound to the UI thead because you create a UIElement. This prevents us from loading subtitles asynchronously, which degrades performance. It also boosts memory requirements because
you are creating a UIElement for each subtitle. In our current player, we define a single subtitle region and update the UIElement on the fly when a subtitle marker is triggered. It's both good with performance and efficient with resources. You would also
better support live closed captioning.
1) In regards to playlists, the SelectMediaPlugin method in the SMFPlayer should take into account the playlist item's media source to find the correct plug-in when the delivery method property has not been specified. Currently when you pass in a live smooth
stream without specifying the delivery method, this method returns the progressive plug-in instead of the smooth streaming plug-in and it fails to render the live stream.
2) I didn't look into it deeply, but the closed captioning doesn't always work. When it starts up, I see the first couple subtitles. As I seek through the video, nothing happens anymore. It's almost as if the CaptionVisibly property in the SMFPlayer was
reset back to Hidden (again, I didn't check throughly).
-- Edit. Fixing up the line spacing in the post.