Seeking during playback of web-hosted Mp4

Topics: Windows 8 Xaml
Aug 26, 2012 at 5:46 PM

I noticed when setting the source of the xaml player to a web-hosted Mp4 that the video plays back fine but seeking to a new playback location does not work.  This worked fine in the SMFPlayer release for Windows Phone 7.  Am I missing something?

Aug 31, 2012 at 2:28 PM

I have the same problem! Any suggestion? 

Sep 2, 2012 at 6:46 PM
Edited Sep 3, 2012 at 12:22 AM

keprotto,

I have made some progress on this issue:

1. Follow the instructions on adding smooth streaming support here: http://playerframework.codeplex.com/wikipage?title=Windows%208%20Metro%20Player%3a%20Install%20and%20configure%20-%20XAML%2fC&referringTitle=Windows%208%20Metro%20Player%20Documentation

2.

If setting the player source directly in xaml do:

<mmppf:MediaPlayer Source="http://mediadl.microsoft.com/mediadl/iisnet/smoothmedia/Experience/BigBuckBunny_720p.ism/Manifest">
    <mmppf:MediaPlayer.Plugins>
        <adaptive:AdaptivePlugin />
    </mmppf:MediaPlayer.Plugins>
</mmppf:MediaPlayer>

If setting the player source in code behind, create an instance of the mediaplayer in xaml and set AutoLoadPlugins to False and add the Adaptive plugin to the MediaPlayer.Plugins collection:   

 

 

xmlns:mmppf ="using:Microsoft.PlayerFramework"

 xmlns:adaptive ="using:Microsoft.PlayerFramework.Adaptive"     

<mmppf:MediaPlayer x:Name="VideoPlayer" AutoLoadPlugins="False" > 

<mmppf:MediaPlayer.Plugins >

 <adaptive:AdaptivePlugin />

 </mmppf:MediaPlayer.Plugins > 

</mmppf:MediaPlayer >



When updating the player in code behind, I.e. setting the source in code.


Be sure to set the following:

//This is a dirty hack, to force the plugin to load - it will always be @ index 0 if autoloadplugins is set to false and trick it to enable progressive streaming by giving it a valid link to a streamable video I.E. Buck Bunny, don't worry we aren't playing Buck Bunny we are just tricking the player

string t = "http://mediadl.microsoft.com/mediadl/iisnet/smoothmedia/Experience/BigBuckBunny_720p.ism/Manifest"

;  

DispatcherHelper.InvokeAsync(() => VideoPlayer.Source = new Uri(t, UriKind .Absolute));

DispatcherHelper.InvokeAsync(() => VideoPlayer.Plugins[0].Load());

//ENABLE SEEK and anything else you are interested in

DispatcherHelper.InvokeAsync(() => VideoPlayer.IsSeekEnabled = true );

DispatcherHelper.InvokeAsync(() => VideoPlayer.IsScrubbingEnabled = true );

DispatcherHelper.InvokeAsync(() => VideoPlayer.IsSkipAheadEnabled = true );

 

//Set mp4 source

DispatcherHelper.InvokeAsync(() => VideoPlayer.Source = new Uri(sdUrl, UriKind .Absolute));

//Play video

DispatcherHelper.InvokeAsync(() => VideoPlayer.Play());

 



-Paul

 

Sep 3, 2012 at 8:31 AM

Paul,

Thanks for your reply!

Unfortunately the workaround you suggested seems not to working for me. Seeking doesn't work and the progress bar seems freezed...

I hope this bug will fixed in the next player release!

 

Giovanni

Sep 3, 2012 at 11:37 AM

Hi Paul,

I found a solution to my problem.

The MediaPlayer control has the AutoPlay property set true by default.

Everything works fine just by setting the Source with mp4 Uri, without making VideoPlayer.Play():

 

//Set mp4 source

DispatcherHelper.InvokeAsync(() => VideoPlayer.Source = new Uri(sdUrl, UriKind .Absolute));

//Play video

//DispatcherHelper.InvokeAsync(() => VideoPlayer.Play());

 

I don't need to set any of the IsSeekEnabled, IsScrubbingEnabled and IsSkipAheadEnabled property.

Giovanni