我最近发布了我的应用,显然使用SoundPool的音频文件在某些设备上无法播放。据报道,其中一部是Galaxy A5 2017,另一部是联想。
这是我使用Soundpool的方式:
if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP){
AudioAttributes audioAttributes = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION).build();
soundPool = new SoundPool.Builder().setMaxStreams(7)
.setAudioAttributes(audioAttributes).build();
}else{
soundPool = new SoundPool(7, AudioManager.STREAM_MUSIC,0);
}
soundTask= new MyAsyncTask().execute();
AsyncTask
light = soundPool.load(getActivity(),R.raw.light,1);
// + Other Sounds
soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId, int arg2) {
loaded=true;
}
});
在按钮上单击:
if (!count5) {
if (soundPool!=null && soundPool.play(light, 0, 0, 0, 1, 1)!=0) {
count5 = true;
seekBar5.setVisibility(View.VISIBLE);
soundlight= soundPool.play(light, progresslight / 100f, progresslight / 100f, 0, -1, 1);
}
else{
Toast.makeText(getActivity(), getString(R.string.notload),
Toast.LENGTH_SHORT).show();
return;
}
}
else {
soundPool.pause(soundlight);
seekBar5.setVisibility(View.INVISIBLE);
seekBar5.setProgress(progresslight);
count5 = false;
}
此代码可在我使用的大多数设备上运行,但我认为在某些设备上无法正常工作。