我有一些设计问题,我想与有兴趣帮助我的人讨论。我打算开发一个简单的VoIP程序,允许同一网络中的两部Android手机使用VoIP。我的目标只是捕获声音,用UDP发送数据,接收UDP数据和播放声音。
我目前的设计是有两个线程:一个捕获麦克风并发送数据;另一个接收字节并播放它们。
我开始使用MediaPlayer和MediaRecorder实现它。出现的问题是如何录制和播放声音?通过这个,我想知道我是否需要使用一个文件,虽然这似乎很慢,或者无论如何都要将录音自动发送到我的UDP套接字了吗?
基本上,我想知道是否必须录制到文件,然后才能播放,或者我可以通过套接字(录制和播放)。
有人有什么建议吗?
非常感谢
答案 0 :(得分:1)
MediaRecorder需要FD,所以你也可以使用套接字。我没有看到任何问题。这一切都取决于你如何设计你的系统。
答案 1 :(得分:1)
不要将这些类用于流音频 - 请改用AudioTrack和AudioRecord。
它们提供播放和录制原始音频数据所需的功能,而无需处理FD。
当您录制帧(byte []或short [])时,请使用UDP数据包进行包装。 当您收到UDP数据包时,请解压缩相关的字节[]或短[]然后播放。