一种音频适配方法和系统技术方案

技术编号:14277671 阅读:77 留言:0更新日期:2016-12-24 20:30
本申请公开了一种音频适配方法和系统,其中所述方法用于使第三方应用与操作系统的音频子系统适配并包括:响应于第三方应用的音频类型为非语音通话,第三方应用直接调用媒体接口库中的相应接口,其中不同音频类型具有不同的默认优先级,及其中媒体接口库向第三方应用提供修改默认优先级的选择;媒体接口库调用音频设备申请接口库的接口向音频设备状态管理器申请使用音频设备;响应于申请成功,音频流创建器产生音频流并将其发送给音频服务,及音频设备状态管理器将音频路由发送给音频服务;通过硬件驱动使用相应音频设备播放所述音频流。本发明专利技术使得第三方应用可参与音频策略的适配,改善了用户体验。

【技术实现步骤摘要】

本申请涉及电数字数据处理领域,尤其涉及一种音频适配方法和系统
技术介绍
在Android系统中,应用通过获取焦点事件及其音频框架把所有音频策略在音频策略服务(AudioPolicyService)中制定。由于一个播放线程只能对应一个音频设备,如手机中常用的音频设备喇叭、耳机,在系统运行过程中,如果混音后的音频是从喇叭输出,就会有一个播放线程与喇叭相对应。同样,当声音从耳机输出时,也定会有一个播放线程与耳机相对应。这使得只要用户的音频策略发现改变,就得修改AudioPolicyService中的源码,甚至针对不同功能的硬件也需要把AudioPolicyService的代码作相应的更新。而AudioPolicyService制定所有的音频策略是通过计算机程序语言实现,作为普通人是很难见文生意的,同时AudioPolicyService也会加载所有音频相关设备,把制定音频策略与维护音频设备这两者交织在一起,在一定程度也上增加了代码的复杂度。移动操作系统中,第三方应用已成为整个产业链的重要组成部分。为此,移动操作系统SDK中提供的接口是否易于应用的开发,也成为移动操作系统优劣的衡量标准之一。而各应用在运行时的硬件资源使用冲突,是整个系统最复杂的部分之一。为了既解决应用使用的资源冲突问题又不让应用过多的关注冲突的处理逻辑,这使得移动操作系统,除了针对各硬件设备资源各自有其处理逻辑之外,还必须让其处理的结果方便让应用同步。而对于音频子系统,只要涉及到声音的播放与录制的应用,都必将与其有交互。其涉及的场景非常多也非常复杂,如音频通路的切换,音频设备连接状态的管理以及混音等等。如果让应用各自去处理这些的冲突,那几乎是不可能事情。在现有技术中,第三方应用调用音频相关的接口只管播放,而无需关注音频冲突的决策结果。这一点的确降低了应用开发的难度,但同时也失去了应用开发适应音频子系统的灵活性,这定将损失一部分良好的用户体验。
技术实现思路
本申请的目标在于提供一种第三方应用也能参与音频策略的适配从而提高应用的用户体验的方法和/或系统。本申请的目标由一种音频适配方法实现,该方法用于使第三方应用与操作系统的音频子系统适配,所述音频子系统包括媒体接口库、音频设备申请接口库、音频设备状态管理器、音频流创建器、音频服务及硬件驱动,其中所述媒体接口库包括媒体播放、录制接口并带编解码库,所述方法包括:响应于第三方应用的音频类型为非语音通话,第三方应用直接调用所述媒体接口库中的相应接口,其中不同音频类型具有不同的默认优先级,及其中所述媒体接口库向第三方应用提供修改默认优先级的选择;所述媒体接口库调用所述音频设备申请接口库的接口向所述音频设备状态管理器申请使用音频设备;响应于申请成功,所述音频流创建器产生音频流并将其发送给所述音频服务,及所述音频设备状态管理器将音频路由发送给所述音频服务;通过所述硬件驱动使用相应音频设备播放所述音频流。本申请的目标还由一种音频适配系统实现,该系统用于使第三方应用与操作系统的音频子系统适配,所述音频子系统包括媒体接口库、音频设备申请接口库、音频设备状态管理器、音频流创建器、音频服务及硬件驱动,其中所述媒体接口库包括媒体播放、录制接口并带编解码库,所述音频适配系统包括:媒体接口库调用模块,用于响应于第三方应用的音频类型为非语音通话,第三方应用直接调用所述媒体接口库中的相应接口,其中不同音频类型具有不同的默认优先级,及其中所述媒体接口库向第三方应用提供修改默认优先级的选择;第一申请模块,用于使得所述媒体接口库调用所述音频设备申请接口库的接口向所述音频设备状态管理器申请使用音频设备;第一音频流生成模块,用于响应于申请成功,所述音频流创建器产生音频流并将其发送给所述音频服务,及所述音频设备状态管理器将音频路由发送给所述音频服务;播放模块,用于通过所述硬件驱动使用相应音频设备播放所述音频流。在本说明书中,术语“音频策略”定义各应用发生音频冲突时解决的方法或规则。“音频路由”主要是根据应用的类型和音频设备的连接状态,给应用选择合适的音频设备输出声音的过程。“音频设备状态管理器”(OHM,Open Hardware Manager)用于管理各音频设备的连接状态,是实现音频策略的后台服务程序,用以音频路由和激活应用。“音频流创建器”如GStreamer是一种多媒体框架,主要用于音视频回放和录制。“音频服务”(PulseAudio)指音频服务程序,负责控制音频硬件混频和提供服务给应用程序。“硬件驱动”(ALSA)实现最底层的基础音频功能。“音频设备申请接口库”(Libresourceqt)指音频子系统封装的让应用调用的申请音频设备的接口库。“媒体接口库”(QtMultimedia)指媒体播放/录制接口库,带编解码库。通过本专利技术,第三方应用在开发的过程中,可根据具体的业务需求,自己定义其播放/录制音频时的优先级,通过调用音频子系统的接口库的相关接口来适应音频子系统。这就相当于,第三方应用可以定义自己在应用间发生音频冲突时获取音频设备资源的优先级,从而让应用获得更好的用户体验。附图说明本专利技术将在下面参考附图并结合优选实施例进行更完全地说明。图1为根据本专利技术方法的一实施例的流程图。图2为根据本专利技术方法的另一实施例的流程图。图3示出了图2所示方法结合第三方应用“元讯通”使用的示意图。图4为根据本专利技术系统的一实施例的示意图。为清晰起见,这些附图均为示意性及简化的图,它们只给出了对于理解本专利技术所必要的细节,而省略其他细节。具体实施方式通过下面给出的详细描述,本专利技术的适用范围将显而易见。然而,应当理解,在详细描述和具体例子表明本专利技术优选实施例的同时,它们仅为说明目的给出。图1示出了根据本专利技术一实施例的方法的流程图,该方法用于使第三方应用与操作系统如元心操作系统(基于Linux内核的智能移动终端操作系统)的音频子系统适配。在此以名为“元讯通”的第三方应用为例说明本专利技术的方法。元讯通使用音频资源的功能模块包括:发送语音消息、播放语音消息、发起/被邀语音通话铃声、语音通话。本专利技术的方法开始于步骤S10,响应于元讯通需要使用音频设备的音频类型为非语音通话例如发送语音消息、播放语音消息或者发起/被邀铃声(在此以发送语音消息为例),元讯通只需直接调用音频子系统的媒体接口库QtMultimedia中的QAudioRecorder中的录音接口,而无需关注音频资源的申请情况。在音频子系统中,不同音频类型具有不同的默认优先级,例如优先级从高到低为aliencall、game、event和player。高优先级的音频优先于低优先级的音频播放。发送语音消息的音频分组在创建QAudioRecorder对象时默认为player。元讯通在调用媒体接口库时,媒体接口库向元讯通提供修改默认优先级的选择,例如可从“player”优先级修改为高优先级如“aliencall”,元讯通可以也可不修改默认优先级。在步骤S20,媒体接口库QtMultimedia调用音频设备申请接口库Libresourceqt的接口向音频设备状态管理器OHM申请使用音频设备。在步骤S25,确定申请是否成功。如果申请失败,处理进行到步骤S30,直接返回错误码给元讯通。如果申请成功,则本文档来自技高网
...
一种音频适配方法和系统

