簡體   English   中英

SDL_Mixer Mix_LoadWAV 找不到 RIFF 或 WAVE 標識符

[英]SDL_Mixer Mix_LoadWAV can not find RIFF or WAVE identifiers

自去年 12 月以來,我曾問過這個問題,但到處都被忽略了,所以我想最后一次問這個問題。

我正在嘗試加載音頻文件(作為 Mix_Chunk),但收到以下錯誤消息:

“找不到 RIFF 或 WAVE 標識符(不是波形文件)”

我嘗試了我所知道的 Audacity 中的所有導出設置,我在這里做錯了什么?

我做的一切都是正確的,我什至使用十六進制編輯器進行了檢查,並且標識符在那里。 十六進制編輯器中的文件

我嘗試的任何文件格式都會出現此問題。 FOpen 也能夠完美地讀取標識符字節,問題可能是什么?

我正在使用 gcc 在 Ubuntu 機器上進行編譯。 我使用 package 管理器來安裝所有東西。

編碼:

#include <SDL2/SDL.h>
#include <SDL2/SDL_mixer.h>
#include <string>
#include <iostream>
int main() {
    int Mixer = Mix_OpenAudio( 44100, MIX_DEFAULT_FORMAT, 2, 2048 );
    if(Mixer < 0)
    {
        std::cout << "Mixer wasn't initialized.";
        return 0;
    }
    if( SDL_Init( SDL_INIT_AUDIO ))
    {
        std::cout << "Sdl audio wasn't initialized.";
        return 0;
    }

    Mix_Chunk *mc = Mix_LoadWAV("YouGotMail.wav");
    
    if (!mc)
    {
        std::cout << std::string(std::string("Failed to load audio YouGotMail.wav.\n") + Mix_GetError()).c_str() << std::endl;
        return 0;
    }
    return 0;
}

在可執行文件上使用 ldd 給了我這個 output:

