Accessing MediaElement or SmoothStreamingMediaElement

Oct 4, 2011 at 8:24 PM
Edited Oct 4, 2011 at 8:24 PM

I'm trying to implement Conviva's LivePass in the 2.2 codebase and am currently totally stuck. The problem is that I need to pass either a MediaElement or a SmoothStreamingMediaElement to Conviva as one of the parameters on their object. In 1.2 this was super easy; however, with the additional layers of abstraction via the plugin and interface classes I can't access either of the objects that I need. Is there anyway to access the MediaElement from within the player? I've been working in SMFPlayer.cs in Core and App.xaml in the SmoothStreaming project?

Much Thanks,

Brock

Oct 6, 2011 at 11:03 AM
Edited Oct 6, 2011 at 11:03 AM

I think you cau use this way while extending SMFPlayer:

    public class myPlayer : SMFPlayer
    {
        protected override void OnMediaPluginLoaded()
        {
            base.OnMediaPluginLoaded();

            var mediaToPassToConviva = this.ActiveMediaPlugin.VisualElement;
        }
 }

Regards

Angelo

Oct 6, 2011 at 4:08 PM

I'm streaming from a IIS SmoothStreaming server using default set up. How can I access ActiveMediaPlugin? (or the current active SmoothStreamingMediaElement)  It is now null.
I need to access the SmoothStreamingCache property, so I can set my custom decryption functions.

Grateful for any help :)

Thanks,
Rob

Coordinator
Oct 6, 2011 at 4:49 PM

There is a new event introduced in version 2.4 called MediaPluginRegistered that will provide access to the active MediaPlugin when it is created.

Tim

Oct 6, 2011 at 5:39 PM

Thanks Angelo, that worked!


Brock

Oct 6, 2011 at 10:05 PM

@timgreendield It didn't work :( 

OnMediaPluginLoaded is never fired. Are there any additional settings I need to do?

Oct 6, 2011 at 10:24 PM

@robbanp, The ActiveMediaPlugin is available in the OnMediaOpened() event in SMFPLayer.cs