CN106155625B - 一种音频适配方法和系统 - Google Patents

一种音频适配方法和系统 Download PDF

Info

Publication number
CN106155625B
CN106155625B CN201610530521.7A CN201610530521A CN106155625B CN 106155625 B CN106155625 B CN 106155625B CN 201610530521 A CN201610530521 A CN 201610530521A CN 106155625 B CN106155625 B CN 106155625B
Authority
CN
China
Prior art keywords
audio
application
party application
interface library
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610530521.7A
Other languages
English (en)
Other versions
CN106155625A (zh
Inventor
沈卫忠
林明祥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yuanxin Information Technology Group Co.,Ltd.
Original Assignee
Beijing Yuanxin Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Yuanxin Science and Technology Co Ltd filed Critical Beijing Yuanxin Science and Technology Co Ltd
Priority to CN201610530521.7A priority Critical patent/CN106155625B/zh
Publication of CN106155625A publication Critical patent/CN106155625A/zh
Application granted granted Critical
Publication of CN106155625B publication Critical patent/CN106155625B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/165Management of the audio stream, e.g. setting of volume, audio stream path

Abstract

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

Description

一种音频适配方法和系统
技术领域
本申请涉及电数字数据处理领域,尤其涉及一种音频适配方法和系统。
背景技术
在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,直接返回错误码给元讯通。如果申请成功,则处理进行到步骤S40,在GStreamer音频流创建器中创建录音的流并发送给音频服务Pulseaudio,音频设备状态管理器OHM也经Pulseaudio策略执行插件将对应的音频路由发送给音频服务Pulseaudio。如果先前修改了默认优先级,则音频服务还将该音频流的优先级修改到修改后的优先级。在步骤S50,通过硬件驱动更改音频路由并驱动相应音频设备播放所述音频流。
本发明利用封装的静态库Libresourceqt中的接口,使应用可以简单方便的指定其音频流类型。不同的音频流类型有不同的优先级,当应用间发生音频冲突时,使用优高优先级音频流类型的应用,可以暂停低优先级音频流类型的应用,独占音频设备进行音频的播放,也可以与低优先级音频流类型的应用做混音。
播放语音消息与发送语音消息的流程类似,只是调用的是QMediaPlayer进行语音的播放,在创建QmediaPlayer对应的音频流时,需根据第三方应用指定的播放语音的音频分组对音频流的优先级进行修改。其语音播放与停止过程与OHM的交互跟发送语音消息是一样的。
对于发起/被邀提醒铃声而言,其流程跟播放语音消息是一样的,只是其播放的文件不同而已。一个是播放录制的文件,一个是播放元讯通指定的铃声文件。
图2示出了根据本发明另一实施例的方法的流程图,除包括图1所示的所有步骤之外,该实施例的方法还包括步骤S60,同样以元讯通为例,响应于元讯通的音频类型为语音通话,元讯通经即时通讯服务器(IM Server)调用音频子系统的音频设备申请接口库的接口向音频设备状态管理器申请使用音频设备。在步骤S25’,确定申请是否成功。如果申请失败,处理进行到步骤S30。如果申请成功,处理进行到步骤S40’,经开源VOIP引擎WebRtc在音频服务中创建音频流,及音频设备状态管理器将对应的音频路由发送给所述音频服务。之后,处理进行到步骤S50。
图3示出了图2所示方法结合元讯通使用的示意图,其中示出了元讯通包括四个功能模块:发送语音消息、播放语音消息、发起/被邀语音通话铃声、元讯通语音通话,及音频子系统包括媒体接口库QtMultimedia、音频设备申请接口库Libresourceqt、音频设备状态管理器OHM、音频流创建器GStreamer、音频服务Pulseaudio及硬件驱动ALSA。
图4示出了根据本发明的音频适配系统的一实施例的示意图,该系统包括:媒体接口库调用模块10,用于响应于第三方应用的音频类型为非语音通话,第三方应用直接调用所述媒体接口库中的相应接口,其中不同音频类型具有不同的默认优先级,及其中所述媒体接口库向第三方应用提供修改默认优先级的选择;第一申请模块20,用于使得所述媒体接口库调用所述音频设备申请接口库的接口向所述音频设备状态管理器申请使用音频设备;错误码返回模块30,用于响应于申请失败,向第三方应用返回错误码;第一音频流生成模块40,用于响应于申请成功,所述音频流创建器产生音频流并将其发送给所述音频服务,及所述音频设备状态管理器将音频路由发送给所述音频服务;优先级修改模块50,用于响应于所述默认优先级已被修改,使所述音频服务将所述音频流的音频类型修改为修改后的优先级;播放模块60,用于通过所述硬件驱动使用相应音频设备播放所述音频流;第二申请模块70,用于响应于第三方应用的音频类型为语音通话,第三方应用调用所述音频设备申请接口库的接口向所述音频设备状态管理器申请使用音频设备;第二音频流创建模块80,用于响应于申请成功,经VOIP引擎在所述音频服务中创建播放语音流,及所述音频设备状态管理器将音频路由发送给所述音频服务。
除非明确指出,在此所用的单数形式“一”、“该”均包括复数含义(即具有“至少一”的意思)。应当进一步理解,说明书中使用的术语“具有”、“包括”和/或“包含”表明存在所述的特征、步骤、操作、元件和/或部件,但不排除存在或增加一个或多个其他特征、步骤、操作、元件、部件和/或其组合。如在此所用的术语“和/或”包括一个或多个列举的相关项目的任何及所有组合。除非明确指出,在此公开的任何方法的步骤不必精确按照所公开的顺序执行。
一些优选实施例已经在前面进行了说明,但是应当强调的是,本发明不局限于这些实施例,而是可以本发明主题范围内的其它方式实现。

Claims (8)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610530521.7A CN106155625B (zh) 2016-07-06 2016-07-06 一种音频适配方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610530521.7A CN106155625B (zh) 2016-07-06 2016-07-06 一种音频适配方法和系统

Publications (2)

Publication Number Publication Date
CN106155625A CN106155625A (zh) 2016-11-23
CN106155625B true CN106155625B (zh) 2020-01-21

Family

ID=58062928

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610530521.7A Active CN106155625B (zh) 2016-07-06 2016-07-06 一种音频适配方法和系统

Country Status (1)

Country Link
CN (1) CN106155625B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108268234A (zh) * 2016-12-30 2018-07-10 中科创达软件股份有限公司 一种音频输出控制方法、装置及终端
CN106933529B (zh) * 2017-01-24 2020-05-12 北京元心科技有限公司 提供音频服务的方法及系统
CN108111954B (zh) * 2017-12-25 2020-10-20 微鲸科技有限公司 音频输入控制方法及装置
CN110196708B (zh) * 2019-04-25 2023-05-16 深圳市布谷鸟科技有限公司 一种应用于安卓车载多媒体系统的音频管理方法
CN110413252A (zh) * 2019-07-05 2019-11-05 深圳前海达闼云端智能科技有限公司 一种音频输出方法及其装置、终端
CN111601158B (zh) * 2020-05-14 2021-11-02 青岛海信传媒网络技术有限公司 一种流媒体管道切音轨的优化方法及显示设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101192203A (zh) * 2006-11-30 2008-06-04 中兴通讯股份有限公司 手机音频播放方法
CN104333808A (zh) * 2014-11-14 2015-02-04 复旦大学 用于Android及Linux智能电视机上的通用播放器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101192203A (zh) * 2006-11-30 2008-06-04 中兴通讯股份有限公司 手机音频播放方法
CN104333808A (zh) * 2014-11-14 2015-02-04 复旦大学 用于Android及Linux智能电视机上的通用播放器

Also Published As

Publication number Publication date
CN106155625A (zh) 2016-11-23

Similar Documents

Publication Publication Date Title
CN106155625B (zh) 一种音频适配方法和系统
US20230112621A1 (en) System and method for queuing a communication session
CN106664584B (zh) 通信端点之间的合成事务
RU2520396C2 (ru) Управление правами доступа к разговору
US9501259B2 (en) Audio output device to dynamically generate audio ports for connecting to source devices
KR100985612B1 (ko) 동적 다중 파티의 다중 매체 통신 세션의 자동 조정의 컴퓨터 구현 방법, 동적 다중 파티의 다중 매체 통신 세션을 자동 조정하는 장치 및 컴퓨터 판독가능 매체
US8180933B2 (en) Dynamic call handling from multiple attached devices wherein devices advertize its capabililes before facilitating call through appropriate device
US20110293084A1 (en) Managing call forwarding profiles
US20140148934A1 (en) Unified communications bridging architecture
TW201027356A (en) Enhanced voicemail usage through automatic voicemail preview
WO2006052471A2 (en) Providing a service framework at an endpoint
CN112542183B (zh) 音频数据处理的方法、装置、设备及存储介质
CN102469219A (zh) 基于呼叫中心的排队处理方法及系统
WO2017085260A1 (en) Communication system
AU2010249877A1 (en) Conserving call logic during handoff
US20170150096A1 (en) Communication System
US8165277B2 (en) Distributed service creation environment for intelligent endpoints
CN112965685B (zh) 音频控制方法、装置、系统、终端设备及存储介质
US7403605B1 (en) System and method for local replacement of music-on-hold
CN105791075B (zh) 一种获取用于即时通讯彩铃的方法及系统
Puente Elastix Unified Communications Server Cookbook
EP2456182A1 (en) Method, system and parlay x gateway for implementing advanced call
WO2023197593A1 (zh) 多媒体会议的控制方法及装置、通信系统
CN115883668B (zh) 一种话务调度平台
CN108809915A (zh) 一种会话管理方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210201

Address after: 101300 room 153, 1 / F, building 17, 16 Caixiang East Road, Nancai Town, Shunyi District, Beijing

Patentee after: Yuanxin Information Technology Group Co.,Ltd.

Address before: 100176 room 2222, building D, building 33, 99 Kechuang 14th Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing

Patentee before: BEIJING YUANXIN SCIENCE & TECHNOLOGY Co.,Ltd.

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20161123

Assignee: Beijing Yuanxin Junsheng Technology Co.,Ltd.

Assignor: Yuanxin Information Technology Group Co.,Ltd.

Contract record no.: X2021110000018

Denomination of invention: An audio adaptation method and system

Granted publication date: 20200121

License type: Common License

Record date: 20210531