实际上,我的设备不支持MediaPlayer,因此我试图使用SoundPool播放.wav声音,就像“错误通知声音”一样,其重量仅为350kb。
我试图使用在stackoverflow中找到的以下代码
private void playSound() {
audioAttributes = new AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.setUsage(AudioAttributes.USAGE_MEDIA)
.build();
sp = new SoundPool.Builder().build();
int soundId = sp.load(getApplicationContext(), R.raw.errorsound, 1);
sp.play(soundId, 1, 1, 1, 1, 1f);
}
但是每次我尝试投射声音时,都会在Logcat中收到“样本1未就绪”
该代码有什么问题?我该如何解决?
更新:
按如下所示更改代码后
private void playSound() {
audioAttributes = new AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.setUsage(AudioAttributes.USAGE_MEDIA)
.build();
sp = new SoundPool.Builder().build();
final int soundId = sp.load(getApplicationContext(), R.raw.itemexist, 1);
sp.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
sp.play(soundId, 1.0f, 1.0f, 1, 1, 1f);
}
});
}
“样品1未就绪”不再出现,但我仍然听不到任何声音。 在Logcat中,出现以下错误:
无法打开libwvm.so:dlopen失败: “ /system/vendor/lib64/libwvm.so”是32位而不是64位