[英]SDL_mixer poor quality with WAVE audio format
我想寫一個簡單的控制台音樂播放器,它同時支持.mp3 和.wav 音頻格式。 使用 SDL_mixer 播放 .wav 文件會降低聲音質量,但使用 mp3 文件則不會。 當 .wav 文件開始播放時,會發出連續的“噼啪”聲,但 rest 沒問題。
我已經檢查過它是否是 wav 文件本身或類似的問題,但無論我使用哪個文件,它最終總是一樣的。 我還嘗試更改 Mix_OpenAudio function 中的值,例如頻率和塊大小。
我也試過在沒有 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;
}
我沒有收到任何錯誤消息或任何信息。
這是文件。
因此,我現在在Windows上嘗試了同樣的方法,在Windows上沒有問題,因此可能是編譯器問題,或者我不知道。 很奇怪。 我將保持原樣,僅執行.mp3。
很多人似乎都有這樣的問題。 這個問題其實和播放Audio的格式有關。 您需要讓解碼器將這些信息扔給您,或者只需要使用一種音頻格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.