代码之家  ›  专栏  ›  技术社区  ›  jamesmillerio

为什么SDL_混音器不能播放某些MP3音乐?

  •  2
  • jamesmillerio  · 技术社区  · 17 年前

    为什么SDL_混音器不能播放某些MP3音乐?

    我正在使用SDL_混合器在我正在创建的应用程序中播放音乐。在某些歌曲(实际上是整张专辑)上,如果没有返回任何错误,音乐将无法播放。音乐数据使用Mix_LoadMUS成功加载,当使用该数据执行Mix_PlayMusic时,它奇怪地返回0表示成功,但不播放音乐。我还试着阅读Mix_GetError()和SDL_GetError()(我相信它们是一样的),看看它是否会引发错误,但没有这样的运气。

    我的问题是,SDL_mixer无法播放特定mp3还有哪些其他原因?

    我知道mp3是功能性的,因为我可以在其他音乐播放器中播放它们。我还知道,因为Mix_PlayingMusic返回0,所以他们没有播放(与音量可能被调低相反)。

    谢谢大家!

    3 回复  |  直到 17 年前
        1
  •  1
  •   jamesmillerio    17 年前

    这实际上是一个健全的问题,与特定的计算机。在另一台机器上进行同样的测试时,声音完美无瑕。只是一个简短的提示,以防其他人遇到此问题。

        2
  •  0
  •   TokenMacGuy    17 年前

    MP3算法的不同实现允许不同级别的格式一致性。大多数音乐播放器都相当宽容,因为大多数用户宁愿听到一些起伏的声音,也不愿什么都听不到,但常见的播放库宽容程度要低得多。

    我建议在音频示例编辑器中打开有问题的(或全部)mp3,例如 Audacity ,并重新导出mp3。你可能会损失一点质量,因为mp3压缩本质上是有损的,但它可能会修复播放问题。

        3
  •  0
  •   just_a_guest_not_a_member    10 年前

    我也遇到了同样的问题,用audacity重新导出mp3文件并没有帮助,但通过这样做: 如果(混音播放音乐()==0) 混音音乐 在事件循环中,在2到3次尝试后播放音乐(每次运行程序时都不同)。 另一个解决方案是将音乐转换成.ogg文件。

    推荐文章