看到关于S60上实现手机音频通话的帖子, 类似VOIP的功能。原先以为硬件制约无法实现这样的功能, 还是有高人指出可能的解决方法。 挺有趣的, 立此存照。
提问:
关于手机对讲功能的实现一直有点不解,不知那位高人能指点下。
对讲功能我把它简单的分割成 采集和播放两类。
播放 要实现流式播放 使用的是cmdaaudioOutputstream类 从服务器接收数据然后 wrtie 播放。
采集 同样要流式采集 边采集边发送数据到服务器,使用的是cmdaaudioinputstream类。
可是在前端时间做的时候 发现 播放和采集不能同时工作。 播放时采集停止,采集的时候 播放停止。
后来在xiaoyuan 大神 介绍说 是 由于底层的DSP(模拟数字信号转换器) 不是全双工的,如果对DSP很熟悉可以做成这个功能。
可不熟悉, 可手机的通话不也就是变相的对讲嘛 哪儿能实现 怎么使用api 自己搞就不行了? 是不是有其他的方法来做??
nokia 上介绍说 使用asp 语音代理服务器,这就属于插件了 这样的话做出来的程序会很大。
这个对讲到底怎么实现呢??
答案:
s60上可以实现边采集边播放。 参考这个例子
file name: | S60_Platform_Full-Duplex_Audio_Example_2_0_en.zip |
description: | This C++ example application plays and records audio simultaneously, reading from the microphone and writing to the earpiece/speaker, creating a local audio feedback loop. Audio is processed in encoded format, using real-time encoding/decoding support from audio hardware. This example can also be used for creating VoIP applications on S60 2nd Edition, S60 2nd Edition FP2 and FP3. Main classes: CMMFDevSound, MDevSoundObserver. |