CN116560614A - 一种共享音频设备的方法、装置和设备 - Google Patents

一种共享音频设备的方法、装置和设备 Download PDF

Info

Publication number
CN116560614A
CN116560614A CN202310462573.5A CN202310462573A CN116560614A CN 116560614 A CN116560614 A CN 116560614A CN 202310462573 A CN202310462573 A CN 202310462573A CN 116560614 A CN116560614 A CN 116560614A
Authority
CN
China
Prior art keywords
audio
operating system
audio data
sharing
processor
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.)
Pending
Application number
CN202310462573.5A
Other languages
English (en)
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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN202310462573.5A priority Critical patent/CN116560614A/zh
Publication of CN116560614A publication Critical patent/CN116560614A/zh
Pending legal-status Critical Current

Links

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/162Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Abstract

本申请公开一种共享音频设备的方法、装置和设备,应用于第一操作系统,方法包括:基于第一操作系统和第二操作系统之间传输的音频数据,向第二操作系统共享音频设备,第一操作系统运行于第一处理器,第二操作系统运行于第二处理器,第一处理器和第二处理器设置于同一电子设备。

Description

一种共享音频设备的方法、装置和设备
技术领域
本申请属于设备共享技术领域,尤其涉及一种共享音频设备的方法、装置和设备。
背景技术
多系统设备,是指在同一设备上通过多个处理器分别运行两个或更多操作系统的电子设备。多系统设备可以根据不同使用场景在多个操作系统间切换,满足不同场景的使用需求。
多个操作系统间通常会共享一些输入/输出(Input/Output,I/O)模块。例如,第一操作系统拥有电子设备的音频设备,当第二操作系统需要时,第一操作系统向第二操作系统共享音频设备,使第二操作系统也能播放或采集音频。
目前的音频设备共享技术受限于第一操作系统中音频设备的驱动,在对具有不同驱动程序的电子设备应用该项技术时,需要针对不同的驱动程序再配置不同的代码,导致多系统设备的软件复杂度较高。
发明内容
为此,本申请公开如下技术方案:
本申请第一方面提供一种共享音频设备的方法,应用于第一操作系统,所述方法包括:
基于所述第一操作系统和第二操作系统之间传输的音频数据,向所述第二操作系统共享音频设备,所述第一操作系统运行于第一处理器,所述第二操作系统运行于第二处理器,所述第一处理器和所述第二处理器设置于同一电子设备。
可选的,所述音频设备包括音频播放设备;
所述基于所述第一操作系统和第二操作系统之间传输的音频数据,向所述第二操作系统共享音频设备,包括:
从第二操作系统获取第一音频数据,并通过所述音频播放设备播放所述第一音频数据。
可选的,所述音频设备包括音频采集设备;
所述基于所述第一操作系统和第二操作系统之间传输的音频数据,向所述第二操作系统共享音频设备,包括:
通过所述音频采集设备采集第二音频数据,并向第二操作系统发送所述第二音频数据。
可选的,所述从第二操作系统获取第一音频数据,并通过所述音频播放设备播放所述第一音频数据,包括:
通过第一音频进程从所述电子设备中第一音频驱动对应的第一缓存区读取第一音频数据,所述第一音频进程为所述第一操作系统中用于采集音频数据的进程,所述第一音频数据由所述第二操作系统写入所述第一缓存区;
通过第二音频进程控制所述音频播放设备播放所述第一音频数据,所述第二音频进程为所述第一操作系统中用于播放音频数据的进程;
所述第一音频驱动是所述第一操作系统中用于在与所述第一音频进程和所述第二音频进程配合的情况下、通过USB接口使所述音频播放设备作为所述第二操作系统的外部音频播放设备的驱动程序。
可选的,所述通过所述音频采集设备采集第二音频数据,并向第二操作系统发送所述第二音频数据,包括:
通过第三音频进程控制所述音频采集设备采集第二音频数据,所述第三音频进程为所述第一操作系统中用于采集音频数据的进程;
通过第四音频进程将所述第二音频数据写入第二音频驱动对应的第二缓存区,所述第二缓存区的第二音频数据由所述第二操作系统读取,所述第四音频进程为所述第一操作系统中用于播放音频数据的进程,所述第二音频驱动为所述第一操作系统中用于在与所述第三音频进程和所述第四音频进程配合的情况下、通过USB接口使所述音频采集设备作为所述第二操作系统的外部音频采集设备的驱动程序。
可选的,所述通过第二音频进程控制所述音频播放设备播放所述第一音频数据,包括:
基于预设的音效数据处理第一音频数据,得到处理后第一音频数据,所述音效数据为所述第一操作系统播放音频数据时应用的音效数据;
通过第二音频进程控制所述音频播放设备播放所述处理后第一音频数据。
可选的,还包括:
通过所述第一操作系统的共享设备节点检测所述第一缓存区有无所述第一音频数据,所述共享设备节点在所述第一音频驱动中注册;
所述通过第一音频进程从所述电子设备的第一缓存区读取第一音频数据,包括:
在所述第一缓存区检测到所述第一音频数据时,通过第一音频进程从所述电子设备的第一缓存区读取第一音频数据。
可选的,还包括:
在所述第一缓存区未检测到所述第一音频数据时,释放所述第一音频进程和所述第二音频进程。
本申请第二方面提供一种共享音频设备的装置,应用于第一操作系统,所述装置包括:
共享单元,用于基于所述第一操作系统和第二操作系统之间传输的音频数据,向所述第二操作系统共享音频设备,所述第一操作系统运行于第一处理器,所述第二操作系统运行于第二处理器,所述第一处理器和所述第二处理器设置于同一电子设备。
本申请第三方面提供一种电子设备,包括存储器,第一处理器和第二处理器;
所述存储器用于存储计算机程序;
所述第一处理器用于执行所述计算机程序,以实现:
基于第一操作系统和第二操作系统之间传输的音频数据,向所述第二操作系统共享音频设备,所述第一操作系统运行于所述第一处理器,所述第二操作系统运行于所述第二处理器,所述第一处理器和所述第二处理器设置于同一电子设备。
现有音频设备共享技术中,第二操作系统需要调用音频设备的驱动程序以实现音频设备的共享,为此显然要新增或修改部分代码以使得第二操作系统和音频设备的驱动程序相适配,因此这种共享音频设备的方式会导致多系统设备的软件复杂度较高。而本申请的方案中,第一操作系统通过和第二操作系统传输音频数据的方式向第二操作系统提供音频设备的功能,音频设备仍然在第一操作系统控制下运行,第二操作系统不需要控制音频设备的运行,自然也不需要适配音频设备的驱动程序而配置相关的代码,因此通过这种方式共享音频设备,有利于降低多系统设备的软件复杂度。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请实施例提供的一种共享音频设备的方法的流程图;
图2是本申请实施例提供的一种共享音频播放设备的方法的流程图;
图3是本申请实施例提供的一种共享音频采集设备的方法的流程图;
图4是本申请实施例提供的一种双系统设备的架构示意图;
图5是本申请实施例提供的一种共享音频设备的装置的结构示意图;
图6是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先说明,本申请任一实施例所称的多系统设备,是指具有如下特征的电子设备:
该电子设备包括多个处理器,并且多个处理器分别运行不同操作系统。
例如,该电子设备可以包括第一处理器和第二处理器,第一处理器用于运行第一操作系统,第二处理器用于运行第二操作系统。
多系统设备往往包含多个用于人机交互的输入输出设备(以下简称IO设备),这些输入输出设备分别由不同操作系统控制。
示例性的,多系统设备的显示器、触摸屏、相机和音频等IO设备可以由第一操作系统控制,键盘、鼠标和触控板(Touchpad)等IO设备可以由第二操作系统控制。
多系统设备可以有不同的工作模式,在不同工作模式下,用户可以使用不同操作系统,在用户使用多系统设备的任意一个操作系统时,其他操作系统就需要将自身控制的IO设备共享给当前被使用的操作系统,从而为当前被使用的操作系统提供对应的交互能力。
续接前述示例,多系统设备处于节能模式(Green Mode)时,用户可以使用第一操作系统,此时第二操作系统需要将自身控制的键盘、鼠标和触控板共享给第一操作系统使用;多系统设备处于高效模式(PowerMode)时,用户可以使用第二操作系统,此时第一操作系统需要将自身控制的显示器、触摸屏、相机和音频共享给第二操作系统使用。
本实施例对上述第一处理器和第二处理器的架构,以及第一操作系统和第二操作系统的类型均不做限定。
作为一个示例,第一处理器可以是ARM(Advanced RISC Machine,先进精简指令集机器)处理器,第一操作系统可以是基于ARM处理器运行的安卓(Android)操作系统,第二处理器可以是X86处理器,第二操作系统可以是基于X86处理器运行的Windows操作系统。
现有多系统设备中,第一操作系统向第二操作系统共享音频设备的方式是,第二操作系统调用第一操作系统中音频设备的驱动程序(例如ALSA驱动),从而控制音频设备实现音频交互。
为了使第二操作系统可以调用音频设备的驱动程序,显然要在第二操作系统中新增或修改部分代码以使得第二操作系统和音频设备的驱动程序相适配,因此这种共享音频设备的方式会导致多系统设备的软件复杂度较高。
针对上述问题,本申请实施例提供一种共享音频设备的方法,请参见图1,为该方法的流程图,该方法可以包括如下步骤:
S101,响应预设的启动指令,启动音频设备共享功能。
本实施例所提供的共享音频设备的方法,可以由第一操作系统的音频共享程序执行,因此S101相当于响应启动指令而启动该音频共享程序。
本实施例对启动指令的具体形式不做限定。
作为一个示例,启动指令可以是用户从第一操作系统切换到第二操作系统的切换指令,也就是说,在检测到用户从第一操作系统切换到第二操作系统时,第一操作系统启动音频设备共享功能。
作为另一个示例,启动指令可以是用户在第二操作系统打开音频应用的音频应用开启指令。音频应用,指代需要使用音频设备的应用程序,例如,音乐播放应用、录音应用、语音通话应用等都可以视为本示例中的音频应用。
用于实现本实施例的共享方法的音频共享程序,可以是第一操作系统中对用户可见的应用程序,也可以是固化在第一操作系统的框架中的服务(Server)。
示例性的,当第一操作系统是安卓操作系统时,该音频共享程序可以是安卓操作系统的应用框架(framework)中的音频共享服务。并且,考虑到音频设备可以分为音频播放设备(例如扬声器)和音频采集设备(例如麦克风)两类,音频共享服务可以对应分为用于共享扬声器的扬声器共享服务,以及用于共享麦克风的麦克风共享服务。
需要说明的是,步骤S101是可选的步骤,在一些实施例中,音频设备共享功能可以在多系统设备开机时自动启动,而不需要在获得特定的启动指令后才启动。
S102,基于所述第一操作系统和第二操作系统之间传输的音频数据,向所述第二操作系统共享音频设备。
第一操作系统运行于第一处理器,第二操作系统运行于第二处理器,第一处理器和第二处理器设置于同一电子设备。
如前文所述,音频设备可以包括音频播放设备和音频采集设备。在步骤S102中,第一操作系统可以向第二操作系统共享音频播放设备,也可以向第二操作系统共享音频采集设备,还可以同时向第二操作系统共享音频播放设备和音频采集设备。
其中,当第一操作系统向第二操作系统共享音频播放设备时,步骤S102的实施方式可以是:
第一操作系统从第二操作系统获取第一音频数据,并通过音频播放设备播放第一音频数据。
当第一操作系统向第二操作系统共享音频采集设备时,步骤S102的具体实施方式可以是:
通过音频采集设备采集第二音频数据,并向第二操作系统发送第二音频数据。
本实施例的有益效果在于:
第一操作系统通过和第二操作系统传输音频数据的方式向第二操作系统提供音频设备的功能,在共享期间,音频设备仍然在第一操作系统控制下运行,由此第二操作系统不需要控制音频设备的运行即可使用音频设备,自然也不需要适配音频设备的驱动程序而在第二操作系统中配置相关的代码,因此通过这种方式共享音频设备,有利于降低多系统设备的软件复杂度。
下面分别对共享音频播放设备的方法和共享音频采集设备的方法进行详细说明。
请参见图2,为本实施例提供的一种共享音频播放设备的方法的流程图,该方法可以通过多系统设备中预设的扬声器共享服务实现,该方法可以包括如下步骤。
本实施例所提供的方法,可以视为图1对应的实施例中,从第二操作系统获取第一音频数据,并通过音频播放设备播放第一音频数据这一步骤的具体实施过程。
S201,通过第一音频进程从电子设备中第一音频驱动对应的第一缓存区读取第一音频数据,第一音频进程为第一操作系统中用于采集音频数据的进程,第一音频数据由第二操作系统写入第一缓存区。
第一音频驱动是第一操作系统中用于在与第一音频进程和第二音频进程配合的情况下、通过USB接口使音频播放设备作为第二操作系统的外部音频播放设备的驱动程序。
因此,第二操作系统可以通过USB接口,将需要播放的第一音频数据写入第一缓存区。
可选的,第一音频驱动可以是UAC驱动。UAC驱动,是一种基于USB音频类(USBAudio Class,UAC)标准而实现的驱动程序。
在建立第一音频进程时,可以基于第一音频驱动对应的标准而建立第一音频进程,以使第一音频进程能读取第一音频驱动的缓存区的音频数据。
示例性的,当第一音频驱动是UAC驱动时,第一音频进程可以基于UAC规范中关于扬声器(Speaker)设备的规范创建,由此,第一音频进程能够通过UAC驱动,从第一缓存区读取第一音频数据。
第一音频进程可以在扬声器共享服务启动时就创建,也可以在扬声器共享服务发现第一缓存区有第一音频数据时创建。
第一音频进程的具体类型根据第一操作系统的不同而不同,本实施例不做限定。作为示例,当第一操作系统是Android操作系统时,第一音频进程可以是AudioRecord类型的进程。
扬声器共享服务可以在满足特定条件时才通过第一音频进程读取第一音频数据,示例性的,该特定条件可以在,扬声器共享服务在第一缓存区内检测到第一音频数据。
也就是说,通过第一音频进程从电子设备的第一缓存区读取第一音频数据,可以包括:
在第一缓存区检测到第一音频数据时,通过第一音频进程从电子设备的第一缓存区读取第一音频数据。
为了检测第一缓存区有无第一音频数据,扬声器共享服务可以预先创建一个共享设备节点,并在第一音频驱动中注册该共享设备节点,由此,扬声器共享服务就可以在执行S201之前,通过如下步骤来检测第一缓存区有无第一音频数据:
通过第一操作系统的共享设备节点检测第一缓存区有无第一音频数据。
通过共享设备节点检测第一缓存区有无第一音频数据的好处在于,在没有要播放的第一音频数据时,第一音频进程无需运行,从而避免占用第一处理器的处理资源。
S202,通过第二音频进程控制音频播放设备播放第一音频数据,第二音频进程为第一操作系统中用于播放音频数据的进程。
在实施步骤S202之前,扬声器共享服务向第一操作系统请求系统播放权限和音频播放设备的控制权限,在获得以上权限后,扬声器共享服务基于音频播放设备创建用于控制该音频播放设备的进程,也就是第二音频进程。
第二音频进程可以和第一音频进程同时创建。
第二音频进程的具体类型根据第一操作系统的不同而不同,本实施例不做限定。作为示例,当第一操作系统是Android操作系统时,第二音频进程可以是AudioTrack类型的进程。
第一音频进程获得第一音频数据后,可以通过进程间的通信,将第一音频数据发送给第二音频进程,由此,第二音频进程可以根据第一音频数据控制音频播放设备,使其播放第一音频数据。
在一些可选的实施例中,第一操作系统可以在播放第一音频数据之前对第一音频数据进行音效处理,再播放处理后的第一音频数据。也就是说,步骤S202的一种实施方式可以是:
基于预设的音效数据处理第一音频数据,得到处理后第一音频数据,音效数据为第一操作系统播放音频数据时应用的音效数据;
通过第二音频进程控制音频播放设备播放处理后第一音频数据。
以第一操作系统为安卓操作系统为示例,安卓操作系统中,音效数据由AudioEffect类型的进程管理,因此在安卓操作系统中实施S202时,可以先创建一个AudioEffect类型的音效处理进程,获得第一音频数据后,首先通过该音效处理进程处理第一音频数据,得到处理后第一音频数据,再通过第二音频进程播放处理后第一音频数据。
在根据音效数据处理第一音频数据时,可以根据多种预设的音效数据中用户指定的一种音效数据处理,也可以在多种音效数据中选择和当前的播放场景相匹配的音效数据处理。
这样做的好处在于,复用第一操作系统的音效数据对第二操作系统播放的音频数据进行音效处理,既不会增加多系统设备的软件复杂度,又能够在用户使用第二操作系统时为用户提供更丰富的音效体验,改善多系统设备中第二操作系统的使用体验。
在一些可选的实施例中,在通过第二音频进程控制音频播放设备播放第一音频数据时,扬声器共享服务还可以通过共享设备节点持续检测第一缓存区有无第一音频数据,如果在第一缓存区未检测到第一音频数据,则执行如下步骤:
在第一缓存区未检测到第一音频数据时,释放第一音频进程和第二音频进程。
及时释放第一音频进程和第二音频进程,可以避免这些空闲的进程占用第一操作系统的内存资源和处理器资源,从而提高第一操作系统的运行效率。
本实施例的有益效果在于:
通过第一音频驱动,第一音频进程和第二音频进程相配合,使得第二操作系统只需要通过USB接口输出要播放的第一音频数据,就能用音频播放设备播放第一音频数据,避免为适配音频播放设备的驱动而配置第二操作系统的代码。
并且,第一音频进程和第二音频进程,都是基于第一操作系统原有的采集和播放音频功能而建立的进程,通过第一音频驱动、第一音频进程和第二音频进程相配合实现以上功能,可以最大限度的复用第一操作系统原有资源,达到既能够共享音频播放设备,又不显著提高多系统设备的软件复杂度的效果。
请参见图3,为本实施例提供的一种共享音频采集设备的方法的流程图,该方法可以包括如下步骤。
本实施例提供的方法,可以视为图1对应的实施例中,通过音频采集设备采集第二音频数据,并向第二操作系统发送第二音频数据这一步骤的具体实施过程。
本实施例所提供的方法,可以由麦克风共享服务实现。
S301,通过第三音频进程控制音频采集设备采集第二音频数据,第三音频进程为第一操作系统中用于采集音频数据的进程。
第三音频进程,可以是和第一音频进程相同类型的进程。
在步骤S301中,麦克风共享服务可以先向第一操作系统请求系统录音权限和麦克风设备的控制权限,获得对应权限后,麦克风共享服务就可以根据音频采集设备(即麦克风)创建第三音频进程。
可选的,为了避免第三音频进程在空闲时占用第一操作系统的内存资源和处理器资源,麦克风共享服务可以在确定第二操作系统需要使用音频采集设备,也就是确定第二操作系统需要录音时,才创建第三音频进程。
确定第二操作系统是否需要录音的方式可以是:
麦克风共享服务预先在第二音频驱动中注册一个共享设备节点,当第二操作系统需要录音时,第二操作系统可以向该共享设备节点发送开始录音的信号,然后共享设备节点通知麦克风共享服务开始录音。
本实施例的共享设备节点和图2对应实施例中的共享设备节点可以是同一个设备节点。
S302,通过第四音频进程将第二音频数据写入第二音频驱动对应的第二缓存区,第二缓存区的第二音频数据由第二操作系统读取,第四音频进程为第一操作系统中用于播放音频数据的进程。
第四音频进程,可以是和第二音频进程相同类型的进程。
第四音频进程可以和第三音频进程同时创建。
第二音频驱动为第一操作系统中用于在与第三音频进程和第四音频进程配合的情况下、通过USB接口使音频采集设备作为第二操作系统的外部音频采集设备的驱动程序。
因此,第二操作系统可以通过USB接口,从第二缓存区读取第二音频数据。
可选的,第二音频驱动也可以是UAC驱动。
在步骤S302中,第三音频进程可以通过进程间的通信,将第二音频数据传输给第四音频进程,然后第四音频进程通过第二音频驱动,将第二音频数据写入到第二音频驱动对应的第二缓存区中,以便第二操作系统通过USB接口读取第二音频数据。
在一些可选的实施例中,麦克风共享服务通过共享设备节点确定第二操作系统是否需要停止录音,当检测到第二操作系统需要停止录音时,麦克风共享服务释放第三音频进程和第四音频进程。
本实施例的有益效果和图2对应的实施例的有益效果一致,不再赘述。
为了便于理解本实施例提供的共享音频设备的方法,下面以配置了安卓操作系统和Windows操作系统的双系统设备的系统架构为例,说明本实施例的方法的执行过程。
请参见图4,为用于实现本实施例的方法的双系统设备的架构示意图。
当第二操作系统的音频应用需要播放音频数据时,音频应用将第一音频数据通过USB接口写入UAC驱动的第一缓存区,扬声器共享服务通过共享设备节点发现第一缓存区内有第一音频数据后,创建第一音频进程和第二音频进程,然后通过第一音频进程从第一缓存区读取第一音频数据,将第一音频数据从第一音频进程传输给第二音频进程,最后通过第二音频进程将第一音频数据传输给扬声器驱动,通过扬声器驱动控制扬声器播放第一音频数据,由此,第一操作系统将扬声器共享给第二操作系统的音频应用使用。
当第二操作系统的音频应用需要采集音频数据时,音频应用通知共享设备节点开始录音,共享设备节点再通知麦克风共享服务,麦克风共享服务获得该通知后,创建第三音频进程和第四音频进程,然后麦克风共享服务通过第三音频进程调用麦克风驱动,进而控制麦克风采集第二音频数据,再将第二音频数据从第三音频进程传输给第四音频进程,由第四音频进程将第二音频数据写入UAC驱动的第二缓存区,音频应用则通过USB接口从第二缓存区读取第二音频数据,由此,第一操作系统将麦克风共享给第二操作系统的音频应用使用。
根据本申请实施例提供的共享音频设备的方法,本申请实施例还提供一种共享音频设备的装置,应用于第一操作系统,请参见图5,为该装置的结构示意图,该装置可以包括如下单元:
启动单元501,用于响应预设的启动指令,启动音频共享功能;
共享单元502,用于基于第一操作系统和第二操作系统之间传输的音频数据,向第二操作系统共享音频设备,第一操作系统运行于第一处理器,第二操作系统运行于第二处理器,第一处理器和第二处理器设置于同一电子设备。
可选的,音频设备包括音频播放设备;
共享单元502基于第一操作系统和第二操作系统之间传输的音频数据,向第二操作系统共享音频设备时,具体用于:
从第二操作系统获取第一音频数据,并通过音频播放设备播放第一音频数据。
可选的,音频设备包括音频采集设备;
共享单元502基于第一操作系统和第二操作系统之间传输的音频数据,向第二操作系统共享音频设备时,具体用于:
通过音频采集设备采集第二音频数据,并向第二操作系统发送第二音频数据。
可选的,共享单元502从第二操作系统获取第一音频数据,并通过音频播放设备播放第一音频数据时,具体用于:
通过第一音频进程从电子设备中第一音频驱动对应的第一缓存区读取第一音频数据,第一音频进程为第一操作系统中用于采集音频数据的进程,第一音频数据由第二操作系统写入第一缓存区;
通过第二音频进程控制音频播放设备播放第一音频数据,第二音频进程为第一操作系统中用于播放音频数据的进程;
第一音频驱动是第一操作系统中用于在与第一音频进程和第二音频进程配合的情况下、通过USB接口使音频播放设备作为第二操作系统的外部音频播放设备的驱动程序。
可选的,共享单元502通过音频采集设备采集第二音频数据,并向第二操作系统发送第二音频数据时,具体用于:
通过第三音频进程控制音频采集设备采集第二音频数据,第三音频进程为第一操作系统中用于采集音频数据的进程;
通过第四音频进程将第二音频数据写入第二音频驱动对应的第二缓存区,第二缓存区的第二音频数据由第二操作系统读取,第四音频进程为第一操作系统中用于播放音频数据的进程,第二音频驱动为第一操作系统中用于在与第三音频进程和第四音频进程配合的情况下、通过USB接口使音频采集设备作为第二操作系统的外部音频采集设备的驱动程序。
可选的,共享单元502通过第二音频进程控制音频播放设备播放第一音频数据时,具体用于:
基于预设的音效数据处理第一音频数据,得到处理后第一音频数据,音效数据为第一操作系统播放音频数据时应用的音效数据;
通过第二音频进程控制音频播放设备播放处理后第一音频数据。
可选的,共享单元502还用于:
通过第一操作系统的共享设备节点检测第一缓存区有无第一音频数据,共享设备节点在第一音频驱动中注册;
共享单元502通过第一音频进程从电子设备的第一缓存区读取第一音频数据时,具体用于:
在第一缓存区检测到第一音频数据时,通过第一音频进程从电子设备的第一缓存区读取第一音频数据。
可选的,共享单元502还用于:
在第一缓存区未检测到第一音频数据时,释放第一音频进程和第二音频进程。
本实施例提供的共享音频设备的装置,其具体工作原理可以参见本申请任一实施例提供的共享音频设备的方法中相关步骤,此处不再赘述。
利用本实施例提供的共享音频设备的装置,第一操作系统可以通过和第二操作系统传输音频数据的方式向第二操作系统提供音频设备的功能,而共享期间音频设备仍然在第一操作系统控制下运行,第二操作系统不需要控制音频设备的运行,自然也不需要适配音频设备的驱动程序而配置相关的代码,因此通过这种方式共享音频设备,有利于降低多系统设备的软件复杂度。
根据本申请实施例提供的共享音频设备的方法,本申请实施例还提供一种电子设备,请参见图6,为该电子设备的结构示意图。
该电子设备为多系统设备,具体包括存储器601,第一处理器602,第二处理器603和音频设备604;
存储器601用于存储计算机程序;
第一处理器602用于执行计算机程序,以实现:
基于第一操作系统和第二操作系统之间传输的音频数据,向第二操作系统共享音频设备,第一操作系统运行于第一处理器,第二操作系统运行于第二处理器,第一处理器和第二处理器设置于同一电子设备。
进一步的,第一处理器还可以通过执行计算机程序,实现本申请任一实施例所提供的共享音频设备的方法中相关步骤,不再赘述。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种共享音频设备的方法,应用于第一操作系统,所述方法包括:
基于所述第一操作系统和第二操作系统之间传输的音频数据,向所述第二操作系统共享音频设备,所述第一操作系统运行于第一处理器,所述第二操作系统运行于第二处理器,所述第一处理器和所述第二处理器设置于同一电子设备。
2.根据权利要求1所述的方法,所述音频设备包括音频播放设备;
所述基于所述第一操作系统和第二操作系统之间传输的音频数据,向所述第二操作系统共享音频设备,包括:
从第二操作系统获取第一音频数据,并通过所述音频播放设备播放所述第一音频数据。
3.根据权利要求1所述的方法,所述音频设备包括音频采集设备;
所述基于所述第一操作系统和第二操作系统之间传输的音频数据,向所述第二操作系统共享音频设备,包括:
通过所述音频采集设备采集第二音频数据,并向第二操作系统发送所述第二音频数据。
4.根据权利要求2所述的方法,所述从第二操作系统获取第一音频数据,并通过所述音频播放设备播放所述第一音频数据,包括:
通过第一音频进程从所述电子设备中第一音频驱动对应的第一缓存区读取第一音频数据,所述第一音频进程为所述第一操作系统中用于采集音频数据的进程,所述第一音频数据由所述第二操作系统写入所述第一缓存区;
通过第二音频进程控制所述音频播放设备播放所述第一音频数据,所述第二音频进程为所述第一操作系统中用于播放音频数据的进程;
所述第一音频驱动是所述第一操作系统中用于在与所述第一音频进程和所述第二音频进程配合的情况下、通过USB接口使所述音频播放设备作为所述第二操作系统的外部音频播放设备的驱动程序。
5.根据权利要求3所述的方法,所述通过所述音频采集设备采集第二音频数据,并向第二操作系统发送所述第二音频数据,包括:
通过第三音频进程控制所述音频采集设备采集第二音频数据,所述第三音频进程为所述第一操作系统中用于采集音频数据的进程;
通过第四音频进程将所述第二音频数据写入第二音频驱动对应的第二缓存区,所述第二缓存区的第二音频数据由所述第二操作系统读取,所述第四音频进程为所述第一操作系统中用于播放音频数据的进程,所述第二音频驱动为所述第一操作系统中用于在与所述第三音频进程和所述第四音频进程配合的情况下、通过USB接口使所述音频采集设备作为所述第二操作系统的外部音频采集设备的驱动程序。
6.根据权利要求4所述的方法,所述通过第二音频进程控制所述音频播放设备播放所述第一音频数据,包括:
基于预设的音效数据处理第一音频数据,得到处理后第一音频数据,所述音效数据为所述第一操作系统播放音频数据时应用的音效数据;
通过第二音频进程控制所述音频播放设备播放所述处理后第一音频数据。
7.根据权利要求4所述的方法,还包括:
通过所述第一操作系统的共享设备节点检测所述第一缓存区有无所述第一音频数据,所述共享设备节点在所述第一音频驱动中注册;
所述通过第一音频进程从所述电子设备的第一缓存区读取第一音频数据,包括:
在所述第一缓存区检测到所述第一音频数据时,通过第一音频进程从所述电子设备的第一缓存区读取第一音频数据。
8.根据权利要求7所述的方法,还包括:
在所述第一缓存区未检测到所述第一音频数据时,释放所述第一音频进程和所述第二音频进程。
9.一种共享音频设备的装置,应用于第一操作系统,所述装置包括:
共享单元,用于基于所述第一操作系统和第二操作系统之间传输的音频数据,向所述第二操作系统共享音频设备,所述第一操作系统运行于第一处理器,所述第二操作系统运行于第二处理器,所述第一处理器和所述第二处理器设置于同一电子设备。
10.一种电子设备,包括存储器,第一处理器和第二处理器;
所述存储器用于存储计算机程序;
所述第一处理器用于执行所述计算机程序,以实现:
基于第一操作系统和第二操作系统之间传输的音频数据,向所述第二操作系统共享音频设备,所述第一操作系统运行于所述第一处理器,所述第二操作系统运行于所述第二处理器,所述第一处理器和所述第二处理器设置于同一电子设备。
CN202310462573.5A 2023-04-26 2023-04-26 一种共享音频设备的方法、装置和设备 Pending CN116560614A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310462573.5A CN116560614A (zh) 2023-04-26 2023-04-26 一种共享音频设备的方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310462573.5A CN116560614A (zh) 2023-04-26 2023-04-26 一种共享音频设备的方法、装置和设备

