Почему SDL_Mixer не воспроизводит музыку для определенных mp3-файлов? - PullRequest
2 голосов
/ 20 января 2009

Почему SDL_Mixer не воспроизводит музыку для определенных mp3-файлов?

Я использую SDL_Mixer для воспроизведения музыки в приложении, которое я создаю. На некоторых песнях (на самом деле, на целых альбомах) музыка просто не воспроизводится без каких-либо ошибок. Музыкальные данные успешно загружаются с использованием Mix_LoadMUS, и при выполнении Mix_PlayMusic с этими данными, как ни странно, возвращает 0 для успеха, но не воспроизводит музыку. Я также попытался прочитать Mix_GetError () и SDL_GetError () (я полагаю, что они одинаковы), чтобы увидеть, если возникает ошибка, но не такая удача.

Мой вопрос: по каким другим причинам SDL_mixer не сможет воспроизводить конкретный mp3?

Я знаю, что mp3-файлы работают, так как я могу воспроизводить их в других музыкальных проигрывателях. Я также точно знаю, что они не играют (в отличие от, возможно, уменьшения громкости), поскольку Mix_PlayingMusic возвращает 0.

Спасибо всем!

Ответы [ 3 ]

1 голос
/ 20 января 2009

Это на самом деле оказалось проблемой звука с этим конкретным компьютером. Испытав те же тесты на другой машине, звук работал безупречно. Просто быстрое замечание на случай, если кто-то еще столкнется с этой проблемой.

0 голосов
/ 31 августа 2015

У меня была такая же проблема, и реэкспорт mp3-файлов с помощью Audacity не помог, но сделав что-то вроде этого: if (Mix_PlayingMusic () == 0) Mix_PlayMusic () в цикле событий музыка воспроизводилась после 2 или 3 попыток (каждый раз, когда я запускал программу, она менялась). Другим решением было преобразование музыки в файлы .ogg.

0 голосов
/ 20 января 2009

Разные реализации алгоритма MP3 допускают разные уровни соответствия формату. Большинство музыкальных проигрывателей довольно терпимы, потому что большинство пользователей предпочитают слышать что-то прерывистое, чем вообще ничего, но распространенные библиотеки воспроизведения допускают гораздо меньше.

Я бы рекомендовал открыть нарушающие (или все) mp3-файлы в редакторе аудиосэмплов, например Audacity , и повторно экспортировать mp3. Вы можете потерять немного качества, поскольку сжатие mp3 по своей природе потеряно, но, скорее всего, это решит проблему с воспроизведением.

...