为什么Soundpool在Samsung Galaxy A5 2017上不起作用?

时间:2018-08-15 13:09:26

标签: android soundpool

我最近发布了我的应用,显然使用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;
}

此代码可在我使用的大多数设备上运行,但我认为在某些设备上无法正常工作。

0 个答案:

没有答案