Как подключить объект ISmoothStreamCache в SMFPlayer (Smooth Streaming Development kit)

Я использую SMFPlayer в SilverLight Smooth Streaming Development Kit. И я могу воспроизводить видеоконтент, однако по какой-то причине мы хотим контролировать загрузку и анализ данных. Для этой цели мы хотим начать использовать интерфейс ISmoothStreamingCache. Я хочу знать, как правильно подключить объект ISmoothStreamingCache в SMFPlayer.

заранее спасибо

Большой О

1 ответ

ISmoothStreamingCache's реализация должна также реализовать IPlugin интерфейс. Он также должен быть украшен ExportAdaptiveCacheProvider приписывать.

Затем он будет автоматически подключен к SMFPlayer.

Ниже приведен скелетный код для класса:

using System;
using System.Collections.Generic;
using System.IO.IsolatedStorage;
using System.Net;
using Microsoft.SilverlightMediaFramework.Plugins;
using Microsoft.SilverlightMediaFramework.Plugins.Metadata;
using Microsoft.Web.Media.SmoothStreaming;

namespace MyNamespace
{
    [ExportAdaptiveCacheProvider(PluginName = "My Smooth Streaming Cache")]
    public class MySmoothStreamingCache : ISmoothStreamingCache, IPlugin
    {
        public MySmoothStreamingCache()
        {
            // Your implementation
        }

        #region ISmoothStreamingCache members
        public IAsyncResult BeginRetrieve(CacheRequest request, AsyncCallback callback, object state)
        {
            // Your implementation
        }

        public CacheResponse EndRetrieve(IAsyncResult ar)
        {
            // Your implementation
        }

        public IAsyncResult BeginPersist(CacheRequest request, CacheResponse response, AsyncCallback callback, object state)
        {
            // Your implementation
        }

        public bool EndPersist(IAsyncResult ar)
        {
            // Your implementation
        }

        public void OpenMedia(Uri manifestUri)
        {
            // Your implementation
        }

        public void CloseMedia(Uri manifestUri)
        {
            // Your implementation
        }
        #endregion

        #region IPlugin members
        public bool IsLoaded { get; private set; }

        public void Load()
        {
            IsLoaded = true;
        }

        public event Action<IPlugin, Microsoft.SilverlightMediaFramework.Plugins.Primitives.LogEntry> LogReady;

        public event Action<IPlugin, Exception> PluginLoadFailed;

        public event Action<IPlugin> PluginLoaded;

        public event Action<IPlugin, Exception> PluginUnloadFailed;

        public event Action<IPlugin> PluginUnloaded;

        public void Unload()
        {
            IsLoaded = false;
        }
        #endregion
    }
}
Другие вопросы по тегам