如何播放音频从缓冲区与Mediaplayer在Android?

我已经实现了一个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”。问题是什么?

阅读全文

▼ 版权说明

相关文章也很精彩
推荐内容
更多标签
相关热门
全站排行
随便看看

错说 cuoshuo.com —— 程序员的报错记录

部分内容根据CC版权协议转载;网站内容仅供参考,生产环境使用务必查阅官方文档

辽ICP备19011660号-5

×

扫码关注公众号:职场神器
发送: 1
获取永久解锁本站全部文章的验证码