安卓MediaRecorder在流媒体方面的应用

9

如何实现MediaRecorder的“流式”结果?

我所见的唯一方法是使用mediaRecorder.setOutputFile,该方法接收一个文件描述符。因此,我可以将结果写入文件或通过套接字发送给接收器。

我尝试了第二种解决方案,但是由于在流中无法“定位”,导致结果视频损坏。

我的想法是使用安卓设备的相机将结果发布到Red5。

2个回答

2

1
这是相关的代码。似乎使用了一个环回的 Unix 套接字来获取数据。我认为它有点 hacky,但并不太多。 - Timmmm

2

是的,这是可能的。 这里是使用FileDescriptor和socket的示例代码:

    socket = new Socket("192.168.1.234",8888);
    ParcelFileDescriptor fileDescriptor = ParcelFileDescriptor.fromSocket(socket);

    mRecorder = new MediaRecorder();
    mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    mRecorder.setOutputFile(fileDescriptor.getFileDescriptor);
    mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

    try {
        mRecorder.prepare();
    } catch (IOException e) {
        Log.e(LOG_TAG, "prepare() failed");
    }

    mRecorder.start();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接