![](/img/trans.png)
[英]In Silverlight, how do you find out whether the code is running in the UI thread or not?
[英]How do you test whether Silverlight can play a stream?
我想写一个像下面这样的方法。 但是,如果Silverlight无法本地播放该流,我希望它遍历MediaStreamSource类的列表,然后依次尝试每个类,直到它们中的任何一个起作用或没有更多尝试为止。 我的问题是,如何确定以下方法对于特定流是否足够。
public static void OpenMedia(this MediaElement ME, Stream FileData)
{
ME.SetSource(FileData);
}
如果无法播放媒体,我需要执行一些代码。
我不确定您是要寻找测试失败还是要测试播放媒体类型的能力...
您可以在XAML中添加MediaFailed的事件处理程序,也可以在两种情况下在其后面编写代码。 主动检查可玩性将需要一些创造力,例如拥有一些很小(<1秒)且无声的各种“样本”媒体文件,这些文件用于测试可玩性,并且对用户是透明的。
对于在事件后面添加代码的C#,并添加新事件:
void yourPage_Loaded(object sender, RoutedEventArgs e)
{
ME.MediaFailed += new EventHandler<ExceptionRoutedEventArgs>(ME_MediaFailed);
}
void ME_MediaFailed(object sender, ExceptionRoutedEventArgs e)
{
add your code to handle the exception here.
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.