簡體   English   中英

SDL_mixer WAVE 音頻格式質量差

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM