CN109313566A - 一种虚拟机的音频播放方法及其装置、移动终端 - Google Patents
一种虚拟机的音频播放方法及其装置、移动终端 Download PDFInfo
- Publication number
- CN109313566A CN109313566A CN201780003326.1A CN201780003326A CN109313566A CN 109313566 A CN109313566 A CN 109313566A CN 201780003326 A CN201780003326 A CN 201780003326A CN 109313566 A CN109313566 A CN 109313566A
- Authority
- CN
- China
- Prior art keywords
- audio
- operating system
- module
- playback interface
- audio frequency
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Abstract
本申请涉及虚拟机技术领域,具体涉及一种虚拟机的音频播放方法及其装置、移动终端。其中,该方法包括:在检测到客户操作系统与主机操作系统同时存在音频播放指令时,启动客户操作系统的音频输出通道;在主机操作系统内创建第一播放接口模块以及与音频输出通道对应的第二播放接口模块,第一播放接口模块用于接收主机操作系统的第一音频数据,第二播放接口模块用于接收经由音频输出通道传输的第二音频数据;混合第一音频数据与所述第二音频数据,并输出混音信号;播放混音信号。因此,其能够同时输出多个操作系统的各自音频信号。
Description
技术领域
本发明涉及虚拟机技术领域,具体涉及一种虚拟机的音频播放方法及其装置、移动终端。
背景技术
移动虚拟化技术允许多个操作系统或者虚拟机同时运行在移动终端上,使用Hypervisor(虚拟监控器)在底层硬件上创建安全独立的软件运行环境。通过移动虚拟化技术,用户无需携带两台或多台移动设备,便可在一个移动终端上访问多个操作系统。
传统虚拟机皆创建了各自的虚拟音频设备,并通过虚拟化技术控制真实的音频硬件设备。当多个虚拟机需要同时控制音频硬件设备时,传统技术无法合理地分配音频硬件设备的控制权,无法同时输出。
发明内容
本发明实施例一个目的旨在提供一种虚拟机的音频播放方法及其装置、移动终端,其解决了传统技术存在无法实现多系统的音频同时混音输出的技术问题。
在第一方面,本发明实施例提供一种虚拟机的音频播放方法,所述方法包括:在检测到客户操作系统与主机操作系统同时存在音频播放指令时,启动所述客户操作系统的音频输出通道;在所述主机操作系统内创建第一播放接口模块(AudioTrack)以及与所述客户操作系统的音频输出通道对应的第二播放接口模块(AudioTrack),所述第一播放接口模块用于接收所述主机操作系统的第一音频数据,所述第二播放接口模块用于接收经由所述客户操作系统的音频输出通道传输的第二音频数据;混合所述第一音频数据与所述第二音频数据,并输出混音信号;播放所述混音信号。
在第二方面,本发明实施例提供一种虚拟机的音频播放装置,所述装置包括:启动模块,用于在检测到客户操作系统与主机操作系统同时存在音频播放指令时,启动所述客户操作系统的音频输出通道;第一创建模块,用于在所述主机操作系统内创建第一播放接口模块以及与所述客户操作系统的音频输出通道对应的第二播放接口模块,所述第一播放接口模块用于接收所述主机操作系统的第一音频数据,所述第二播放接口模块用于接收经由所述客户操作系统的音频输出通道传输的第二音频数据;混合模块,用于混合所述第一音频数据与所述第二音频数据,并输出混音信号;播放模块,用于播放所述混音信号。
在第三方面,本发明实施例提供一种移动终端,所述移动终端包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够用于执行任一项所述的虚拟机的音频播放方法。
在第四方面,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使移动终端执行如上任一项所述的虚拟机的音频播放方法。
本发明的有益效果在于,在检测到客户操作系统与主机操作系统同时存在音频播放指令时,启动客户操作系统的音频输出通道,在主机操作系统内创建第一播放接口模块以及与客户操作系统的音频输出通道对应的第二播放接口模块,第一播放接口模块用于接收主机操作系统的第一音频数据,第二播放接口模块用于接收经由客户操作系统的音频输出通道传输的第二音频数据,混合第一音频数据与第二音频数据,并输出混音信号,播放混音信号。因此,其能够同时输出多个操作系统的各自音频信号。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明实施例提供一种虚拟化模型的示意图;
图2是现有Android系统下的主机操作系统与客户操作系统之间的音频处理过程的示意图;
图3是本发明提供一种主机操作系统与客户操作系统之间的音频处理过程的示意图;
图4是本发明实施例提供一种移动终端的电路结构示意图;
图5是本发明实施例提供一种虚拟机的音频播放装置的结构示意图;
图6是本发明另一实施例提供一种虚拟机的音频播放装置的结构示意图;
图7是本发明又另一实施例提供一种虚拟机的音频播放装置的结构示意图;
图8是本发明又另一实施例提供一种虚拟机的音频播放装置的结构示意图;
图9是本发明实施例提供一种虚拟机的音频播放方法的流程示意图;
图10是本发明另一实施例提供一种虚拟机的音频播放方法的流程示意图;
图11是本发明又另一实施例提供一种虚拟机的音频播放方法的流程示意图;
图12是本发明又另一实施例提供一种虚拟机的音频播放方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明实施例提供的音频播放方法应用于移动终端,其可以通过移动虚拟化技术,允许多个虚拟操作系统或虚拟机(Virtual Machine,VM)同时运行在移动终端上。通过移动虚拟化技术带来的隔离性可实现单一移动终端上多个虚拟操作系统或虚拟机之间的隔离,避免各个虚拟操作系统或虚拟机上的进程对其他虚拟操作系统或虚拟机产生不利影响。举例而言,通过移动虚拟化技术在移动终端运行有个人虚拟操作系统与企业虚拟操作系统,并实现个人虚拟操作系统与企业虚拟操作系统之间的隔离,其能够防范个人虚拟操作系统上的进程给企业虚拟操作系统带来的潜在危害,满足一些具有安全要求的企业对“自带设备(Bring Your Own Device,BYOD)”的需求。
请参阅图1,图1是本发明实施例提供一种虚拟化模型的示意图。如图1所示,该虚拟化模型100包括硬件系统层11、虚拟机监控器12(Hypervisor/VMM)及虚拟机层13。
硬件系统层11包括处理器111、内存112及输入/输出设备113。处理器111通过总线分别与内存112和输入/输出设备113连接。
处理器111作为移动终端的控制核心,其可以是中央处理单元(CentralProcessing Unit,简称为“CPU”),亦可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
内存112作为移动终端的相关控制逻辑指令及数据的存储区,其可以为随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质。
输入/输出设备113可以是任何合适类型的,提供一种或者多种用户交互方式的外围设备,例如接收用户动作操作指令的鼠标、键盘或者触摸输入屏,用于采集图像信息的体感摄像机、用于采集声音信息的麦克风或者向用户展示图像信息的显示屏或者用于输出音频的扬声器。输入/输出设备113可以选择使用有线或者无线的外围设备与其他物理硬件设备连接。
虚拟机监控器12作为一种运行在硬件系统层和操作系统之间的中间软件层,其允许多个操作系统和应用共享一套基础物理硬件,因此虚拟机监控器12可以看作是虚拟环境中的“元”操作系统,其可以协调访问移动终端上的所有物理设备和虚拟机。因此,虚拟机监控器12能够管理真实的物理硬件平台,并为每个虚拟机提供对应的虚拟硬件平台。虚拟机监控器12通过主机(Host)实现前述职能,其中,主机上运行一主虚拟机(Host VM),在该虚拟机上运行有主机操作系统(Host OS)。
请再参阅图1,虚拟机层13包括3个虚拟机,每个虚拟机皆可看作一个小而完整的计算机系统,皆具有自己的“系统硬件”,其中,该“系统硬件”由软件模拟而成,“系统硬件”包括处理器、内存及输入输出设备。在此计算机系统上,虚拟机运行着自身的客户操作系统(Guest OS)。
主机操作系统和客户操作系统均属于管理和控制硬件系统层内各个物理硬件设备以及相应的软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在主机操作系统或客户操作系统的支持下才能运行。在本发明实施例中,主机操作系统和客户操作系统均可以是Android操作系统。
主机操作系统以及若干个客户操作系统之间共享硬件系统层内物理硬件设备。在实际运行时,主机操作系统可以直接使用硬件系统层内的物理硬件设备,而客户操作系统则使用由驱动该客户操作系统的虚拟机提供的虚拟设备。一个虚拟机对应驱动一个客户操作系统,每一虚拟机可以作为主机操作系统中的其中一个应用程序运行。
本实施例以虚拟机运行Android系统为例子,详细阐述Android系统下的音频框架。请参阅图2,图2是Android系统下的主机操作系统与客户操作系统之间的音频处理过程的示意图。如图2所示,主机操作系统或客户操作系统的音频框架皆包括应用层(application framework)、本地框架层(native framework)、硬件抽象层(HAL)及Linux内核(Linux Kernel)。
应用层包括面向用户的各类音频应用程序,诸如媒体播放应用程序(mediaplayer APP)或媒体录音应用程序(media recorder App),其中,媒体播放应用程序或媒体录音应用程序包括音乐播放器、视频播放器等等。媒体播放应用程序的音频数据可以由媒体播放应用程序在本地内获取,亦可以在线获取等等。媒体录音应用程序用于录制音频数据,其中,该音频数据可以由麦克风采集而来,亦可以从通话过程中采集。
本地框架层包括播放接口模块(AudioTrack)、录音接口模块(AudioRecord)播放接口模块录音接口模块以及音频服务(Audio Policy Service、Audio Flinger Service)。音频服务是音频播放策略的制定者以及音频数据的处理者。
硬件抽象层(HAL)提供到硬件的接口,供音频的本地框架层调用。硬件抽象层的任务是将音频服务真正地与硬件设备关联。
Linux内核层包括内核设备驱动层,其提供API接口,应用程序通过调用该API接口即可以完成对底层音频硬件的控制。
可以理解的是,本实施例对Android系统下的音频框架中各个层未作出完整的介绍,本领域技术人员根据本实施例训导的内容,皆可以作出应有的详细说明,以实现本实施例所阐述的技术方案。
请再参阅图2,当主机操作系统与客户操作系统同时需要播放音频时,对于每个操作系统,音频流的处理过程皆按照Android系统下的音频框架进行。如图2所示,客户操作系统的音频处理通过虚拟机监控器以操作真实的音频设备。对于主机操作系统而言,其也需要操作真实的音频设备,然而,传统技术无法为两个系统合理的分配音频设备的控制权,无法同时输出主机操作系统与客户操作系统的混合音频信号。
基于此,本发明实施例提供一种移动终端,该移动终端的硬件环境可以参考上述各个实施例所作出的阐述。在本实施例中,移动终端能够同时运行有主机操作系统以及若干个客户操作系统,例如,移动终端运行一个主机操作系统与两个客户操作系统,如前所述,每个操作系统皆有对应虚拟硬件设备。一般地,此处客户操作系统的数量可以为一个,亦可以为两个,甚可以为多个,在此并不限制客户操作系统的运行数量。
首先,在检测到客户操作系统与主机操作系统同时存在音频播放指令时,启动客户操作系统的音频输出通道。一般地,当客户操作系统或主机操作系统的特定应用程序满足预设音频播放条件时,其产生音频播放指令,例如,当前时间点到达客户操作系统的闹钟应用程序的预设闹钟时间点时,闹钟应用程序便产生音频播放指令,以便播放闹钟铃声。再例如,主机操作系统的社交应用程序接收到信息时,产生信息提示音的播放指令,以便播放提示音。
当有音频播放指令产生时,会在本地框架层创建播放接口模块(Aud i o Track),并在硬件抽象层中创建音频输出通道,然后将音频数据传送到真实的音频设备中输出。在本实施例中,移动终端可以根据音频播放请求的情况,创建并启动多个音频输出通道。例如,客户操作系统与主机操作系统同时存在音频播放指令,并且,客户操作系统的多个应用程序皆同时需要播放音频时,移动终端可以在硬件抽象层创建相应数量的音频输出通道。因此,本实施例并不局限于一个音频输出通道的创建与启动,其还可以创建与启动多个音频输出通道,亦即,此处音频输出通道的数量由播放的情况决定,而不是由播放的数量决定,可以为一个,亦可以为多个。
在一些实施例中,对于每个单系统(亦即客户操作系统与主机操作系统),在创建播放接口模块时,其会检测现有已存在硬件抽象层的音频输出通道是否与该播放接口模块匹配,若未匹配,则创建一个新的音频输出通道,使新的音频输出通道与创建的播放接口模块匹配。此处,对于每个单系统,一个音频输出通道可以对应一个播放接口模块,亦可以对应多个播放接口模块。
其次,在主机操作系统内,移动终端通过移动虚拟化技术创建自身的第一播放接口模块。其中,第一播放接口模块用于接收主机操作系统的第一音频数据,第一音频数据为主机操作系统中应用程序播放的,其中,此处“第一音频数据”可以为多个“第一音频数据”,亦即,其可以由主机操作系统的多个应用程序同时播放的多个不同第一音频数据。当主机操作系统的多个应用程序同时播放多个不同的第一音频数据时,在一些实施例中,主机操作系统同时创建对应于第一音频数据的数量的若干个第一播放接口模块,例如,在本地框架层上创建一个第一播放接口模块用于接收闹钟应用程序播放的第一音频数据,创建另一个第一播放接口模块用于接收音乐应用程序播放的第一音频数据,以此类推。
再次,在主机操作系统内,移动终端通过移动虚拟化技术创建与客户机操作系统的音频输出通道对应的第二播放接口模块,第二播放接口模块用于接收经由客户机操作系统的音频输出通道传输的第二音频数据。当客户操作系统上的第二音频数据写入到客户操作系统的硬件抽象层时,客户操作系统通过位于硬件抽象层的音频输出通道,利用跨系统通信方式,将第二音频数据传递至主机操作系统的第二播放接口模块。
在本实施例中,第二音频数据为客户操作系统中应用程序播放的,此处“第二音频数据”可以为多个“第二音频数据”。并且,当移动终端运行多个客户操作系统时,不同的“第二音频数据”可以分别来自不同的客户操作系统的。例如,移动终端运行有第一客户操作系统与第二客户操作系统,第一客户操作系统的闹钟应用程序与视频应用程序分别播放第二音频数据,与此同时,第二客户操作系统的闹钟应用程序与视频应用程序也分别播放第二音频数据,于是,移动终端通过移动虚拟化技术,在客户操作系统的硬件抽象层分别创建了:音频输出通道Output1、音频输出通道Output2、音频输出通道Output3及音频输出通道Output4。并且,移动终端还通过移动虚拟化技术,在主机操作系统上的本地框架层分别创建了:第二播放接口模块Audio Track1、第二播放接口模块Audio Track2、第二播放接口模块Audio Track3及第二播放接口模块Audio Track4,其中,第二播放接口模块AudioTrack1用于接收第一客户操作系统的闹钟应用程序通过第一音频输出通道Output1传输的第二音频数据,第二播放接口模块Audio Track2用于接收第一客户操作系统的视频应用程序通过第二音频输出通道Output2传输的第二音频数据,第二播放接口模块Audio Track3用于接收第二客户操作系统的闹钟应用程序通过第三音频输出通道Output3传输的第二音频数据,第二播放接口模块Audio Track4用于接收第二客户操作系统的视频应用程序通过第三音频输出通道Output4传输的第二音频数据。值得提醒的是,此处Output的数量由播放的情况决定而不是由播放的数量决定,可以为一个,亦可以为多个。
最后,第一音频数据与第二音频数据在主机操作系统的混音器AudioMixer内进行混合,并输出混音信号。再进一步的,移动终端将混音信号写入真实硬件音频设备内,以播放混音信号。
综上,区别于传统技术,本实施例提供的移动终端能够同时输出多个操作系统的各自音频信号。
在一些实施例中,移动终端在检测到客户操作系统停止播放第二音频数据时,关闭并释放音频输出通道、第二播放接口模块及第一播放接口模块。因此,其能够实时监控多音频输出,并且实时销毁已创建的音频输出通道、第二播放接口模块及第一播放接口模块,从而提高系统运行的流畅性。
为了进一步阐述本发明实施例的工作原理,本发明实施例结合图3对此作出进一步的说明,可以理解的是,下面所阐述的只是本发明的一种实施方式,下面所作出的阐述并不用于限制本发明的保护范围。
如图3所示,移动终端包括主机操作系统Host(下面简述Host)、第一客户操作系统Guest1(下面简述Guest1)及第二客户操作系统Guest2(下面简述Guest2)。各个操作系统的音频架构皆可以参考如图2所示的,在此不对各个操作系统的音频架构再作出进一步的赘述。
当Host、Guest1及Guest2皆同时存在音频播放指令时,移动终端根据音频播放情况在Guest1与Guest2的硬件抽象层分别创建相应的音频输出通道Output,诸如如图3所示的Output1、Output2……OutputN,此处Output的数量由播放的情况决定而不是由播放的数量决定,可以为一个,亦可以为多个。
当Guest1及Guest2创建音频输出通道的指令下达到各自硬件抽象层时,通过跨系统通信方式调用Host中的指令创建与之对应的输出的第二播放接口模块AudioTrack,诸如如图3所示的Audio Track1、Audio Track2……Audio Track N。这里Host中创建的AudioTrack与Guest中的Output一一对应,是映射关系。例如,Output1对应Audio Track1,Output2对应Audio Track2。
在本实施例中,Host还创建自身的第一播放接口模块Audio Track M。
当Guest1与Guest2播放音频时,各个Guest执行Audio Track Start指令,并通过Write指令将对应Guest的音频数据通过Android原有流程写入对应的硬件抽象层。
当Guest执行硬件抽象层的write指令时,首先通过跨系统通信方式调用Host中对应Audio Track的Start指令,然后将音频数据通过跨系统传递方式传递到Host,最后调用Audio Track的write指令将音频数据最终写入真实硬件音频设备。
当对应Guest结束播放音频时,移动终端执行指令adev_close_output_stream()关闭并释放对应音频输出通道Output。当执行Guest硬件抽象层的关闭Output指令时,其通过跨系统通信方式调用Host中对应Audio Track的相关指令,关闭并释放对应的AudioTrack。
在上述各个实施例中,除了移动终端能够同时输出多系统的音频之外,移动终端还能够完成多系统的录音。因此,在一些实施例中,首先,移动终端在检测到录音操作时,创建客户操作系统的音频输入通道以及主机操作系统的录音接口模块,音频输入通道与录音接口模块对应。其中,音频输入通道位于客户操作系统的硬件抽象层,录音接口模块位于主机操作系统的本地框架层。
一般地,当客户操作系统中录音应用程序需要录音时,客户操作系统向主机操作系统主动发起录音操作,于是,移动终端通过移动虚拟化技术,在客户操作系统内创建音频输入通道以及在主机操作系统创建录音接口模块。在一些实施例中,当一个客户操作系统中的多个不同应用程序需要录音时,其可以创建多个音频输入通道与多个录音接口模块,其中,每个音频输入通道一一对应着一个录音接口模块。如图3所示,音频输入通道Input对应录音接口模块Audio Record。
进一步的,当不同客户操作系统皆需要录音时,其还可以创建与各个客户操作系统的音频输入通道对应的录音接口模块。
再次,当录音接口模块播放录音数据时,移动终端通过移动虚拟化技术,将录音接口模块的录音数据读取至音频输入通道。
当移动终端在检测到客户操作系统停止读取录音数据时,关闭并释放音频输入通道以及与音频输入通道对应的录音接口模块。
因此,当移动终端运行多系统时,其可以通过一个系统使用真实硬件音频设备进行录音。
在本实施例提供关于录音的操作时,其进一步阐述可以借助图3所示的实施例作进一步的理解,图3所示的关于音频播放实施例与本实施例提供的录音操作是一个音频操作整体的逆向过程,在此不赘述录音操作的具体操作过程。
在一些实施例中,如图4所示,移动终端400包括:至少一个处理器41及存储器42,存储器42与至少一个处理器41连接。其中,图4中以一个处理器41为例。处理器41和存储器42可以通过总线或者其他方式连接,图4中以通过总线连接为例。
其中,存储器42存储有可被所述至少一个处理器41执行的指令,所述指令被所述至少一个处理器41执行,以使所述至少一个处理器41能够用于执行上述各个实施例所述的音频播放与音频录音的控制逻辑。
作为本发明实施例的另一方面,本发明实施例提供一种虚拟机的音频播放装置。其中,该虚拟机的音频播放装置作为软件系统,其存储在图4所阐述的存储器42内。该虚拟机的音频播放装置包括若干指令,该若干指令存储于存储器内,处理器可以访问该存储器,调用指令进行执行,以完成上述音频播放与音频录音的控制逻辑。
请参阅图5,图5是本发明实施例提供一种虚拟机的音频播放装置的结构示意图。如图5所示,虚拟机的音频播放装置500包括:启动模块51、第一创建模块52、混合模块53及播放模块54。
启动模块51用于在检测到客户操作系统与主机操作系统同时存在音频播放指令时,启动客户操作系统的音频输出通道。
第一创建模块52用于在主机操作系统内创建第一播放接口模块以及与音频输出通道对应的第二播放接口模块,第一播放接口模块用于接收主机操作系统的第一音频数据,第二播放接口模块用于接收经由音频输出通道传输的第二音频数据。
混合模块53用于混合第一音频数据与第二音频数据,并输出混音信号。
播放模块54用于播放混音信号。
因此,其能够同时输出多个操作系统的各自音频信号。
请参阅图6,虚拟机的音频播放装置500还包括:第一关闭释放模块55。第一关闭释放模块55用于在检测到客户操作系统停止播放第二音频数据时,关闭并释放音频输出通道以及与音频输出通道对应的播放接口模块。
在一些实施例中,音频输出通道位于客户操作系统的硬件抽象层。
请参阅图7,虚拟机的音频播放装置500还包括:第二创建模块56与读取模块57。
第二创建模块56用于在检测到录音操作时,创建客户操作系统的音频输入通道以及主机操作系统的录音接口模块,音频输入通道与录音接口模块对应;
读取模块57用于将录音接口模块的录音数据读取至音频输入通道。
请参阅图8,虚拟机的音频播放装置500还包括第二关闭释放模块58。
第二关闭释放模块58用于在检测到客户操作系统停止读取录音数据时,关闭并释放音频输入通道以及与音频输入通道对应的录音接口模块。
在一些实施例中,音频输入通道位于客户操作系统的硬件抽象层。
由于装置实施例和上述各个实施例是基于同一构思,在内容不互相冲突的前提下,装置实施例的内容可以引用上述各个实施例的,在此不赘述。
作为本发明实施例的又另一方面,本发明实施例提供一种虚拟机的音频播放方法。本发明实施例的虚拟机的音频播放方法的功能除了借助上述图5至图8所述的虚拟机的音频播放装置的软件系统来执行,其亦可以借助硬件平台来执行。例如:虚拟机的音频播放方法可以在合适类型具有运算能力的处理器的电子设备中执行,例如:单片机、数字处理器(Digital Signal Processing,DSP)、ARM处理器等等。
下述各个实施例的虚拟机的音频播放方法对应的功能是以指令的形式存储在移动终端的存储器上,当要执行下述各个实施例的虚拟机的音频播放方法对应的功能时,移动终端的处理器访问存储器,调取并执行对应的指令,以实现下述各个实施例的虚拟机的音频播放方法对应的功能。
存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如上述实施例中的虚拟机的音频播放装置500对应的程序指令/模块(例如,图5至图8所述的各个模块),或者下述实施例虚拟机的音频播放方法对应的步骤。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行虚拟机的音频播放装置500的各种功能应用以及数据处理,即实现下述实施例虚拟机的音频播放装置500的各个模块的功能,或者下述实施例虚拟机的音频播放方法对应的步骤的功能。
存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器中,当被所述一个或者多个处理器执行时,执行上述任意方法实施例中的虚拟机的音频播放方法,例如,执行下述实施例描述的图9至图12所示的各个步骤;也可实现附图5至图8所述的各个模块的功能。
请参阅图9,图9是本发明实施例提供一种虚拟机的音频播放方法的流程示意图。如图9所示,虚拟机的音频播放方法900包括:
步骤91、在检测到客户操作系统与主机操作系统同时存在音频播放指令时,启动客户操作系统的音频输出通道;
在步骤91中,音频输出通道位于所述客户操作系统的硬件抽象层。
步骤92、在主机操作系统内创建第一播放接口模块以及与音频输出通道对应的第二播放接口模块,第一播放接口模块用于接收主机操作系统的第一音频数据,第二播放接口模块用于接收经由音频输出通道传输的第二音频数据;
步骤93、混合第一音频数据与第二音频数据,并输出混音信号;
步骤94、播放混音信号。
因此,其能够同时输出多个操作系统的各自音频信号。
在一些实施例中,请参阅图10,虚拟机的音频播放方法900还包括:
步骤95、在检测到客户操作系统停止播放第二音频数据时,关闭并释放音频输出通道、第二播放接口模块及第一播放接口模块。
在一些实施例中,请参阅图11,虚拟机的音频播放方法900还包括:
步骤96、在检测到录音操作时,创建客户操作系统的音频输入通道以及主机操作系统的录音接口模块,音频输入通道与录音接口模块对应;
在步骤96中,音频输入通道位于客户操作系统的硬件抽象层。
步骤97、将录音接口模块的录音数据读取至音频输入通道。
在一些实施例中,请参阅图12,虚拟机的音频播放方法900还包括:
步骤98、在检测到客户操作系统停止读取录音数据时,关闭并释放音频输入通道以及与音频输入通道对应的录音接口模块。
由于装置实施例和方法实施例是基于同一构思,在内容不互相冲突的前提下,方法实施例的内容可以引用装置实施例的,在此不赘述。
作为本发明实施例的又另一方面,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使移动终端执行如上任一项所述的虚拟机的音频播放方法。
因此,其能够同时输出多个操作系统的各自音频信号。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (13)
1.一种虚拟机的音频播放方法,其特征在于,包括:
在检测到客户操作系统与主机操作系统同时存在音频播放指令时,启动所述客户操作系统的音频输出通道;
在所述主机操作系统内创建第一播放接口模块以及与所述音频输出通道对应的第二播放接口模块,所述第一播放接口模块用于接收所述主机操作系统的第一音频数据,所述第二播放接口模块用于接收经由所述音频输出通道传输的第二音频数据;
混合所述第一音频数据与所述第二音频数据,并输出混音信号;
播放所述混音信号。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在检测到所述客户操作系统停止播放第二音频数据时,关闭并释放所述音频输出通道、所述第二播放接口模块及所述第一播放接口模块。
3.根据权利要求1所述的方法,其特征在于,所述音频输出通道位于所述客户操作系统的硬件抽象层。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
在检测到录音操作时,创建所述客户操作系统的音频输入通道以及所述主机操作系统的录音接口模块,所述音频输入通道与所述录音接口模块对应;
将所述录音接口模块的录音数据读取至所述音频输入通道。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在检测到所述客户操作系统停止读取录音数据时,关闭并释放所述音频输入通道以及与所述音频输入通道对应的录音接口模块。
6.根据权利要求4所述的方法,其特征在于,所述音频输入通道位于所述客户操作系统的硬件抽象层。
7.一种虚拟机的音频播放装置,其特征在于,包括:
启动模块,用于在检测到客户操作系统与主机操作系统同时存在音频播放指令时,启动所述客户操作系统的音频输出通道;
第一创建模块,用于在所述主机操作系统内创建第一播放接口模块以及与所述音频输出通道对应的第二播放接口模块,所述第一播放接口模块用于接收所述主机操作系统的第一音频数据,所述第二播放接口模块用于接收经由所述音频输出通道传输的第二音频数据;
混合模块,用于混合所述第一音频数据与所述第二音频数据,并输出混音信号;
播放模块,用于播放所述混音信号。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第一关闭释放模块,用于在检测到所述客户操作系统停止播放第二音频数据时,关闭并释放所述音频输出通道以及与所述音频输出通道对应的播放接口模块。
9.根据权利要求7所述的装置,其特征在于,所述音频输出通道位于所述客户操作系统的硬件抽象层。
10.根据权利要求7至9任一项所述的装置,其特征在于,所述装置还包括:
第二创建模块,用于在检测到录音操作时,创建所述客户操作系统的音频输入通道以及所述主机操作系统的录音接口模块,所述音频输入通道与所述录音接口模块对应;
读取模块,用于将所述录音接口模块的录音数据读取至所述音频输入通道。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第二关闭释放模块,用于在检测到所述客户操作系统停止读取录音数据时,关闭并释放所述音频输入通道以及与所述音频输入通道对应的录音接口模块。
12.根据权利要求10所述的装置,其特征在于,所述音频输入通道位于所述客户操作系统的硬件抽象层。
13.一种移动终端,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够用于执行如权利要求1至6任一项所述的虚拟机的音频播放方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/119042 WO2019127114A1 (zh) | 2017-12-27 | 2017-12-27 | 一种虚拟机的音频播放方法及其装置、移动终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109313566A true CN109313566A (zh) | 2019-02-05 |
CN109313566B CN109313566B (zh) | 2022-06-07 |
Family
ID=65207583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780003326.1A Active CN109313566B (zh) | 2017-12-27 | 2017-12-27 | 一种虚拟机的音频播放方法及其装置、移动终端 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109313566B (zh) |
WO (1) | WO2019127114A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502312A (zh) * | 2019-08-15 | 2019-11-26 | 东软集团股份有限公司 | 一种数据读取方法、数据存储方法及装置 |
CN111625214A (zh) * | 2020-05-22 | 2020-09-04 | 广州视源电子科技股份有限公司 | 音频控制方法、装置、设备及存储介质 |
CN111930340A (zh) * | 2020-09-21 | 2020-11-13 | 北京技德系统技术有限公司 | 一种基于Linux与Android兼容技术的虚拟音频装置与方法 |
CN113286280A (zh) * | 2021-04-12 | 2021-08-20 | 沈阳中科创达软件有限公司 | 音频数据处理方法、装置、电子设备和计算机可读介质 |
CN113821359A (zh) * | 2021-07-12 | 2021-12-21 | 北京鲸鲮信息系统技术有限公司 | 音频驱动的系统兼容的方法、装置和设备 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111050265B (zh) * | 2019-11-27 | 2021-09-14 | 深圳易科声光科技股份有限公司 | 一种音频链路自动检测方法及装置 |
CN112965684B (zh) * | 2019-12-12 | 2023-08-25 | 成都鼎桥通信技术有限公司 | 一种音频输出控制方法和装置 |
CN111818388A (zh) * | 2020-05-27 | 2020-10-23 | 深圳壹账通智能科技有限公司 | 多进程访问的视频播放方法、装置、设备及存储介质 |
CN113992965A (zh) * | 2021-10-22 | 2022-01-28 | 深圳魔耳智能声学科技有限公司 | 一种低延迟传输方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1645325A (zh) * | 2005-01-25 | 2005-07-27 | 英特维数位科技股份有限公司 | 计算机系统自动执行多媒体播放单元的结构及其方法 |
WO2012140673A2 (en) * | 2011-04-11 | 2012-10-18 | Ineda Systems Pvt. Ltd | Audio controller |
US20120297383A1 (en) * | 2011-05-20 | 2012-11-22 | Steven Meisner | Methods and systems for virtualizing audio hardware for one or more virtual machines |
CN103021419A (zh) * | 2012-12-26 | 2013-04-03 | 大唐移动通信设备有限公司 | 一种混合音频的处理方法及装置 |
CN102667745B (zh) * | 2009-11-18 | 2015-04-08 | 日本电气株式会社 | 多核系统、多核系统的控制方法以及在非暂态可读介质中存储的程序 |
CN105204816A (zh) * | 2015-09-29 | 2015-12-30 | 北京元心科技有限公司 | 在多系统中对音频进行控制的方法及装置 |
WO2017101406A1 (zh) * | 2015-12-15 | 2017-06-22 | 乐视控股(北京)有限公司 | 基于Android的音频内容处理方法及设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744729B (zh) * | 2014-01-24 | 2017-03-29 | 福州瑞芯微电子股份有限公司 | 可切换操作系统的电脑系统 |
CN105955693B (zh) * | 2016-04-21 | 2019-12-27 | 北京元心科技有限公司 | 多系统中分配音频资源的方法及装置 |
-
2017
- 2017-12-27 WO PCT/CN2017/119042 patent/WO2019127114A1/zh active Application Filing
- 2017-12-27 CN CN201780003326.1A patent/CN109313566B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1645325A (zh) * | 2005-01-25 | 2005-07-27 | 英特维数位科技股份有限公司 | 计算机系统自动执行多媒体播放单元的结构及其方法 |
CN102667745B (zh) * | 2009-11-18 | 2015-04-08 | 日本电气株式会社 | 多核系统、多核系统的控制方法以及在非暂态可读介质中存储的程序 |
WO2012140673A2 (en) * | 2011-04-11 | 2012-10-18 | Ineda Systems Pvt. Ltd | Audio controller |
US20120297383A1 (en) * | 2011-05-20 | 2012-11-22 | Steven Meisner | Methods and systems for virtualizing audio hardware for one or more virtual machines |
CN103021419A (zh) * | 2012-12-26 | 2013-04-03 | 大唐移动通信设备有限公司 | 一种混合音频的处理方法及装置 |
CN105204816A (zh) * | 2015-09-29 | 2015-12-30 | 北京元心科技有限公司 | 在多系统中对音频进行控制的方法及装置 |
WO2017101406A1 (zh) * | 2015-12-15 | 2017-06-22 | 乐视控股(北京)有限公司 | 基于Android的音频内容处理方法及设备 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502312A (zh) * | 2019-08-15 | 2019-11-26 | 东软集团股份有限公司 | 一种数据读取方法、数据存储方法及装置 |
CN111625214A (zh) * | 2020-05-22 | 2020-09-04 | 广州视源电子科技股份有限公司 | 音频控制方法、装置、设备及存储介质 |
CN111625214B (zh) * | 2020-05-22 | 2024-04-26 | 广州视源电子科技股份有限公司 | 音频控制方法、装置、设备及存储介质 |
CN111930340A (zh) * | 2020-09-21 | 2020-11-13 | 北京技德系统技术有限公司 | 一种基于Linux与Android兼容技术的虚拟音频装置与方法 |
CN111930340B (zh) * | 2020-09-21 | 2021-06-01 | 北京技德系统技术有限公司 | 一种基于Linux与Android兼容技术的虚拟音频装置与方法 |
CN113286280A (zh) * | 2021-04-12 | 2021-08-20 | 沈阳中科创达软件有限公司 | 音频数据处理方法、装置、电子设备和计算机可读介质 |
CN113821359A (zh) * | 2021-07-12 | 2021-12-21 | 北京鲸鲮信息系统技术有限公司 | 音频驱动的系统兼容的方法、装置和设备 |
WO2023284653A1 (zh) * | 2021-07-12 | 2023-01-19 | 北京字节跳动网络技术有限公司 | 音频驱动的系统兼容的方法、装置和设备 |
CN113821359B (zh) * | 2021-07-12 | 2024-04-26 | 北京字节跳动网络技术有限公司 | 音频驱动的系统兼容的方法、装置和设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2019127114A1 (zh) | 2019-07-04 |
CN109313566B (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109313566A (zh) | 一种虚拟机的音频播放方法及其装置、移动终端 | |
US20170106281A1 (en) | Video Game Overlay | |
US9529615B2 (en) | Virtual device emulation via hypervisor shared memory | |
US8387015B2 (en) | Scalable automated empirical testing of media files on media players | |
CN106575243A (zh) | 管理程序托管的虚拟机取证 | |
CN111625214B (zh) | 音频控制方法、装置、设备及存储介质 | |
US10768776B1 (en) | Streaming virtual objects for incorporation in virtual environments | |
CN108062237A (zh) | Linux系统和Android系统的兼容方法及系统、存储介质及车载终端 | |
CN106293659A (zh) | 一种音频实时处理方法、装置及智能终端 | |
US20090258712A1 (en) | Game Device | |
CN108235756A (zh) | 一种音频竞争播放装置及其方法、移动终端 | |
US10278001B2 (en) | Multiple listener cloud render with enhanced instant replay | |
CN108235759A (zh) | 基于多操作系统的输入处理方法、装置及电子设备 | |
WO2022142619A1 (zh) | 一种私密音视频通话的方法与设备 | |
US11886484B2 (en) | Music playing method and apparatus based on user interaction, and device and storage medium | |
US20180097974A1 (en) | Video-tree system for interactive media reproduction, simulation, and playback | |
JP2023516819A (ja) | 領域ベースの依存関係によるカーネルの効率的なマルチgpu実行のためのシステム及び方法 | |
CN111131891A (zh) | 一种音视频播放方法、装置、播放设备及系统 | |
WO2020253452A1 (zh) | 直播间状态消息的推送方法、交互内容的切换方法、装置及设备 | |
CN110413252A (zh) | 一种音频输出方法及其装置、终端 | |
CN111859009A (zh) | 一种用于提供音频信息的方法与设备 | |
CN107305492A (zh) | Gse2D游戏引擎 | |
US20200110520A1 (en) | Displaying Pop-Up Overlays at Selected Time Points on an Electronic Page | |
JP7422707B2 (ja) | 効果音のレンダリング用のマルチトラックコンテナ | |
CN111818091B (zh) | 多人语音交互系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |