我已经实现了一个android应用程序来录制音频和播放它。我不想把它保存在文件中,而是保存在缓冲区中。我觉得录音有用,但播放不行。我不确定,因为我不能测试录音没有播放工作。
public static MediaRecorder recorder = null;
public static MediaPlayer player = null;
byte[] buffer;
ParcelFileDescriptor[] fdPair = ParcelFileDescriptor.createPipe();
//get a handle to your read and write fd objects.
ParcelFileDescriptor readFD = fdPair[0];
ParcelFileDescriptor writeFD = fdPair[1];
。.。
//the recording
public void startRecording(Context context) throws IOException {
recorder = new MediaRecorder();
FileInputStream reader = new FileInputStream(readFD.getFileDescriptor());
try {
recorder.prepare();
} catch (IOException e) {
Log.e("Record ", "prepare() failed");
}
recorder.start();
buffer = new byte[4096];
reader.read(buffer);
}
public void stopRecording(Context context){
recorder.stop();
recorder.reset();
recorder.release();
recorder = null;
}
。.。
//the playing
public void buttonClick_startPlaying(View v, Context context){
if(player == null) {
player = new MediaPlayer();
}
try {
if(!(!player.isPlaying() && player.getCurrentPosition() > 1)) {
player.reset();
FileInputStream reader = new FileInputStream(writeFD.getFileDescriptor());
player.setDataSource(reader.getFD());
player.prepare();
seekBar.setMax(player.getDuration());
}
player.start();
new Thread(this).start();
} catch (IOException e) {
Log.e("startPlaying", "prepare() failed");
}
我在日志中得到“prepare() failed”。问题是什么?