PosterSource data binding doesn't work in Windows Phone

Topics: Windows Phone 8
Sep 25, 2013 at 8:25 PM
Edited Sep 25, 2013 at 8:26 PM
I'm attempting to data bind the mmppf:MediaPlayer's Poster to an ImageSource property on my data context.
<mmppf:MediaPlayer x:Name="VideoPlayer" 
        HorizontalAlignment="Stretch"
        VerticalAlignment="Stretch"
        AutoLoad="False"
        AutoLoadPlugins="True"
        PosterSource="{Binding Art}"
        IsSkipPreviousVisible="False"
        IsSkipNextVisible="False"
        SeekWhileScrubbing="False">

        <mmppf:MediaPlayer.Plugins>
            <mmppf:PlaylistPlugin />
        </mmppf:MediaPlayer.Plugins>
    </mmppf:MediaPlayer>
This works great in Windows 8. It doesn't work in Windows Phone 8: a black screen is displayed instead of a poster. There's nothing in the debug output text about a binding issue.

However, if I manually get the MediaContainer Panel and add my own Border with a child Image to the Panel's children, then that displays fine.

Is this a known issue? Can I do anything further to help with a repro?

Thanks.
Coordinator
Sep 27, 2013 at 12:28 AM
Here are a couple quick questions that will help me understand the issue better:
1) Are you actually using the PlaylistPlugin? If so, you should set AutoLoad and PosterSource on the PlaylistItem instead of the MediaPlayer control.
2) Are you assigning a Source uri? The PosterSource is only displayed after the source is set.

I'll also compare with the Windows 8 version to see if I can find a difference in behavior. The two should be the same (even though under the hood, the poster is built into the MediaElement on Win8 and faked inside the player framework on WP8).
Coordinator
Sep 27, 2013 at 12:35 AM
I found the discrepancy between WP8 and Win8... on Win8 the poster will show even if you don't have the Source set. This is a bug in the WP version that it does not behave the same way; sorry about this.

I just checked in a fix to Git which will be included in the next public release.

Please let me know if there is more to the issue than what I described and thanks for reporting this!

Tim
Sep 30, 2013 at 5:11 PM
Hi, Tim. Thanks for looking into this.

I am using the PlaylistPlugin. I tried setting AutoLoad=false and PosterSource=X on the PlaylistItem, but that didn't seem to work either. I don't see my poster displayed before playback, even with a non-null Source or MediaStreamSource.

The only way I can seem to get a poster is by manually adding it to the MediaContainer Panel.

(Hoping your fix will address the issue.)
Coordinator
Sep 30, 2013 at 7:12 PM
If you want to get the fix ASAP and try it out, you can easily build an updated VSIX from the latest source code. Here are instructions.

Or, if you want to send me a repro, I could also give it a try.