首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Snapdragon MSM8960 SoC在通话中插入上行音频

使用Snapdragon MSM8960 SoC在通话中插入上行音频
EN

Stack Overflow用户
提问于 2013-03-04 23:03:35
回答 1查看 7.5K关注 0票数 5

一段时间以来,我一直在研究这个特定于MSM8960的话题。我查过ALSA hardware module from google了。Michael在post中的回答确实提到了MSM8960在“硬件和设备驱动程序”级别支持呼叫中的上行链路音频注入。它指的是ALSA模块的级别吗?

从手机上的ALSA配置文件来看,通话中的语音回放似乎是通过/dev/snd/pcmC0D0p完成的,或者至少符合ALSA的范例。是否可以使用其中一个文件描述符来实现此目的?我确实在libalsa-intf中看到了一些有趣的USE_CASE定义。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-04 23:48:53

MSM8960提供了一个名为Incall_Music Audio Mixer的ALSA控件,您可以将CPU DAIs MultiMedia1MultiMedia2 (分别对应于ALSA设备pcmC0D0ppcmC0D1p )连接到该控件。(参见msm-pcm-routing源代码)

因此,如果您有一个正在运行的语音呼叫,并且想要通过pcmC0D0p在上行链路上播放一些音频,您可以通过adb shell完成此操作(假设您已获得根用户访问权限):

代码语言:javascript
复制
amix 'Incall_Music Audio Mixer MultiMedia1' 1
aplay -Dhw:0,0 mono_8khz_audio.wav

更好的方法是在设备的UCM文件(snd_soc_msm_blah_blah..)中创建一个新的用例。其中,在新修改器的使能序列中添加来电音乐路由:

代码语言:javascript
复制
'Incall_Music Audio Mixer MultiMedia1':1:1

(请记住在禁用序列中将其关闭)。

为了使应用程序能够在您的自定义ROM上使用此功能,您还必须在音频HAL和多媒体框架中进行一些其他更改,以便在呼叫处于活动状态时为所需的流类型选择新的UCM设置。

由于版权的原因,我不能深入讨论其余实现的细节,所以我将把它作为一个练习,让感兴趣的人自己弄清楚。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15204570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档