首页 文章

libgdx音乐兼容性

提问于
浏览
0

是否有与libgdx一起使用音乐的兼容性列表?我遇到某些文件扩展名有些困难,比如flac和wav . libgdx似乎不支持Flac,而wav文件似乎仅限于16位采样 . 尝试播放flac音乐时,我收到错误消息:

音乐的未知文件扩展名:aFlacFile.flac

该错误可追溯到libgdx newMusic方法:

public OpenALMusic newMusic (FileHandle file) {
    if (file == null) throw new IllegalArgumentException("file cannot be null.");
    Class<? extends OpenALMusic> musicClass = extensionToMusicClass.get(file.extension().toLowerCase());
    if (musicClass == null) throw new GdxRuntimeException("Unknown file extension for music: " + file);
    try {
        return musicClass.getConstructor(new Class[] {OpenALAudio.class, FileHandle.class}).newInstance(this, file);
    } catch (Exception ex) {
        throw new GdxRuntimeException("Error creating music " + musicClass.getName() + " for file: " + file, ex);
    }
}

如错误所述, *.flac 似乎不是受支持的扩展名 . 我尝试播放的flac文件的位深度为16位,比特率为588kps,采样率为44 kHz . 此外,一些wav文件可以工作,而其他人没有:

创建音乐时出错com.badlogic.gdx.backends.lwjgl.audio.Wav $文件音乐:aWavFile.wav ... GdxRuntimeException:读取WAV文件时出错:aWavFile.wav ... GdxRuntimeException:WAV文件每个必须有16位样本:24

其他人似乎也遇到过这种情况:Android Java LibGDX Music, Sound,正如解决方案评论和我的异常抛出中所述,wav采样需要16位的速率 . Androids开发者网站https://developer.android.com/guide/topics/media/media-formats指出,应该支持flac,而wav限制为8/16位线性pcm . Gamefromscratch的Joutube教程https://youtu.be/GN2KV4zQfEk?t=1712提到由于多平台兼容性,libgdx音频的灵活性可能低于标准实用程序 . 猜猜我的问题又回到了:libgdx是否有音乐扩展的兼容性列表?

1 回答

  • 1

    我尝试了以下格式:

    1. mp3
    2. ogg
    3. Wav(16 bit)
    

    尝试加载时,其他格式可能会导致问题 .

相关问题