如何在android的musicplayer中播放录制的音频文件?

如何在android的musicplayer中播放录制的音频文件?,android,audio-recording,android-music-player,Android,Audio Recording,Android Music Player,在“活动”中包含三个按钮:按钮1、按钮2、按钮3 当我点击按钮-1:它会录制音频,点击按钮-2它会停止录制,当点击按钮-3它会播放音频它工作正常 但是我想通过音乐播放器播放音频。如何在音乐播放器中播放音频 为了录制和播放音频,我创建了以下内容: Java public class AudioRecord { private static MediaRecorder mediaRecorder = new MediaRecorder(); public MediaPlayer mediaPl

在“活动”中包含三个按钮:按钮1、按钮2、按钮3

当我点击按钮-1:它会录制音频,点击按钮-2它会停止录制,当点击按钮-3它会播放音频它工作正常

但是我想通过音乐播放器播放音频。如何在音乐播放器中播放音频

为了录制和播放音频,我创建了以下内容:

Java

  public class AudioRecord {

private static MediaRecorder mediaRecorder = new MediaRecorder();
public MediaPlayer mediaPlayer = new MediaPlayer();;

private static String audioFilePath  = Environment.getExternalStorageDirectory()
        .getAbsolutePath() + "/myaudio.3gp";
//Button recordButton, stopButton, playButton;

boolean isRecording = false;



public void recordAudio(final Button record,final Button stop,final Button play) throws IOException{

    record.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            try {
                isRecording = true;
                stop.setEnabled(true);
                play.setEnabled(false);
                record.setEnabled(false);

                try {
                    mediaRecorder = new MediaRecorder();
                    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
                    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
                    mediaRecorder.setOutputFile(audioFilePath);
                    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
                    mediaRecorder.prepare();
                } catch (Exception e) {
                    e.printStackTrace();
                }

                mediaRecorder.start();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });
    stop.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            stop.setEnabled(false);
            play.setEnabled(true);

            if (isRecording) {
                record.setEnabled(false);
                mediaRecorder.stop();
                mediaRecorder.release();
                mediaRecorder = null;
                isRecording = false;
            } else {
                mediaPlayer.release();
                mediaPlayer = null;
                record.setEnabled(true);
            }
        }
    });

    play.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            try {
                play.setEnabled(false);
                record.setEnabled(false);
                stop.setEnabled(true);

                mediaPlayer = new MediaPlayer();
                int i = mediaPlayer.getDuration();
                System.out.println("Audio size"+" "+i);
                mediaPlayer.setDataSource(audioFilePath);
                mediaPlayer.prepare();
                mediaPlayer.start();

                mediaPlayer.setOnCompletionListener(new OnCompletionListener() {

                    @Override
                    public void onCompletion(MediaPlayer mp) {
                        // TODO Auto-generated method stub
                        System.out.println("Audio cpmpleted ..............");
                        stop.setEnabled(false);
                        play.setEnabled(true);
                        record.setEnabled(true);
                        mediaPlayer.release();
                        mediaPlayer = null;
                        //Toast.makeText(AudioRecord.this, "Audio Complete", Toast.LENGTH_SHORT).show();
                    }
                });
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });


}  
 }
我正在我的活动类中使用recordAudio()。它工作正常。但我希望在单击“播放”按钮时在musicplayer中播放音频。完成音频后,我希望返回到活动类


任何人都请帮助我

现在明白你的问题了。我假设您的媒体播放器实现工作正常,您只需在音乐结束后调用原始活动即可

您可以使用Media Player类的来执行此操作

        mediaPlayer.setOnCompletionListener(new OnCompletionListener() {

            public void onCompletion(MediaPlayer mp) {

                Log.i("Completion Listener","Song Complete");

                /* Put your code to call back your activity here */
            }
        });
您可以通过多种方法调用原始活动,如
startActivity(intent)
。基本上,在完成音轨后,您的听众将被呼叫,然后您可以决定做什么。您可以只打印一条消息,也可以调用任何您想要的活动


以下是完整的

为什么要制作自己的媒体播放器?为什么不直接从设备上打开一个已安装的音乐应用程序呢?。当用户从那里按back时,他将返回到您的应用程序。是的,Sanjeev您的回答正确。但是,我想在完成音乐时返回应用程序,而不需要用户输入。上面的答案对我来说就像chamm一样有效。但在这里,我想在完成音乐时返回到我的应用程序。音乐结束时,它应该自动返回到您的应用程序?否,它不会返回到我的应用程序。在我单击“返回”按钮之前,它显示的是我。@user2931067理解您的问题。答案已更新。使用MediaPlayer.OnCompletionListener