我正在使用Android应用程序播放具有不同频率,音高和音量的音频。为了达到这个目的,我已经使用了声音池,音频正在完美地播放,而不是改变音量和速率。 经过研究,我意识到" On Load Complete"方法没有执行。 我很困惑为什么这个方法没有执行。 这是我的代码
private void playRecord(int freqancy, int bit_rate) {
try{
String folder_main = "MyVoiceChanger";
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + folder_main + "/Recording.mp3");
mySoundPool=new SoundPool(1,AudioManager.STREAM_MUSIC,0);
mySoundPool.load(file.getPath(),0);
Toast.makeText(mContext, "Usm", Toast.LENGTH_SHORT).show();
MediaPlayer mediaPlayer=MediaPlayer.create(mContext, Uri.parse(file.getPath()));
mediaPlayer.start();
}catch (Exception e){
e.printStackTrace();
}
}
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
for (int i=0; i<dataset.size();i++){
dataset.get(position);
}
if (position==0){
mySoundPool.play(0,1,1,1,1, (float) dataset.get(position).getBit_rate());
Toast.makeText(mContext, "ibm", Toast.LENGTH_SHORT).show();
mySoundPool.release();
}
}
答案 0 :(得分:1)
在加载下方的播放记录方法中添加此行。
mySoundPool.setOnLoadCompleteListener(this);