使单个MediaPlayer在android studio中播放多个声音的代码

问题描述 投票:0回答:1

[作为新手程序员,尝试编写片段中按钮单击时会播放声音的应用程序;成功做到了,但我想添加更多小声音来接连播放。如何在“ R.raw.sound1”之后添加这些声音(sound2,sound3,sound4等)?请指导。

 buttonPlayAudioVar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                if(mp != null) {
                    if(mp.isPlaying()){
                        mp.stop();
                        mp.release();
                    }
                }

                mp = MediaPlayer.create(getActivity().getApplicationContext(), R.raw.sound1);
                mp.start();
                mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                    public void onCompletion(MediaPlayer mediaPlayer) {
                        mp.release();
                        mp = null;

                    }
                });
            }
        });
android audio buttonclick
1个回答
0
投票
   //you can add all the songs in a array

    ArrayList<String> songsArray = new ArrayList<>();
    int position = 0;

    buttonPlayAudioVar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mediaPlayer(songsArray, position);
        }
    });

   private void mediaPlayer(ArrayList<String> songsArray) {
    if (mp != null) {
        if (mp.isPlaying()) {
            mp.stop();
            mp.release();
        }
    }

    if (position > songsArray.size() - 1) {
        return;
    }

    try {
        mp.setDataSource(songsArray.get(position));

        position++;
        mp.prepareAsync();
    } catch (IOException e) {
        e.printStackTrace();
    }

    mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mp) {
            mp.start();
        }
    });

    mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        public void onCompletion(MediaPlayer mediaPlayer) {
            mp.release();
            mp = null;
            mediaPlayer(songsArray, position);
        }
    });
}
© www.soinside.com 2019 - 2024. All rights reserved.