2013-02-13 1 views
1

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

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

Big O

+0

FYI. Убедитесь, что у вас пустой конструктор. Мне пришлось проверить журнал игроков, чтобы узнать это. –

ответ

0

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 
    } 
}