无锡企业网站设计公司网站建设作业做一个简单的网站
2026/6/12 0:11:15 网站建设 项目流程
无锡企业网站设计公司,网站建设作业做一个简单的网站,贵州网站开发公司,中捷贴吧手机上打电话时通常会支持在扬声器和听筒以及蓝牙耳机之间的动态音频设备切换。我开发过的一款手表也有这样的功能#xff0c;只不过由于是手表#xff0c;没有了听筒#xff0c;动态音频设备切换就变成了在扬声器以及蓝牙耳机之间了。本文就讲讲这款手表上动态切换音频设备…手机上打电话时通常会支持在扬声器和听筒以及蓝牙耳机之间的动态音频设备切换。我开发过的一款手表也有这样的功能只不过由于是手表没有了听筒动态音频设备切换就变成了在扬声器以及蓝牙耳机之间了。本文就讲讲这款手表上动态切换音频设备是怎么做的。1 手表SoC硬件框图switch5这款智能手表的SoC为了降成本把codec芯片和蓝牙芯片都集成到SoC里面即codec芯片和蓝牙芯片内置了示意如上图。打电话时当声音从mic和speaker采集和播放可以叫做codec电话。这时涉及3个core分别是AP/ADSP/CP。当声音从蓝牙耳机采集和播放可以叫做蓝牙电话。这时涉及4个core分别是AP/ADSP/CP/BT。 各个核之间通过IPC交互。音频设备动态切换是指在语音通话过程中内置codec device 和蓝牙device之间的切换。2 语音通话相关软件模块下图给出了语音通话时涉及到的相关软件模块switch2上图中左边一列是打电话时CP的相关模块处理中间一列是AP以及ADSP的相关模块处理右边一列是打蓝牙电话时BT的相关模块处理。语音通话均是由phone APP (UI) 发起。当是内置codec电话时仅涉及左边两列模块即蓝牙相关模块不涉及。Phone APP调用左边一列的相关模块建立起CP上的voice path。Phone APP调用中间一列的相关模块建立起ADSP上的voice path以及使能codec等。AP audio会给ADSP发“DEVICE_SELECT” IPC CMD告诉ADSP选用CODEC device。当是蓝牙电话时三列模块均涉及。Phone APP调用左边一列的相关模块建立起CP上的voice path。Phone APP调用中间一列的相关模块建立起ADSP上的voice path。AP audio会给ADSP发“DEVICE_SELECT” IPC CMD告诉ADSP选用BT device。Phone APP调用右边一列的相关模块建立起BT上的voice path。不管是codec 电话还是蓝牙电话均是由数据消耗者来发中断驱动的。codec 电话时消耗者是codeccodec会定期的比如每10ms通过ADMA中断来驱动ADSP运转起来ADSP也会给CP发中断驱动CP运转起来完成整个通话的处理。BT 电话时消耗者是BTBT会定期的给ADSP发中断来驱动ADSP运转起来ADSP也会给CP发中断驱动CP运转起来完成整个通话的处理。下图给出了内置codec通话时的data path:switch3从上图看出内置codec语音通话 上行时mic采集语音数据通过ADMA送给ADSPADSP处理后通过IPC送给CPCP处理后通过空口送给对方。下行时CP通过空口接收语音数据处理后通过IPC把数据送给ADSPADSP处理后通过ADMA把数据送给扬声器播放出来。下图给出了蓝牙通话时的data path:switch4从上图看出蓝牙语音通话时上行时蓝牙耳机采集语音数据通过蓝牙空口送给SoC上内置的BT coreBT core处理后通过IPC送给ADSPADSP处理后通过IPC送给CPCP处理后通过空口送给对方。下行时CP通过空口接收语音数据处理后通过IPC把数据送给ADSPADSP处理后通过IPC把数据送给BT coreBT core处理后通过蓝牙空口把数据送给蓝牙耳机播放出来。所以通话时动态切换设备ADSP跟CP之间的交互是不需要改变从而CP上audio相关的代码不需要改变改变的是ADSP与codec以及BT的交互。3 动态切换设备处理下面分别从控制面上和数据面上讲动态切换设备处理。3.1 控制面上a) 在AP/ADSP这一列上UI通知multimedia interface 做设备切换。在BT这一列上当从内置codec切到蓝牙时UI通知BT adaptor enable 蓝牙。当从蓝牙切到codec时UI通 知BT adaptor disable 蓝牙。b) multimedia interface通知AP audio做设备切换。当从内置codec切到蓝牙时BT adaptor 通知BT Host enable 蓝牙。当从蓝牙切到codec时BT adaptor 通知BT Host disable 蓝牙。c) 为了避免POP 音AP audio 给ADSP发“MUTE” IPC CMD让ADSP把voice stream的音量缓降为。d) AP audio 给ADSP发“DEVICE_SELECT” IPC CMD把voice stream要用的新device带给ADSP。 BT Host通知BT Controller enable当从内置codec切到蓝牙时或者disable当从蓝牙切到codec时 BT上的voice path。e) ADSP收到“DEVICE_SELECT” IPC CMD发现voice stream 已被使能且当前使用的设备和带下来的设备不一致就知道要做设备切换。当从内置codec切到蓝牙时将codec disable同时做蓝牙通话的一些初始化。当从蓝牙切到内置codec时做蓝牙通话的清除同时将codec enable。f) AP audio 给ADSP发“UNMUTE” IPC CMD让ADSP把voice stream的音量从缓变为正常值。3.2 数据面上前文说过不管是codec 电话还是蓝牙电话均是由消耗者给ADSP发中断来驱动的。Codec电话时是给ADSP发ADMA中断来驱动蓝牙电话时是给ADSP发BT IPC中断来驱动。ADSP的这些中断服务程序以及通话处理等在动态设备切换这个功能前就有均不需要改动。唯一需要改动的是语音增强voice enhancementVE中profile的改变以及VE要重新初始化。Codec电话和蓝牙电话属于不同的场景有不同的profile。当是codec电话时VE在ADSP上做当是蓝牙电话时VE在蓝牙耳机里做。当场景改变时VE的profile就要跟着变。profile变了相应的VE就要重新做初始化。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询