linux-vdso.so.1 (0x00007ffe219be000)
        libSDL2-2.0.so.0 => /lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x00007f569c0eb000)
        libSDL2_image-2.0.so.0 => /lib/x86_64-linux-gnu/libSDL2_image-2.0.so.0 (0x00007f569c0c8000)
        libSDL_mixer-1.2.so.0 => /lib/x86_64-linux-gnu/libSDL_mixer-1.2.so.0 (0x00007f569c073000)
        libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f569be91000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f569be76000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f569bc84000)
        libasound.so.2 => /lib/x86_64-linux-gnu/libasound.so.2 (0x00007f569bb87000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f569ba38000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f569ba32000)
        libpulse.so.0 => /lib/x86_64-linux-gnu/libpulse.so.0 (0x00007f569b9dd000)
        libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f569b8a0000)
        libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007f569b88b000)
        libXcursor.so.1 => /lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007f569b87c000)
        libXinerama.so.1 => /lib/x86_64-linux-gnu/libXinerama.so.1 (0x00007f569b877000)
        libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6 (0x00007f569b865000)
        libXrandr.so.2 => /lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007f569b858000)
        libXss.so.1 => /lib/x86_64-linux-gnu/libXss.so.1 (0x00007f569b853000)
        libXxf86vm.so.1 => /lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007f569b84c000)
        libwayland-egl.so.1 => /lib/x86_64-linux-gnu/libwayland-egl.so.1 (0x00007f569b845000)
        libwayland-client.so.0 => /lib/x86_64-linux-gnu/libwayland-client.so.0 (0x00007f569b834000)
        libwayland-cursor.so.0 => /lib/x86_64-linux-gnu/libwayland-cursor.so.0 (0x00007f569b829000)
        libxkbcommon.so.0 => /lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007f569b7e7000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f569b7c4000)
        libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f569b78c000)
        libjpeg.so.8 => /lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007f569b705000)
        libtiff.so.5 => /lib/x86_64-linux-gnu/libtiff.so.5 (0x00007f569b684000)
        libwebp.so.6 => /lib/x86_64-linux-gnu/libwebp.so.6 (0x00007f569b61a000)
        libSDL-1.2.so.0 => /lib/x86_64-linux-gnu/libSDL-1.2.so.0 (0x00007f569b57e000)
        libmikmod.so.3 => /lib/x86_64-linux-gnu/libmikmod.so.3 (0x00007f569b33b000)
        libfluidsynth.so.2 => /lib/x86_64-linux-gnu/libfluidsynth.so.2 (0x00007f569b269000)
        libvorbisfile.so.3 => /lib/x86_64-linux-gnu/libvorbisfile.so.3 (0x00007f569b25c000)
        libFLAC.so.8 => /lib/x86_64-linux-gnu/libFLAC.so.8 (0x00007f569b21e000)
        libmad.so.0 => /lib/x86_64-linux-gnu/libmad.so.0 (0x00007f569b1fb000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f569c293000)
        libpulsecommon-13.99.so => /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-13.99.so (0x00007f569b179000)
        libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f569b128000)
        libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f569b0fc000)
        libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f569aef2000)
        libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f569aeea000)
        libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007f569aede000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f569aec2000)
        libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007f569ae17000)
        liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f569adee000)
        libjbig.so.0 => /lib/x86_64-linux-gnu/libjbig.so.0 (0x00007f569abe0000)
        libpulse-simple.so.0 => /lib/x86_64-linux-gnu/libpulse-simple.so.0 (0x00007f569abd9000)
        libcaca.so.0 => /lib/x86_64-linux-gnu/libcaca.so.0 (0x00007f569ab0d000)
        libopenal.so.1 => /lib/x86_64-linux-gnu/libopenal.so.1 (0x00007f569aa25000)
        libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f569a8fa000)
        libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f569a8f4000)
        libjack.so.0 => /lib/x86_64-linux-gnu/libjack.so.0 (0x00007f569a8a8000)
        libsndfile.so.1 => /lib/x86_64-linux-gnu/libsndfile.so.1 (0x00007f569a82a000)
        libreadline.so.8 => /lib/x86_64-linux-gnu/libreadline.so.8 (0x00007f569a7da000)
        libinstpatch-1.0.so.2 => /lib/x86_64-linux-gnu/libinstpatch-1.0.so.2 (0x00007f569a71f000)
        libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f569a6bd000)
        libvorbis.so.0 => /lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007f569a68f000)
        libogg.so.0 => /lib/x86_64-linux-gnu/libogg.so.0 (0x00007f569a682000)
        libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f569a5d3000)
        libwrap.so.0 => /lib/x86_64-linux-gnu/libwrap.so.0 (0x00007f569a5c7000)
        libasyncns.so.0 => /lib/x86_64-linux-gnu/libasyncns.so.0 (0x00007f569a3bf000)
        libapparmor.so.1 => /lib/x86_64-linux-gnu/libapparmor.so.1 (0x00007f569a3aa000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f569a39f000)
        libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f569a399000)
        libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f569a391000)
        libslang.so.2 => /lib/x86_64-linux-gnu/libslang.so.2 (0x00007f569a09a000)
        libncursesw.so.6 => /lib/x86_64-linux-gnu/libncursesw.so.6 (0x00007f569a05e000)
        libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f569a02e000)
        libsndio.so.7.0 => /lib/x86_64-linux-gnu/libsndio.so.7.0 (0x00007f569a01d000)
        libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f5699faa000)
        libvorbisenc.so.2 => /lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x00007f5699eff000)
        liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f5699edc000)
        libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f5699dbe000)
        libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007f5699da1000)
        libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f5699d85000)
        libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f5699d6b000)
        libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f5699d46000)

我遇到的問題是我正在鏈接舊的 sdl 混合器,它不適用於 SDL2,將 lSDL2_mixer 庫添加到我的 make 文件中修復了錯誤,非常感謝 keltar 和 danadam 指出這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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