gpt4 book ai didi

c++ - SDL_mixer WAVE 音频格式质量差

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:38:16 25 4
gpt4 key购买 nike

我想写一个简单的控制台音乐播放器,它支持 .mp3 和 .wav 音频格式。使用 SDL_mixer 播放 .wav 文件会降低声音质量,但使用 mp3 文件则不会。当 .wav 文件开始播放时,会发出连续的“噼啪”声,其余一切正常。

我已经检查过是wav文件本身还是类似的问题,但不管我用哪个文件,结果总是一样的。我还尝试更改 Mix_OpenAudio 函数中的值,例如频率和 block 大小。

我也试过在没有 SDL_mixer 的情况下播放声音,但是使用 SDL_OpenAudio 等...结果是一样的,MP3 很好,WAVE 不行。

这不是我的电脑,使用 vlc 或 rythmbox(音频播放器).wav 文件播放没有问题。

#include <SDL2/SDL.h>
#include <SDL2/SDL_mixer.h>

using namespace std;

int main()
{
// Music which will be played
Mix_Music* Music = NULL;

// Init
//
// Init SDL Audio
SDL_Init(SDL_INIT_AUDIO);

// Init SDL_mixer
Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 512);

// Load the files
//
// Load the music
Music = Mix_LoadMUS("Star Trek - Deep Space Nine.mp3");

// Play the music
Mix_PlayMusic(Music, 1);

while (Mix_PlayingMusic() == 1)
{

}

// clean up
//
// free the music
Mix_FreeMusic(Music);

// Quit Mixer
Mix_CloseAudio();

// Quit SDL
SDL_Quit();

return 0;
}

我没有收到任何错误消息或任何内容。

Here是文件。

最佳答案

所以我现在在 Windows 上尝试了同样的方法,它在那里工作没有问题,所以这可能是编译器问题或者我不知道。很奇怪。我会保持原样,只做 .mp3。

关于c++ - SDL_mixer WAVE 音频格式质量差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57239981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com