SmoothStreamingMediaElement.Play () - Исключение выдается, но игрок начинает - PullRequest
5 голосов
/ 22 июля 2011

Когда я устанавливаю свой SmoothStreamingSource и затем вызываю .Play (), я получаю следующее исключение ...

"Воспроизведение не разрешено, если источник не установлен."

НечетныйДело в том, что если я обработаю это исключение (показано в коде ниже), видео начнет воспроизводиться.Странный?Согласно msdn, свойство SmoothStreamingSource устанавливает свойство Source автоматически, поэтому я не должен получать исключение.Выполнение кода подтверждает, что свойство Source устанавливается после установки свойства SmoothStreamingSource.

Я бы предпочел не просто обрабатывать исключение, а идти своим путем, если это является признаком большей проблемы внутри страны.

Что с этим?Мой код ...

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 Ответ

4 голосов
/ 14 февраля 2013

Когда вы устанавливаете свойство SmoothStreamingSource, вы просто устанавливаете переменную Uri больше ничего.

Чтобы игрок мог начать играть, вам нужно подождать, пока SmoothStreamingMediaElement загрузит манифест, содержащий всю информацию, необходимую для воспроизведения потока.

Итак, в вашем случае я бы не стал звонитьметод Play сразу после того, как вы установите свойство SmoothStreamingSource, но подпишитесь на событие ManifestReady или MediaOpened и только затем вызовите метод Play.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...