Задать вопрос

Почему метод элемента MediaElement «Play()» работает только по нажатию кнопки?

Здравствуйте! Разрабатываю приложение Windows 8.
У меня есть MediaElement и GridView. GridView привязан к коллекции данных.
Слушаю событие GridView.SelectionChanged, в нем задаю Source для MediaElement'а, потом вызываю метод "Play". Музыка не проигрывается. НО: если нажать на кнопку, при клике на которой я так же вызываю метод Play, то все хорошо, музыка проигрывается. При вызове Play из любого другого обработчика событий, метода, он так же все игнорирует и не проигрывает(например, при нажатии на кнопку "Следующий").
Я что-то делаю не так? Как это исправить?
Заранее благодарен!
  • Вопрос задан
  • 2847 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
dordzhiev
@dordzhiev
В таких случая стоит читать MSDN :)
Any calls to Play, Pause, and Stop methods that occur before the MediaOpened event is raised are ignored.

Т.е. после установки Source, подписывайтесь на MediaOpened и в обработчике уже вызывайте Play().
А с кнопки работало, потому что, пока вы нажимали на кнопку, файл успевал уже открыться.
Ответ написан
Комментировать
@SZolotov
Asp.net core, MAUI,WPF,Qt, Avalonia
Посмотрите в каких потоках вызываете метод play. Попробуйте вызвать его в UI-потоке
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы