【发布时间】:2013-12-27 18:13:02
【问题描述】:
在activity中包含三个按钮Button-1,Button-2,Button-3。
当我点击 Button-1 时:它会录制音频并点击 Button-2 会停止录制,当我点击 Button-3 时它会播放音频,它工作正常。
但我想通过音乐播放器播放该音频。如何在音乐播放器中播放音频。
为了录制和播放音频,我正在创建这个::
AudioRecord.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()。它工作正常。但是我想在点击播放按钮时在音乐播放器中播放音频。我想在完成音频时返回到活动类。
请任何人帮助我。
【问题讨论】:
-
为什么要制作自己的媒体播放器?为什么不直接从设备打开现有的、已安装的音乐应用程序?当用户从那里按回来时,他会回到您的应用程序。
-
是的,Sanjeev 你是对的。但是,我想在没有用户参与的情况下完成音乐后返回应用程序。
标签: android audio-recording android-music-player