我正在开发一种低数据速率的VoIP类项目。我需要以低数据速率捕捉音频并将其存储在内部缓冲区或FIFO(不在文件中)。使用MediaRecorder写入缓冲区或FIFO
我想使用低数据速率.AMR编码器,这意味着AudioRecord不在了。 MediaRecorder看起来像它正是我想要的,只是它似乎写入一个文件。
MediaRecorder需要一个FileDescriptor ...有没有什么办法可以编写一个实现FileDescriptor接口的类......充当字节的同步......但不是将它们发送到文件,而是将它们存储在缓冲?关于FileDescriptor的文档特别指出,应用程序不应该自己写,但为什么不可以,而且有可能呢?
http://docs.oracle.com/javase/1.4.2/docs/api/java/io/FileDescriptor.html
总之,我想发展我自己的流,并诱骗MediaRecorder将数据发送给它。也许做一些棘手的事情,打开同一个APK中的套接字的两端,并给MediaRecorder套接字写入?使用套接字作为我的FIFO?我对此有点新,所以任何帮助/建议非常感谢。
我在RX方面有一个相关的问题。我想有一个缓冲区/ FIFO提供MediaPlayer。我可以欺骗MediaPlayer接受来自由我自己的专有流提供的缓冲区中的数据吗?
试过了。它不起作用。至少不适用于MediaRecorder。 – binW