我们正在使用Cumulus构建一个实时 RTMFP 语音聊天应用程序。虽然使用 NetStreams 进行基本的语音传输非常容易,但我们有一个大问题:
似乎没有办法操纵 NetStream 发送的麦克风数据,也没有办法操纵 NetStream 在播放之前接收到的数据。
然而,这正是我们所需要的。我们不想传输普通麦克风录制的音频,而是先音高,然后发送,然后播放。或者先发送它,然后投它,然后播放它。但似乎整个录音、speex 编码、speex 解码和音频播放都完全封装在 NetStream 类中。
实现我们想要的(并且所有这些都完全删除 NetStream)的唯一方法似乎是:
发送原始音调音频数据。这确实有效,但当然要发送大量数据,并且在我们的本地 LAN 测试之外可能工作得不够快。
音调音频数据,使用现有编码器转换为 ogg/mp3 用于闪存、发送、解码 ogg/mp3 和播放。但这意味着对从麦克风接收到的每个样本数据包进行编码,添加标头内容等。因此,与原始音频数据相比,这甚至可能不会产生太大的好处。
2.1。如果有一个用于闪存的Speex编码器/解码器,这实际上是一个好方法。但具有讽刺意味的是,除了内置的(用于在 NetStreams 中编码/解码音频)之外,没有其他不能明确使用的。是的,非常感谢您不提供它,Adobe ...
将数据发送到 Cumulus 服务器,在那里推销(并可能转换)并发送给接收者。这可能甚至不会比 1 快得多。并且还抛弃了 RTMFP、P2P 通信的确切好处。
这个问题有没有比我在这里列出的更好的解决方案,可能是一种在麦克风数据传递到 NetStream 之前实际操作麦克风数据的方法?