我在为游戏加载声音时遇到问题。或者说,一些声音。加载R.raw.success
和R.raw.fail
似乎没有问题。但是没有任何笔记会被加载。以下是我的加载代码:
SoundPool soundPool = new SoundPool(20, AudioManager.STREAM_MUSIC, 1);
int[] sounds = new int[6];
sounds[0] = soundPool.load(getApplicationContext(), R.raw.note_c, 1);
sounds[1] = soundPool.load(getApplicationContext(), R.raw.note_d, 1);
sounds[2] = soundPool.load(getApplicationContext(), R.raw.note_e, 1);
sounds[3] = soundPool.load(getApplicationContext(), R.raw.note_g, 1);
sounds[4] = soundPool.load(getApplicationContext(), R.raw.note_a, 1);
sounds[5] = soundPool.load(getApplicationContext(), R.raw.note_ctwo, 1);
success_sound = soundPool.load(getApplicationContext(), R.raw.success, 1);
fail_sound = soundPool.load(getApplicationContext(), R.raw.fail, 1);
加载文件的顺序似乎并不重要。仅加载fail
和success
没有问题。声音工作了很长一段时间,但在我正在研究的最后一个补丁中,声音停止加载。更改文件的名称也无法解决此问题。
已经尝试过广泛地“搜索”各种形状和形式的错误,但无济于事。我在LogCat中得到以下输出:(最后两行是成功和失败声音加载没有问题。)
com.example.application E/WVMExtractor: Failed to open libwvm.so: dlopen failed: library "libwvm.so" not found
com.example.application E/NdkMediaExtractor: sf error code: -1010
com.example.application E/SoundPool: Unable to load sample
com.example.application E/NdkMediaExtractor: sf error code: -1010
com.example.application E/SoundPool: Unable to load sample
com.example.application E/NdkMediaExtractor: sf error code: -1010
com.example.application E/SoundPool: Unable to load sample
com.example.application E/NdkMediaExtractor: sf error code: -1010
com.example.application E/SoundPool: Unable to load sample
com.example.application E/NdkMediaExtractor: sf error code: -1010
com.example.application E/SoundPool: Unable to load sample
com.example.application E/NdkMediaExtractor: sf error code: -1010
com.example.application E/SoundPool: Unable to load sample
com.example.application I/OMXClient: Using client-side OMX mux.
com.example.application I/OMXClient: Using client-side OMX mux.
当声音假设播放时,我得到以下输出:
W/SoundPool: sample 1 not READY
答案 0 :(得分:1)
问题可能出在您的资产(音频文件)
上我对LG G4设备上的一些视频文件(.mov)有同样的问题(E/NdkMediaExtractor: sf error code: -1010
)。 (三星S7,华为P9等设备没问题)
使用以下内容转换所有文件后
for f in *.mov; do ffmpeg -i "$f" -c copy -movflags +faststart "${f%.mov}.mp4"; done
视频文件无处不在。
所以,我的建议是:尝试使用您的音频文件格式 - 将它们转换为其他内容可能有所帮助。