2013-10-16 129 views
1

我正在爲Silverlight開發一個自定義播放器,其中一個基於MediaElement,另一個基於SmootStreamingMediaElement。目前,我正在使用SDK 5.0的最新版本,但我希望在解決所有問題後支持以前的版本。Silverlight MediaElement比特率

所有的工作都很好(播放),現在我已經對平臺和API有了一個基本的瞭解,但是我用一個(非)簡單的功能:我想獲取當前播放的比特率信息視頻,無論它是單一比特率還是多比特率文件......都必須適用於這兩種情況。

據我所知,我對MediaElement API有以下屬性和方法,但有用但不夠:DownloadProgressBufferProgress。沒有獲得規格中找到的比特率或類似信息的方法,但TotalBytesDownloaded屬性爲SmoothStreamingMediaElement類。

使用MediaElement和SmootStreamingMediaElement API可以獲得視頻文件的平均或即時比特率嗎?

如果沒有,有任何解決辦法來處理它?

我是否有權訪問MediaItem(來自MediaElement實例)以獲取關於視頻的更多信息?

回答

0

內置的MediaElement類沒有這樣的功能。但是您可以使用更高級的SmoothStreamingMediaElement類來檢測當前比特率。

這裏是一個MSDN文章,介紹如何使用這個類:Select and Monitor Bitrate

完整的代碼反觀當前比特率:

public MainPage() 
{ 
    InitializeComponent(); 
    media.PlaybackTrackChanged += OnPlaybackTrackChanged; 
} 

void OnPlaybackTrackChanged(object sender, TrackChangedEventArgs e) 
{ 
    Debug.WriteLine("Current bitrate: " + e.NewTrack.Bitrate.ToString()); 
}