5

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

1 回答 1

4

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

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

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

于 2013-02-14T08:15:32.497 回答