声音池未执行" OnLoadComplete"

时间:2018-03-12 07:41:26

标签: android audio soundpool

我正在使用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();
        }
}

1 个答案:

答案 0 :(得分:1)

在加载下方的播放记录方法中添加此行。

  mySoundPool.setOnLoadCompleteListener(this);