我正在为Silverlight开发一个自定义播放器,一个基于MediaElement,另一个使用SmootStreamingMediaElement。目前,我正在使用SDK5.0的最新版本,但一旦解决了所有问题,我希望支持以前的版本。
一切都很好(回放),现在我对平台和API有了基本的了解,但是我有一个(非)琐碎的特性:我想获得当前播放的视频的比特率信息,不管它是单个比特率还是多比特率文件.这两种情况都必须解决。
据我所知,对于MediaElement API,我有以下属性和方法,这些属性和方法很有用,但还不够:DownloadProgress和BufferProgress。除了用于TotalBytesDownloaded类的SmoothStreamingMediaElement属性之外,没有获取规范中的比特率或类似信息的方法。
使用MediaElement和SmootStreamingMediaElement API可以获得视频文件的平均或即时比特率吗?
如果没有,有什么办法可以解决吗?
我是否可以访问MediaItem (在MediaElement实例中)以获取有关视频的更多信息?
发布于 2013-10-21 22:45:05
内置的MediaElement类没有这样的功能。但是您可以使用更高级的SmoothStreamingMediaElement类来检测当前的比特率。
下面是一篇msdn文章,解释了如何使用这个类:选择和监视比特率
监视当前比特率的完整代码:
public MainPage()
{
InitializeComponent();
media.PlaybackTrackChanged += OnPlaybackTrackChanged;
}
void OnPlaybackTrackChanged(object sender, TrackChangedEventArgs e)
{
Debug.WriteLine("Current bitrate: " + e.NewTrack.Bitrate.ToString());
}https://stackoverflow.com/questions/19406477
复制相似问题