Publications (1)

Publication Number Publication Date
CN116560614A true CN116560614A (zh) 2023-08-08

Family

ID=87493923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310462573.5A Pending CN116560614A (zh) 2023-04-26 2023-04-26 一种共享音频设备的方法、装置和设备

Country Status (1)

Country Link
CN (1) CN116560614A (zh)

Similar Documents

Publication Publication Date Title
JP6742465B2 (ja) ブルートゥーススピーカーにおける連続ウェイクアップ遅延低減の方法、装置及びブルートゥーススピーカー
US9372714B2 (en) Information terminal apparatus and method for switching control of a user interface between concurrently executing operating systems
WO2020062670A1 (zh) 电器设备的控制方法、装置、电器设备和介质
CN106797388B (zh) 跨系统多媒体数据编解码方法、装置、电子设备和计算机程序产品
WO2020062669A1 (zh) 电器设备的控制方法、系统、装置、设备及介质
US20110154333A1 (en) Machine system, information processing apparatus, method of operating virtual machine, and program
US9191417B2 (en) Cross-process media handling in a voice-over-internet protocol (VOIP) application platform
JP2019159305A (ja) ファーフィールド音声機能の実現方法、設備、システム及び記憶媒体
CN112055072B (zh) 云端音频输入方法、装置、云系统、电子设备与存储介质
CN109947387B (zh) 音频采集方法、音频播放方法、系统、设备及存储介质
CN106528133B (zh) 一种应用于多系统的设备请求处理方法及装置
WO2018119711A1 (zh) 多操作系统多媒体编解码方法、装置及电子设备
JP2021028819A (ja) スマートサービス方法、装置及び機器
CN116028205B (zh) 资源调度方法和电子设备
CN110413383B (zh) 事件处理方法、装置、终端及存储介质
WO2023103599A1 (zh) 投屏方法、装置、存储介质及电子设备
CN108182930B (zh) 音效处理方法、设备及音视频点播系统
US9319246B2 (en) Voice-over-internet protocol (VOIP) application platform
CN116560614A (zh) 一种共享音频设备的方法、装置和设备
CN110753040B (zh) 一种请求处理的方法及装置
WO2024051148A1 (zh) 云游戏控制方法、装置、电子设备及存储介质
KR101423920B1 (ko) 버퍼링 상태에 기반한 디지털 멀티미디어 녹화 방법 및 장치
CN102789795B (zh) 基于Android操作系统的车载光盘播放方法及其系统
JP2005293417A (ja) コンピュータ機器、コンピュータネットワークシステム、プログラム転送方法およびプログラム転送用プログラム
WO2019071616A1 (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