当我设置我的SmoothStreamingSource然后调用.Play()时,我得到以下异常......
“没有设置来源时不允许播放。”
奇怪的是,如果我处理此异常(如下面的代码所示),视频就会开始播放。奇?根据msdn,SmoothStreamingSource属性自动设置Source属性,所以我不应该得到异常。单步执行代码确认在设置SmoothStreamingSource属性后设置了Source属性。
如果这是内部更大问题的迹象,我宁愿不只是处理异常并继续我的快乐方式。
这是怎么回事?我的代码......
try
{
Uri uri = (Uri)((Button)source).Tag;
smoothStreamingMediaElement1.SmoothStreamingSource = uri;
if (smoothStreamingMediaElement1.SmoothStreamingSource != null)
MessageBox.Show(smoothStreamingMediaElement1.SmoothStreamingSource.ToString());
else
MessageBox.Show("SmoothStreamingSource is NULL");
smoothStreamingMediaElement1.Play();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
答案 0 :(得分:4)
当你设置SmoothStreamingSource属性时,你只是设置一个Uri变量。
为了让播放器开始播放,您需要等待SmoothStreamingMediaElement下载包含播放流所需的所有信息的清单。
因此,在您设置SmoothStreamingSource属性后,我不会立即调用Play方法,而是订阅ManifestReady或MediaOpened事件,然后再调用Play方法。