SoundPool中的声音无法在Android

时间:2016-09-02 16:52:47

标签: java android soundpool

我在为游戏加载声音时遇到问题。或者说,一些声音。加载R.raw.successR.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);

加载文件的顺序似乎并不重要。仅加载failsuccess没有问题。声音工作了很长一段时间,但在我正在研究的最后一个补丁中,声音停止加载。更改文件的名称也无法解决此问题。

已经尝试过广泛地“搜索”各种形状和形式的错误,但无济于事。我在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

1 个答案:

答案 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

视频文件无处不在。

所以,我的建议是:尝试使用您的音频文件格式 - 将它们转换为其他内容可能有所帮助。