在多系统中对音频进行控制的方法及装置的制造方法_2

文档序号:9452821阅读:来源:国知局
其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
[0041]本发明的实施例中,终端设备包括至少两个操作系统,其中,操作系统可包括各种操作系统,例如Android操作系统、Windows操作系统、Syber操作系统等。本发明的实施例中的多操作系统可基于多种虚拟技术来实现,下文以Linux系统下的容器技术为例来进行实施例的详述。其中,使用Linux容器技术实现的多操作系统,在每个容器中装入独立的操作系统,多个操作系统之间相互独立,且多个操作系统运行在同一台物理终端设备上。
[0042]Linux容器工具,可以提供轻量级的虚拟化,以便隔离进程和资源。使用容器的优点就是不需要安装太多的软件包,使用过程也不会占用太多的资源。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。与虚拟机技术相比,容器技术既不需要指令级模拟,也不需要即时编译。容器可以在核心CPU本地运行指令,而不需要任何专门的解释机制。此外,也避免了准虚拟化和系统调用替换中的复杂性。容器在提供隔离的同时,还通过共享这些资源节省开销,这意味着容器比真正的虚拟化的开销要小得多。通过提供一种创建和进入容器的方式,操作系统让应用程序就像在独立的机器上运行一样,但又能共享底层的系统及物理资源。因此,本方案中的多操作系统可独立执行音频控制处理,同时可共享一套声卡设备。
[0043]图1为本发明实施例的在多系统中对音频进行控制的方法的流程示意图。
[0044]步骤SllO:当处于前台的第一操作系统通过控制声卡设备输出第一音频数据时,处于后台的第二操作系统接收到音频数据输出请求;步骤S120:根据音频数据输出请求生成第二音频;步骤S130:将第一音频数据及第二音频数据进行混合叠加处理,以生成混音后的第三音频数据;步骤S140:处于前台的第一操作系统通过控制声卡设备输出第三音频数据。
[0045]本发明的技术方案中,提出了在多系统中对音频进行控制的方案,可将处于前台的第一操作系统的第一音频数据及处于后台的第二操作系统的第二音频数据进行混合叠加处理,以生成混音后的第三音频数据,随后处于前台的第一操作系统通过控制声卡设备输出第三音频数据,从而填补了现有技术没有针对多操作系统中多路音频数据的控制管理解决方案的空白。本发明可确保在终端设备的各个操作系统同时运行且共用一套声卡设备的情况下,各系统能够独立实现音频控制处理逻辑,通过混音处理对多操作系统中的多路音频数据进行控制管理;进一步地,通过多操作系统间的无缝切换可以实现操作系统对声卡设备的快速切换控制,以保证在系统切换过程中音频的无卡顿输出。
[0046]在本发明的实施例中,终端设备至少包括第一操作系统及第二操作系统,第一操作系统及第二操作系统同时保持运行状态,处于前台的操作系统通过声卡设备提供的接口对声卡设备进行控制。
[0047]步骤SllO:当处于前台的第一操作系统通过控制声卡设备输出第一音频数据时,处于后台的第二操作系统接收到音频数据输出请求。
[0048]例如,当处于前台的第一操作系统通过控制声卡设备输出音乐时,处于后台的第二操作系统接收到用于提示即时通信应用接收到新消息的提示音的音频数据输出请求。
[0049]步骤S120:根据音频数据输出请求生成第二音频;
[0050]其中,根据音频数据输出请求生成第二音频,具体包括:根据音频数据输出请求,基于第二操作系统中预先配置的音频控制处理方式生成第二音频;
[0051]其中,预先配置的音频控制处理方式包括但不限于:
[0052]音频输出方式;音频输出设备;音频类型;音量增益;音效控制。
[0053]音频输出方式包括:硬件设备输出、短程无线设备输出以及硬件设备和短程无线设备同时输出三种方式中的一种或多种;
[0054]输出设备包括:扬声器、听筒以及有线耳机和/或无线耳机,如蓝牙耳机;
[0055]音频类型包括:铃音、音乐以及提示音中的一种或多种;
[0056]音效包括:数字音效、环境音效等。
[0057]例如,接收到用于提示即时通信应用接收到新消息的提示音的音频数据输出请求,根据该提示音的音频数据输出请求,查询确定与该提示音相对应的预先配置的提示音为“嘟嘟嘟”三声响铃、音频输出方式及音频输出设备为通过扬声器及听筒同时硬件设备输出,随后根据上述配置信息生成第二音频。
[0058]步骤S130:将第一音频数据及第二音频数据进行混合叠加处理,以生成混音后的第三音频数据;
[0059]步骤S140:处于前台的第一操作系统通过控制声卡设备输出第三音频数据。
[0060]例如,终端设备包括“容器X”及“容器Y”,各个容器分别包括相应的操作系统“系统X”及“系统Y” ;当处于前台的操作系统“系统X”通过控制声卡设备输出8k码率的音乐时,处于后台的作系统“系统Y”接收到16k码率的铃音的音频数据输出请求,根据该音频数据输出请求,基于操作系统“系统Y”中预先配置的通过扬声器及听筒同时硬件设备输出、铃音为“嘟嘟嘟”三声响铃的音频控制处理方式生成第二音频,随后终端设备通过调用Linux系统内核的混音器将16k码率的铃音转换处理为8k码率的铃音,接着将8k码率的铃音和8k码率的音乐混合叠加成8k码率的音频,即混音后音乐及响铃混合后的第三音频数据,操作系统“系统X”通过控制声卡设备通过扬声器及听筒播放第三音频数据。
[0061]在声卡设备中,混音器执行将多个音频文件、线路输入音频信号混音后,合成单独的首频文件的功能。
[0062]优选地,该方法还包括:当接收到用户输入的系统切换命令后,第一操作系统切换至后台,且第二操作系统切换为前台;处于前台的第二操作系统通过控制声卡设备控制音频输出。
[0063]具体地,第一操作系统和第二操作系统共用同Linux系统内核,在Linux系统内核中建立一个控制前后台切换的线程,且Linux系统中记录包括第一操作系统的容器和包括第二操作系统的容器的前后台状态信息;当接收到用户输入的系统切换命令后,首先从包括各容器的前后台状态信息的数据记录中读取到包括第一操作系统的容器处于前台状态,包括第二操作系统的容器处于后台状态;随后,调用控制前后台切换的线程提供的接口将包括第一操作系统的容器切换为后台状态,将包括第二操作系统的容器切换为前台状态,同时修改更新包括各容器的前后台状态信息的数据记录;随后,释放切换后处于后台的第一操作系统对声卡设备提供的控制接口的控制,将声卡设备提供的控制接口提供至切换后处于前台的第二操作系统,第二操作系统通过该控制接口对声卡设备进行控制,以实现音频输出。在一个优选实例中,如图2所示,音频数据输出请求包括处于后台的第二操作系统接收到的通话呼叫建立请求,其中,根据音频数据输出请求生成第二音频数据,具体包括:响应于接收到的通话呼叫建立请求,基于第二操作系统中预先配置的音频控制处理方式,生成用以提示通话建立的第二音频。
[0064]步骤S210:当处于前台的第一操作系统通过控制声卡设备输出第一音频数据时,处于后台的第二操作系统接收到通话呼叫建立请求;步骤S220:响应于接收到的通话呼叫建立请求,基于第二操作系统中预先配置的音频控制处理方式,生成用以提示通话建立的第二音频;步骤S230:将第一音频数据及第二音频数据进行混合叠加处理,以生成混音后的第三音频数据;步骤S240:当接收到用户输入的系统切换命令后,第一操作系统切换至后台,且第二操作系统切换为前台;步骤S250:处于前台的第二操作系统通过控制声卡设备控制音频输出。
[0065]例如,终端设备A包括“容器X”、“容器Y”,各个容器分别包括相应的操作系统“系统X”、“系统Y”,每个操作系统对应其各自的S頂(Subscriber Identity Module,客户识别
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1