SmoothStreamingMediaElement.Play() - 抛出异常但播放器启动

时间:2011-07-22 17:10:38

标签: silverlight mediaelement smooth-streaming

当我设置我的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);
        }

1 个答案:

答案 0 :(得分:4)

当你设置SmoothStreamingSource属性时,你只是设置一个Uri变量。

为了让播放器开始播放,您需要等待SmoothStreamingMediaElement下载包含播放流所需的所有信息的清单。

因此,在您设置SmoothStreamingSource属性后,我不会立即调用Play方法,而是订阅ManifestReady或MediaOpened事件,然后再调用Play方法。