我们正在使用Cumulus构建一个实时RTMFP语音聊天应用程序。尽管使用NetStreams进行基本语音传输非常简单,但我们遇到了一个大问题:使用RTMFP与操纵语音音频进行实时语音聊天
似乎没有办法操纵NetStream发送的麦克风数据,也不是操纵数据的方式NetStream在播放之前收到。
但是,这正是我们所需要的。我们不想传送正常的麦克风录制的音频,但是先调出它,然后发送它,然后播放它。或者先发送它,然后播放它,然后播放它。但似乎整个音频录制,speex编码,speex解码和音频播放完全封装在NetStream类中。
达到我们想要的(和所有的人都完全去除的NetStream)的唯一途径似乎是:
发送原始音调的音频数据。这确实有用,但是当然需要发送大量数据,并且可能无法在我们的本地局域网测试之外工作得足够快。
音调音频数据,使用现有的闪存编码器转换为ogg/mp3,发送,解码ogg/mp3和播放。但是这意味着要对从麦克风接收到的每个样本数据包进行编码,添加标题等等。因此,与原始音频数据相比,这甚至不会产生太大的好处。
2.1。如果存在用于闪存的Speex编码器/解码器,这实际上是一个好方法。但具有讽刺意味的是,除了内置的一个(用于在NetStreams中对音频进行编码/解码),无法明确使用。是的,非常感谢没有提供它,Adobe ...
发送数据到积云服务器,沥青(并可能转换)在那里,并发送给收件人。这甚至可能不会比1快得多,并且还会丢弃RTMFP,P2P通信的确切益处。
有没有办法解决这个问题,将我比这里列出可能的方式将其传递给NetStream之前,实际操作麦克风数据的那些工作得更好?
嘿,谢谢你的回答!不幸的是,我们已经发现了一些编码器/解码器,但是注意到即使这样我们也无法实现“正常”语音聊天的速度。考虑到我们的用户没有我们的硬件,并且因此比我们的测试更慢,我们完全忽略了这个想法。或者直到Adobe提供在发送语音数据之前操作语音数据的功能/使用自定义编码器而不是Speex等。 – TheSHEEEP 2012-04-16 07:14:45