Как проверить, может ли Silverlight воспроизводить поток? - PullRequest
0 голосов
/ 07 декабря 2010

Я хочу написать метод, подобный приведенному ниже. Однако в случае, если Silverlight не может воспроизвести поток изначально, я хотел бы, чтобы он просмотрел список классов MediaStreamSource и попробовал каждый из них по очереди, пока один из них не сработает или у него больше не будет попытки. У меня вопрос: как мне определить, достаточен ли приведенный ниже метод для определенного потока?

public static  void OpenMedia(this MediaElement ME, Stream FileData)
{
  ME.SetSource(FileData);
}

Мне нужен код для выполнения в случае, если не удается воспроизвести мультимедиа.

1 Ответ

1 голос
/ 14 декабря 2010

Я не уверен, что вы ищете провал тестирования или тестирование на возможность воспроизведения типа мультимедиа, так что ...

Вы можете добавить обработчик событий для MediaFailed либо в XAML, либо вкод для обоих случаев.Упреждающая проверка на воспроизводимость потребует некоторого творческого подхода, такого как наличие «образцов» мультимедийных файлов различных типов, которые являются очень маленькими (<1 секунда) и беззвучными, которые служат для проверки воспроизводимости и будут прозрачными для пользователя.* <p>Для кода 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.
}
...