WPF MediaElement Natural Duration - PullRequest
       7

WPF MediaElement Natural Duration

0 голосов
/ 15 июня 2010

У меня есть MediaElement, для которого я установил в качестве источника новый Uri на основе допустимой строки.

Например:

MediaElementName.Source = new Uri ("строка");

Строка является допустимым путем, и после отладки иногда она задает NaturalDuration для MediaElementName, иногда - нет.

Я уже 2 часа гуглю без результатов работы.

Кто-нибудь здесь имеет представление о том, почему иногда он устанавливает NaturalDuration, а иногда нет? Я в состоянии воспроизвести WAV, но он не знает, сколько времени занимает файл WAV (длительность).

Любая помощь или мысли приветствуются, спасибо !!

-BTG

Ответы [ 2 ]

1 голос
/ 26 апреля 2011

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

a) Кодек (например, flac) не может определить длительность.Проверьте и посмотрите, отображает ли проигрыватель Windows Media индикатор выполнения (у некоторых файлов flac, которые были сгенерированы на нестандартном оборудовании, была эта проблема). Я подозреваю, что в файле не было «индекса».Кроме того, формат flac дает разные результаты в зависимости от того, выполняется ли он в локальном файле или по протоколу http (я подозреваю, что это потому, что когда он не может искать в потоке, он не может найти длину).

b) Некоторые кодеки не дают длительности, пока они не представили некоторый материал, для решения этой проблемы у меня работает таймер, который использует Player.NaturalDuration.HasTimeSpan, а затем получает TimeSpan.Обычно это происходит в течение нескольких секунд после начала воспроизведения.Проверка временного интервала в Player_MediaOpened не работает надежно.

0 голосов
/ 16 июня 2010

Я просто сделал шаг назад и вместо этого получил информацию, используя FileInfo.

FileInfo test = new FileInfo("myFilepath");
double size = test.Length;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...