【技术保护点】
一种音频适配方法,用于使第三方应用与操作系统的音频子系统适配,其特征在于,所述音频子系统包括媒体接口库、音频设备申请接口库、音频设备状态管理器、音频流创建器、音频服务及硬件驱动,其中所述媒体接口库包括媒体播放、录制接口并带编解码库,所述方法包括:响应于第三方应用的音频类型为非语音通话,第三方应用直接调用所述媒体接口库中的相应接口,其中不同音频类型具有不同的默认优先级,及其中所述媒体接口库向第三方应用提供修改默认优先级的选择;所述媒体接口库调用所述音频设备申请接口库的接口向所述音频设备状态管理器申请使用音频设备;响应于申请成功,所述音频流创建器产生音频流并将其发送给所述音频服务,及所述音频设备状态管理器将音频路由发送给所述音频服务;通过所述硬件驱动使用相应音频设备播放所述音频流。

【技术特征摘要】
1.一种音频适配方法,用于使第三方应用与操作系统的音频子系统适配,其特征在于,所述音频子系统包括媒体接口库、音频设备申请接口库、音频设备状态管理器、音频流创建器、音频服务及硬件驱动,其中所述媒体接口库包括媒体播放、录制接口并带编解码库,所述方法包括:响应于第三方应用的音频类型为非语音通话,第三方应用直接调用所述媒体接口库中的相应接口,其中不同音频类型具有不同的默认优先级,及其中所述媒体接口库向第三方应用提供修改默认优先级的选择;所述媒体接口库调用所述音频设备申请接口库的接口向所述音频设备状态管理器申请使用音频设备;响应于申请成功,所述音频流创建器产生音频流并将其发送给所述音频服务,及所述音频设备状态管理器将音频路由发送给所述音频服务;通过所述硬件驱动使用相应音频设备播放所述音频流。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应于第三方应用的音频类型为语音通话,第三方应用调用所述音频设备申请接口库的接口向所述音频设备状态管理器申请使用音频设备;响应于申请成功,经VOIP引擎在所述音频服务中创建播放语音流,及所述音频设备状态管理器将音频路由发送给所述音频服务。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应于申请失败,向第三方应用返回错误码。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应于所述默认优先级已被修改,所述音频服务将所述音频流的音频类型修改为修改后的优先级。5.根据权利要求1所述的方法,其特征在于,非语音通话的音频类型包括发送语音消息、播放语音消息和发起/被邀铃声。6.一种音频适配系统,用于使第三方应用与操作系统的音频子系统适配,其特征在于,所述音频子系统包括媒体接口库、音频设备...

【专利技术属性】
技术研发人员:沈卫忠林明祥
申请(专利权)人:北京元心科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1