是否存在将音乐与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 $ Music时出错 用于文件:aWavFile.wav
...
GdxRuntimeException:读取WAV文件时出错:aWavFile.wav
...
GdxRuntimeException:WAV文件每个样本必须具有16位:24
其他人似乎也遇到了这个问题:Android Java LibGDX Music, Sound,如解决方案注释中所述,我抛出了异常,wav采样需要16位速率。 Android开发者网站https://developer.android.com/guide/topics/media/media-formats指出,当wav限制为8/16位线性pcm时,应该支持flac。 Gamefromscratch https://youtu.be/GN2KV4zQfEk?t=1712的Youtube教程提到,由于具有多平台兼容性,libgdx音频的灵活性可能低于标准实用程序。 猜猜我的问题回到了:libgdx是否有音乐扩展的兼容性列表?
答案 0 :(得分:1)
我尝试了以下格式:
1. mp3
2. ogg
3. Wav(16 bit)
尝试加载其他格式时可能会导致问题。