4

我有一些设计问题想与有兴趣帮助我的人讨论。我正计划开发一个简单的 VoIP 程序,允许同一网络中的两部 Android 手机使用 VoIP。我的目标只是捕获声音,使用 UDP 发送数据,接收 UDP 数据并播放声音。

我目前的设计是有2个线程:一个捕获麦克风并发送数据;另一个接收字节并播放它们。

我开始使用 MediaPlayer 和 MediaRecorder 来实现它。出现的问题是如何录制和播放声音?到那时,我想知道我是否需要使用一个文件,虽然这看起来很慢,或者是否有办法让录音自动发送到我的 UDP 套接字?

基本上,我想知道我是否必须录制到一个文件中,然后才能播放它,或者我是否可以通过一个套接字(用于录制和播放)。

请问有人有什么建议吗?

非常感谢

4

2 回答 2

1

MediaRecorder 需要一个 FD,因此您也可以使用套接字。我没有看到任何问题。这完全取决于您将如何设计您的系统。

于 2010-11-14T06:44:41.113 回答
1

不要将这些类用于流式音频 - 请改用 AudioTrack 和 AudioRecord。

它们提供播放和录制原始音频数据所需的功能,而无需处理 FD。

当您记录一个帧(byte[] 或 short[])时,用 UDP 数据包包装它。当你收到一个 UDP 数据包时,将相关的 byte[] 或 short[] 解包并播放。

于 2011-04-03T20:49:10.210 回答