Фонон в Windows

Прямо сейчас у меня есть Phonon, работающий над Windows с серверной частью DS. Однако он не будет воспроизводить определенные файлы mp3, и хотя кажется, что он воспроизводит файлы m4a (индикатор выполнения песни продолжает двигаться), звук не воспроизводится. Приложение создано с использованием PyQt4 для Windows и предназначено для пользователей Windows.

Я знаю, что это не вина моей программы, так как, когда я заменил файл с тем, который не воспроизводился нормально, на тот, который воспроизводился, песня воспроизводилась идеально. Я скачал phonon vlc и попытался его собрать, но не могу заставить CMake создать make-файл. Всякий раз, когда я пытаюсь, он говорит мне, что dev-cpp gcc не может создать простой тестовый файл.

Я также пытался загрузить clementine и amorak, чтобы посмотреть, смогу ли я заставить их работать, но и там у меня были те же проблемы. Кто-нибудь сталкивался с такой проблемой раньше?


person Nikwin    schedule 12.09.2010    source источник
comment
Можете ли вы определить, чем отличаются работающие mp3 от неработающих? Ищите различия в битрейте и независимо от того, являются ли они переменными битрейтами. Также убедитесь, что файлы на самом деле являются mp3, а не другими типами носителей с расширением имени файла mp3. Это может дать ключ к пониманию того, с чем у фонона проблемы. Возможно, вы захотите проверить наличие ошибок, возвращаемых функциями воспроизведения.   -  person Arnold Spence    schedule 13.09.2010
comment
Файлы прекрасно воспроизводятся другими медиаплеерами. Я постараюсь изолировать разницу, а затем сделать репост.   -  person Nikwin    schedule 13.09.2010
comment
В основном песни, которые не воспроизводятся, имеют битрейт 320 кбит/с, хотя есть пара песен с битрейтом 256 и некоторые песни с битрейтом 320 кбит/с, которые воспроизводятся.   -  person Nikwin    schedule 14.09.2010
comment
Для файлов mp3, которые он не воспроизводит, он никогда не выходит из состояния загрузки. Я вижу изменение состояния, когда он входит в загрузку, и оно больше не меняется.   -  person Nikwin    schedule 17.09.2010


Ответы (1)


Недавно я столкнулся с той же проблемой. Похоже, что Phonon немного не согласен с тегами ID3, особенно со сжатыми. Я начал создавать временную копию каждого открываемого mp3 и использовать mutagen, чтобы удалить теги из этой копии. Затем я открываю временный файл без тегов с помощью PyQt/Phonon, и все работает так, как я ожидаю. Кстати, мутаген — это круто.

Фонон имеет привычку давать сбои достаточно тихо. Вот что я делаю: проверяю, находится ли ваш MediaObject в Phonon.ErrorState; если да, то проверьте его errorString(), обычно какое-то непонятное сообщение. Погуглите это сообщение и попробуйте работать оттуда.

Редактировать: Хм, интересно. Проблема не в Phonon, а в том, что бэкенд DirectShow не может воспроизвести файл со сжатыми заголовками ID3. Хотя «исправление», описанное выше, действительно работает, я обнаружил, что у меня все еще возникают проблемы с воспроизведением файлов других типов, например. .m4a, несмотря на установленные правильные кодеки.

Решение состояло в том, чтобы установить K-Lite Codec Pack и используйте прилагаемый к нему инструмент Win7DSFilterTweaker, чтобы изменить декодер по умолчанию для различных типов кодеков с «Microsoft» на «ffdshow». Вам также может понадобиться запустить инструмент конфигурации аудиодекодера ffdshow и установить флажок Показывать диалоговое окно, когда неизвестное приложение пытается загрузить ffshow в элементе управления DirectShow вкладка.

person Whatang    schedule 09.06.2012
comment
Привет, у меня та же проблема. Интересно, почему MediaPlayer может воспроизводить аудиофайл. Есть ли способ разархивировать тег ID3? - person 赵浩翔; 17.06.2015