CN112579038A - 一种内置录音方法、装置、电子设备和存储介质 - Google Patents
一种内置录音方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112579038A CN112579038A CN202011551959.6A CN202011551959A CN112579038A CN 112579038 A CN112579038 A CN 112579038A CN 202011551959 A CN202011551959 A CN 202011551959A CN 112579038 A CN112579038 A CN 112579038A
- Authority
- CN
- China
- Prior art keywords
- virtual
- recording
- audio data
- built
- sound card
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/16—Sound input; Sound output
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Telephone Function (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明属于音频采集和处理技术领域,本发明提供一种内置录音方法、装置、电子设备和存储介质,其方法包括:当加载录音线程进行系统的内置录音时,将所述系统的声音输出路径切换到虚拟声卡的虚拟扬声器,将所述系统的录音路径切换到所述虚拟声卡的虚拟麦克风;将写入所述虚拟扬声器的文件节点的音频数据返回至所述虚拟麦克风的文件节点,并传输至所述录音线程以进行所述系统的内置录音。通过实现虚拟声卡驱动,生成虚拟扬声器和虚拟麦克风,当录制系统内部声音时,将系统的音频路径切换到虚拟扬声器和虚拟麦克风,使得用录音APK录音的时候,实现了通过虚拟声卡进行无损录制。
Description
技术领域
本发明涉及音频采集和处理技术领域,尤指一种内置录音方法、装置、电子设备和存储介质。
背景技术
目前的安卓平台进行录音的时候,使用的是内置麦克风,当用户需要录制当前系统声音的时候,往往需要把外音开到最大,打开录音APP进行录制。但是这样录音,往往会录进去很多噪声。
谷歌开发者网站表明MediaRecorder.AudioSource.REMOTE_SUBMIX参数可以让系统App录制系统内置的声音,主要用于Miracast(基于Wi-Fi Direct的屏幕共享协议)。由于REMOTE_SUBMIX功能不是Android系统强制性要求,目前各主流手机平台并没有提供完整的支持。同时REMOTE_SUBMIX需要系统权限,普通第三方APK需要在已经Root过的设备才能使用,这对于普通用户和第三方APK开发者来说是基本不可能的。
因此,现有技术无法实现Android系统声音的高质量录制,此问题亟待解决。
发明内容
本发明提供一种内置录音方法、装置、电子设备和存储介质,通过实现虚拟声卡驱动,生成虚拟扬声器和虚拟麦克风,当录制系统内部声音时,将系统的音频路径切换到虚拟扬声器和虚拟麦克风,使得用录音APK录音的时候,实现了通过虚拟声卡进行无损录制。
本发明提供的技术方案如下:
一种内置录音方法,包括:
当加载录音线程进行系统的内置录音时,将所述系统的声音输出路径切换到虚拟声卡的虚拟扬声器,将所述系统的录音路径切换到所述虚拟声卡的虚拟麦克风;
将写入所述虚拟扬声器的文件节点的音频数据返回至所述虚拟麦克风的文件节点,并传输至所述录音线程以进行所述系统的内置录音。
进一步优选地,在所述当加载录音线程进行系统的内置录音时,将所述系统的声音输出路径切换到虚拟声卡的虚拟扬声器,将所述系统的录音路径切换到所述虚拟声卡的虚拟麦克风之前,还包括步骤:
驱动虚拟声卡,以生成所述虚拟扬声器和所述虚拟麦克风,并创建所述虚拟扬声器的文件节点和所述虚拟麦克风的文件节点;
建立所述虚拟声卡的HAL层,所述HAL层用于支持音频数据写入所述虚拟扬声器以及从所述虚拟麦克风进行所述音频数据的读取;
将所述虚拟声卡的配置文件添加入所述系统的音频配置文件。
进一步优选地,在所述当加载录音线程进行系统的内置录音时,将所述系统的声音输出路径切换到虚拟声卡的虚拟扬声器,将所述系统的录音路径切换到所述虚拟声卡的虚拟麦克风之前,还包括步骤:
当所述系统启动时,根据所述音频配置文件加载所述虚拟扬声器和所述虚拟麦克风。
进一步优选地,所述当加载录音线程进行系统的内置录音时,将所述系统的声音输出路径切换到虚拟声卡的虚拟扬声器,将所述系统的录音路径切换到所述虚拟声卡的虚拟麦克风,包括步骤:
通过调用所述音频配置文件加载录音线程读取所述系统内部的音频数据;
基于所述音频配置文件将所述系统的声音输出路径切换到所述虚拟扬声器,并将所述系统的录音路径切换到所述虚拟麦克风。
进一步优选地,在所述将写入所述虚拟扬声器的文件节点的音频数据返回至所述虚拟麦克风的文件节点,并传输至所述录音线程以进行所述系统的内置录音之前,包括步骤:
当所述系统的声音输出路径切换到所述虚拟扬声器,并将所述系统的录音路径切换到所述虚拟麦克风后,通过所述虚拟声卡的HAL层获取所述系统内部的音频数据;
将所述音频数据通过所述虚拟声卡的HAL层传输至所述虚拟扬声器的文件节点。
进一步优选地,所述将写入所述虚拟扬声器的文件节点的音频数据返回至所述虚拟麦克风的文件节点,并传输至所述录音线程以进行所述系统的内置录音,包括步骤:
当所述虚拟扬声器虚拟播放所述系统内部的音频数据后,通过所述虚拟麦克风读取所述音频数据,并保存至所述虚拟麦克风的文件节点;
将所述虚拟麦克风的文件节点中音频数据传输至所述虚拟声卡的HAL层,并通过所述虚拟声卡的HAL层返回所述音频数据至所述录音线程。
一种内置录音装置,包括:
切换模块,用于当加载录音线程进行系统的内置录音时,将所述系统的声音输出路径切换到虚拟声卡的虚拟扬声器,将所述系统的录音路径切换到所述虚拟声卡的虚拟麦克风;
录音模块,用于将写入所述虚拟扬声器的文件节点的音频数据返回至所述虚拟麦克风的文件节点,并传输至所述录音线程以进行所述系统的内置录音。
进一步优选地,所述录音模块还用于:
当所述虚拟扬声器虚拟播放所述系统内部的音频数据后,通过所述虚拟麦克风读取所述音频数据,并保存至所述虚拟麦克风的文件节点;
将所述虚拟麦克风的文件节点中音频数据传输至所述虚拟声卡的HAL层,并通过所述虚拟声卡的HAL层返回所述音频数据至所述录音线程。
一种电子设备,包括:处理器;以及,存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行所述内置录音方法。
一种存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现所述内置录音方法所执行的操作。
本发明提供的一种内置录音方法、装置、电子设备和存储介质,至少具有以下有益效果:
1)通过实现虚拟声卡驱动,生成虚拟扬声器和虚拟麦克风,当录制系统内部声音时,将系统的音频路径切换到虚拟扬声器和虚拟麦克风,使得用录音APK录音的时候,实现了通过虚拟声卡进行无损录制。
2)虚拟声卡对录音APK来说是透明的,并且兼容高通和MTK平台,移植性强,兼容性强。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细说明:
图1是本发明中一种内置录音方法的一个实施例的流程示意图;
图2是本发明中一种内置录音方法的另一个实施例的流程示意图;
图3是本发明中内置录音方法数据层的示意图;
图4是本发明中一种内置录音装置的一个实施例的示意图;
图5是本发明中一种电子设备的结构示意图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在本文中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
另外,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
本发明提供一种内置录音方法的一个实施例,如图1所示,包括:
S100当加载录音线程进行系统的内置录音时,将所述系统的声音输出路径切换到虚拟声卡的虚拟扬声器,将所述系统的录音路径切换到所述虚拟声卡的虚拟麦克风。
具体的,系统包括安卓系统,当安卓系统的应用程序需要录制安卓系统声音的时候,调用AudioRecord开始录音线程进行数据读取,AudioPolicy将当前系统声音输出路径切换到虚拟扬声器,当前系统录音路径切换到虚拟麦克风。
其中,AudioPolicy:负责音频设备的切换。AudioRecord是Android SDK提供了一套音频采集的API,AudioRecord接近底层,能够更加自由灵活地控制,可以得到原始的一帧帧PCM音频数据。
S200将写入所述虚拟扬声器的文件节点的音频数据返回至所述虚拟麦克风的文件节点,并传输至所述录音线程以进行所述系统的内置录音。
具体的,安卓系统声音通过虚拟声卡的HAL层将音频数据写入虚拟扬声器设备节点,虚拟声卡驱动将音频数据返回给虚拟麦克风设备节点,这样通过HAL层音频数据返回给AudioRecord线程。
其中,HAL:硬件抽象层,负责音频设备的的交互,由AudioFlinger直接调用。
示例性的,一般来说,AudioRecord线程首先要获取权限,初始化获取每一帧流的Size,初始化音频录制AudioRecord,当HAL层将音频数据返回至AudioRecord线程,开始录制与保存录制音频文件,停止录制,给音频文件添加头部信息,并且转换格式成wav,释放AudioRecord,录制流程完毕。
在本实施例中,通过虚拟声卡完成音频数据的环回处理,以实现系统内部声音的无损录制。
本发明提供一种内置录音方法的另一个实施例,如图2~3所示,包括:
S001驱动虚拟声卡,以生成所述虚拟扬声器和所述虚拟麦克风,并创建所述虚拟扬声器的文件节点和所述虚拟麦克风的文件节点。
具体的,在通过虚拟声卡实现无损录制之前,需要在安卓系统的内核,通过实现虚拟声卡驱动,生成虚拟扬声器和虚拟麦克风,往往虚拟扬声器写入的音频数据可以通过虚拟麦克风实时读取出来。虚拟扬声器和虚拟麦克风的文件节点可以用于存储音频数据。
示例性的,生成虚拟声卡,其中:
/dev/snd/pcmC0D0p为虚拟扬声器对应的设备文件节点。
/dev/snd/pcmC0D1c为虚拟麦克风对应的设备文件节点。
S002建立所述虚拟声卡的HAL层,所述HAL层用于支持音频数据写入所述虚拟扬声器以及从所述虚拟麦克风进行所述音频数据的读取。
具体的,还需要实现虚拟声卡HAL层,所谓HAL层,Hardware Abstract Layer,即硬件抽象层。它作为硬件抽象层,将操作系统的其余部分表示为抽象的硬件设备,特别是去除了真正硬件所富含的瑕疵和特质。这些设备表现为操作系统的其它部分和设备可以使用的独立于机器的服务的形式(函数调用和宏)。通过使用HAL服务和间接硬件寻址,当移植到新的硬件上时,驱动程序和核心只需做很少的改动。
它可以支持音频数据写入虚拟扬声器,以及从虚拟麦克风进行音频数据的读取。
示例性的,音频HAL文件:/vendor/lib/hw/audio.aloop.default.so。
S003将所述虚拟声卡的配置文件添加入所述系统的音频配置文件。
具体的,AudioPolicy添加虚拟声卡Policy Conf文件,即虚拟声卡配置文件:/vendor/etc/aloop_audio_policy_configuration.xml。
示例性的,AudioPolicy加载虚拟声卡配置文件,具体可以包括:
<!--Aloop Audio HAL-->
<xi:include
href="/vendor/etc/aloop_audio_policy_configuration.xml"/>。
S004当所述系统启动时,根据所述音频配置文件加载所述虚拟扬声器和所述虚拟麦克风。
具体的,当安卓系统启动时,比如带有安卓系统的移动终端开机时,会根据AudioPolicy加载虚拟扬声器和虚拟麦克风。
S100当加载录音线程进行系统的内置录音时,将所述系统的声音输出路径切换到虚拟声卡的虚拟扬声器,将所述系统的录音路径切换到所述虚拟声卡的虚拟麦克风,具体包括步骤:
通过调用所述音频配置文件加载录音线程读取所述系统内部的音频数据;基于所述音频配置文件将所述系统的声音输出路径切换到所述虚拟扬声器,并将所述系统的录音路径切换到所述虚拟麦克风。
具体的,系统包括安卓系统,当安卓系统的应用程序需要录制安卓系统声音的时候,调用AudioRecord开始录音线程进行数据读取,AudioPolicy将当前系统声音输出路径切换到虚拟扬声器,当前系统录音路径切换到虚拟麦克风。
其中,AudioPolicy:负责音频设备的切换。
示例性的,音频路径切换具体可以包括步骤:
设置audio.aloop_input.enable=1,即切换到虚拟麦克风;
设置audio.aloop_output.enable=1,即切换到虚拟扬声器。
示例性的,声音源程序即音乐播放器播放声音后,将声音送到虚拟声卡的音频输出端,虚拟声卡驱动程序直接将声音传到虚拟声卡的音频输入端。
优选地,在所述将写入所述虚拟扬声器的文件节点的音频数据返回至所述虚拟麦克风的文件节点,并传输至所述录音线程以进行所述系统的内置录音之前,包括步骤:
当所述系统的声音输出路径切换到所述虚拟扬声器,并将所述系统的录音路径切换到所述虚拟麦克风后,通过所述虚拟声卡的HAL层获取所述系统内部的音频数据;将所述音频数据通过所述虚拟声卡的HAL层传输至所述虚拟扬声器的文件节点。
S200将写入所述虚拟扬声器的文件节点的音频数据返回至所述虚拟麦克风的文件节点,并传输至所述录音线程以进行所述系统的内置录音,包括步骤:
当所述虚拟扬声器虚拟播放所述系统内部的音频数据后,通过所述虚拟麦克风读取所述音频数据,并保存至所述虚拟麦克风的文件节点。
将所述虚拟麦克风的文件节点中音频数据传输至所述虚拟声卡的HAL层,并通过所述虚拟声卡的HAL层返回所述音频数据至所述录音线程。
具体的,安卓系统声音通过虚拟声卡的HAL层将音频数据写入虚拟扬声器设备节点,虚拟声卡驱动将音频数据返回给虚拟麦克风设备节点,这样通过HAL层音频数据返回给AudioRecord线程。
示例性的,本实施例提供一种内置录音方法,具体可以包括步骤:
步骤一,在内核实现虚拟声卡驱动,创建虚拟扬声器和虚拟麦克风对应的文件节点。步骤二,实现虚拟声卡HAL层,支持音频数据写入虚拟扬声器,从虚拟麦克风进行音频数据的读取。步骤三,AudioPolicy添加虚拟声卡Policy Conf文件。步骤四,使用时,系统启动,会根据AudioPolicy加载虚拟扬声器和虚拟麦克风。步骤五,应用程序需要录制系统声音的时候,调用AudioRecord开始录音线程进行数据读取,AudioPolicy将当前系统声音输出路径切换到虚拟扬声器,当前系统录音路径切换到虚拟麦克风。系统声音通过HAL层将音频数据写入虚拟扬声器设备节点,虚拟声卡驱动将音频数据返回给虚拟麦克风设备节点,这样通过HAL层音频数据返回给AudioRecord线程。
在实际场景中,应用程序需要录制系统声音的时候,调用AudioRecord开始录音线程进行数据读取,AudioPolicy将当前系统声音输出路径切换到虚拟扬声器,当前系统录音路径切换到虚拟麦克风。当音乐播放器发出声音后,安卓系统中负责音频数据的处理和传输的AudioFlinger接收并传输音频资源至虚拟声卡HAL,通过虚拟声卡HAL传输音频资源至虚拟声卡的音频输出端即虚拟扬声器中,虚拟扬声器在虚拟声卡驱动下进行虚拟播放声音,此过程并不会发出真实声音,只是使得虚拟麦克风可以读取此音频资源,并返回至虚拟声卡HAL,实现音频资源的无损收集,并通过虚拟声卡HAL将无损的音频资源传输至AudioFlinger,反馈至录音APK,实现安卓系统的无损内置录音。
在本实施例中,主要通过实现虚拟声卡驱动,生成虚拟扬声器和虚拟麦克风,往虚拟扬声器写入的音频数据可以通过虚拟麦克风实时读取出来。当要录制系统内部声音时,将系统的音频路径切换到虚拟扬声器和虚拟麦克风,这样用录音APK录音的时候,通过虚拟声卡进行无损录制。同时,虚拟声卡对录音APK来说是透明的,并且兼容高通和MTK平台,移植性强,兼容性强。
本发明提供一种内置录音装置的一个实施例,如图4所示,包括:
切换模块401,用于当加载录音线程进行系统的内置录音时,将所述系统的声音输出路径切换到虚拟声卡的虚拟扬声器,将所述系统的录音路径切换到所述虚拟声卡的虚拟麦克风。
录音模块402,用于将写入所述虚拟扬声器的文件节点的音频数据返回至所述虚拟麦克风的文件节点,并传输至所述录音线程以进行所述系统的内置录音。
示例性的,通过该装置可以进行以下步骤:
步骤一,生成虚拟声卡:
/dev/snd/pcmC0D0p:虚拟扬声器对应的设备文件节点。
/dev/snd/pcmC0D1c:虚拟麦克风对应的设备文件节点。
步骤二,音频HAL文件:
/vendor/lib/hw/audio.aloop.default.so。
步骤三,虚拟声卡配置文件:
/vendor/etc/aloop_audio_policy_configuration.xml。
AudioPolicy加载虚拟声卡配置文件:
<!--Aloop Audio HAL-->
<xi:includehref="/vendor/etc/aloop_audio_policy_configuration.xml"/>。
步骤四,音频路径切换:
设置audio.aloop_input.enable=1切换到虚拟麦克风。
设置audio.aloop_output.enable=1切换到虚拟扬声器。
优选地,所述录音模块402还用于:
当所述虚拟扬声器虚拟播放所述系统内部的音频数据后,通过所述虚拟麦克风读取所述音频数据,并保存至所述虚拟麦克风的文件节点。
将所述虚拟麦克风的文件节点中音频数据传输至所述虚拟声卡的HAL层,并通过所述虚拟声卡的HAL层返回所述音频数据至所述录音线程。
另一方面,如图5所示,本发明提供一种电子设备100,包括处理器110、存储器120,其中,存储器120,用于存放计算机程序121;处理器110,用于执行存储器120上所存放的计算机程序121,实现上述所对应方法实施例中的方法。
所述电子设备100可以为桌上型计算机、笔记本、掌上电脑、平板型计算机、手机、人机交互屏等设备。所述电子设备100可包括,但不仅限于处理器110、存储器120。本领域技术人员可以理解,图5仅仅是电子设备100的示例,并不构成对电子设备100的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,示例性的:电子设备100还可以包括输入/输出接口、显示设备、网络接入设备、通信总线、通信接口等。通信接口和通信总线,还可以包括输入/输出接口,其中,处理器110、存储器120、输入/输出接口和通信接口通过通信总线完成相互间的通信。该存储器120存储有计算机程序121,该处理器110用于执行存储器120上所存放的计算机程序121,实现上述所对应方法实施例中的方法。
所述处理器110可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器120可以是所述电子设备100的内部存储单元,示例性的:
电子设备的硬盘或内存。所述存储器也可以是所述电子设备的外部存储设备,示例性的:所述电子设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器120还可以既包括所述电子设备100的内部存储单元也包括外部存储设备。所述存储器120用于存储所述计算机程序121以及所述电子设备100所需要的其他程序和数据。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。
通信总线是连接所描述的元素的电路并且在这些元素之间实现传输。示例性的,处理器110通过通信总线从其它元素接收到命令,解密接收到的命令,根据解密的命令执行计算或数据处理。存储器120可以包括程序模块,示例性的,内核(kernel),中间件(middleware),应用程序编程接口(Application Programming Interface,API)和应用。该程序模块可以是有软件、固件或硬件、或其中的至少两种组成。输入/输出接口转发用户通过输入/输出接口(示例性的,感应器、键盘、触摸屏)输入的命令或数据。通信接口将所述电子设备100与其它网络设备、用户设备、网络进行连接。示例性的,通信接口可以通过有线或无线连接到网络以连接到外部其它的网络设备或用户设备。无线通信可以包括以下至少一种:无线保真(WiFi),蓝牙(BT),近距离无线通信技术(NFC),全球卫星定位系统(GPS)和蜂窝通信等等。有线通信可以包括以下至少一种:通用串行总线(USB),高清晰度多媒体接口(HDMI),异步传输标准接口(RS-232)等等。网络可以是电信网络和通信网络。通信网络可以为计算机网络、因特网、物联网、电话网络。电子设备100可以通过通信接口连接网络,电子设备100和其它网络设备通信所用的协议可以被应用、应用程序编程接口(API)、中间件、内核和通信接口至少一个支持。
另一方面,本发明提供一种存储介质,所述存储介质中存储有至少一条指令,指令由处理器加载并执行以实现上述法对应实施例所执行的操作。示例性的,存储介质可以是只读内存(ROM)、随机存取存储器(RAM)、只读光盘(CD-ROM)、磁带、软盘和光数据存储设备等。
它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述或记载的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其他的方式实现。示例性的,以上所描述的装置/电子设备实施例仅仅是示意性的,示例性的,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,示例性的,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性、机械或其他的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可能集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序121发送指令给相关的硬件完成,所述的计算机程序121可存储于一存储介质中,该计算机程序121在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序121可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述存储介质可以包括:能够携带所述计算机程序121的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,示例性的,在某些司法管辖区,根据立法和专利实践,计算机可读的存储介质不包括电载波信号和电信信号。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种内置录音方法,其特征在于,包括:
当加载录音线程进行系统的内置录音时,将所述系统的声音输出路径切换到虚拟声卡的虚拟扬声器,将所述系统的录音路径切换到所述虚拟声卡的虚拟麦克风;
将写入所述虚拟扬声器的文件节点的音频数据返回至所述虚拟麦克风的文件节点,并传输至所述录音线程以进行所述系统的内置录音。
2.根据权利要求1所述内置录音方法,其特征在于,在所述当加载录音线程进行系统的内置录音时,将所述系统的声音输出路径切换到虚拟声卡的虚拟扬声器,将所述系统的录音路径切换到所述虚拟声卡的虚拟麦克风之前,还包括步骤:
驱动虚拟声卡,以生成所述虚拟扬声器和所述虚拟麦克风,并创建所述虚拟扬声器的文件节点和所述虚拟麦克风的文件节点;
建立所述虚拟声卡的HAL层,所述HAL层用于支持音频数据写入所述虚拟扬声器以及从所述虚拟麦克风进行所述音频数据的读取;
将所述虚拟声卡的配置文件添加入所述系统的音频配置文件。
3.根据权利要求2所述内置录音方法,其特征在于,在所述当加载录音线程进行系统的内置录音时,将所述系统的声音输出路径切换到虚拟声卡的虚拟扬声器,将所述系统的录音路径切换到所述虚拟声卡的虚拟麦克风之前,还包括步骤:
当所述系统启动时,根据所述音频配置文件加载所述虚拟扬声器和所述虚拟麦克风。
4.根据权利要求3所述内置录音方法,其特征在于,所述当加载录音线程进行系统的内置录音时,将所述系统的声音输出路径切换到虚拟声卡的虚拟扬声器,将所述系统的录音路径切换到所述虚拟声卡的虚拟麦克风,包括步骤:
通过调用所述音频配置文件加载录音线程读取所述系统内部的音频数据;
基于所述音频配置文件将所述系统的声音输出路径切换到所述虚拟扬声器,并将所述系统的录音路径切换到所述虚拟麦克风。
5.根据权利要求2所述内置录音方法,其特征在于,在所述将写入所述虚拟扬声器的文件节点的音频数据返回至所述虚拟麦克风的文件节点,并传输至所述录音线程以进行所述系统的内置录音之前,包括步骤:
当所述系统的声音输出路径切换到所述虚拟扬声器,并将所述系统的录音路径切换到所述虚拟麦克风后,通过所述虚拟声卡的HAL层获取所述系统内部的音频数据;
将所述音频数据通过所述虚拟声卡的HAL层传输至所述虚拟扬声器的文件节点。
6.根据权利要求2~5中任一项所述内置录音方法,其特征在于,所述将写入所述虚拟扬声器的文件节点的音频数据返回至所述虚拟麦克风的文件节点,并传输至所述录音线程以进行所述系统的内置录音,包括步骤:
当所述虚拟扬声器虚拟播放所述系统内部的音频数据后,通过所述虚拟麦克风读取所述音频数据,并保存至所述虚拟麦克风的文件节点;
将所述虚拟麦克风的文件节点中音频数据传输至所述虚拟声卡的HAL层,并通过所述虚拟声卡的HAL层返回所述音频数据至所述录音线程。
7.一种内置录音装置,其特征在于,包括:
切换模块,用于当加载录音线程进行系统的内置录音时,将所述系统的声音输出路径切换到虚拟声卡的虚拟扬声器,将所述系统的录音路径切换到所述虚拟声卡的虚拟麦克风;
录音模块,用于将写入所述虚拟扬声器的文件节点的音频数据返回至所述虚拟麦克风的文件节点,并传输至所述录音线程以进行所述系统的内置录音。
8.根据权利要求7所述内置录音装置,其特征在于,所述录音模块还用于:
当所述虚拟扬声器虚拟播放所述系统内部的音频数据后,通过所述虚拟麦克风读取所述音频数据,并保存至所述虚拟麦克风的文件节点;
将所述虚拟麦克风的文件节点中音频数据传输至所述虚拟声卡的HAL层,并通过所述虚拟声卡的HAL层返回所述音频数据至所述录音线程。
9.一种电子设备,其特征在于,包括:
处理器;以及,存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据权利要求1~6中任一项所述内置录音方法。
10.一种存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1~6中任一项所述内置录音方法所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011551959.6A CN112579038B (zh) | 2020-12-24 | 2020-12-24 | 一种内置录音方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011551959.6A CN112579038B (zh) | 2020-12-24 | 2020-12-24 | 一种内置录音方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112579038A true CN112579038A (zh) | 2021-03-30 |
CN112579038B CN112579038B (zh) | 2023-05-23 |
Family
ID=75139567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011551959.6A Active CN112579038B (zh) | 2020-12-24 | 2020-12-24 | 一种内置录音方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579038B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113709404A (zh) * | 2021-10-09 | 2021-11-26 | 北京朝歌数码科技股份有限公司 | 同时录制hdmi in和麦克风音频的方法、装置及介质 |
CN114265573A (zh) * | 2021-12-24 | 2022-04-01 | 苏州智行畅联科技有限公司 | 一种音效控制方法、系统及中控车机 |
CN114879931A (zh) * | 2022-07-11 | 2022-08-09 | 南京芯驰半导体科技有限公司 | 一种支持多操作系统的板载音频路径管理方法及系统 |
CN116682465A (zh) * | 2022-10-31 | 2023-09-01 | 荣耀终端有限公司 | 记录内容的方法和电子设备 |
CN117389507A (zh) * | 2023-12-12 | 2024-01-12 | 荣耀终端有限公司 | 音频数据处理方法、电子设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120116752A1 (en) * | 2009-11-27 | 2012-05-10 | Vimicro Corporation | Audio data processing method and audio data processing system |
US9161006B1 (en) * | 2014-12-05 | 2015-10-13 | Kamcord, Inc. | Systems and methods for efficient screen capture |
CN107526634A (zh) * | 2017-08-31 | 2017-12-29 | 四川长虹电器股份有限公司 | 安卓设备上同时支持多个录音设备的方法 |
CN109471606A (zh) * | 2018-10-12 | 2019-03-15 | 深圳市小畅科技有限公司 | 一种安卓平台实时录音并发处理的方法 |
CN109830248A (zh) * | 2018-12-14 | 2019-05-31 | 维沃移动通信有限公司 | 一种音频录制方法及终端设备 |
CN109891503A (zh) * | 2016-10-25 | 2019-06-14 | 华为技术有限公司 | 声学场景回放方法和装置 |
CN110032354A (zh) * | 2018-01-12 | 2019-07-19 | 珠海全志科技股份有限公司 | 一种单路麦克风复用方法及装置 |
CN110196707A (zh) * | 2019-04-23 | 2019-09-03 | 珠海全志科技股份有限公司 | 一种采集参考信号的方法、装置、系统及程序产品 |
CN111459267A (zh) * | 2020-03-02 | 2020-07-28 | 杭州嘉澜创新科技有限公司 | 一种数据处理方法、第一服务器、第二服务器与存储介质 |
-
2020
- 2020-12-24 CN CN202011551959.6A patent/CN112579038B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120116752A1 (en) * | 2009-11-27 | 2012-05-10 | Vimicro Corporation | Audio data processing method and audio data processing system |
US9161006B1 (en) * | 2014-12-05 | 2015-10-13 | Kamcord, Inc. | Systems and methods for efficient screen capture |
CN109891503A (zh) * | 2016-10-25 | 2019-06-14 | 华为技术有限公司 | 声学场景回放方法和装置 |
CN107526634A (zh) * | 2017-08-31 | 2017-12-29 | 四川长虹电器股份有限公司 | 安卓设备上同时支持多个录音设备的方法 |
CN110032354A (zh) * | 2018-01-12 | 2019-07-19 | 珠海全志科技股份有限公司 | 一种单路麦克风复用方法及装置 |
CN109471606A (zh) * | 2018-10-12 | 2019-03-15 | 深圳市小畅科技有限公司 | 一种安卓平台实时录音并发处理的方法 |
CN109830248A (zh) * | 2018-12-14 | 2019-05-31 | 维沃移动通信有限公司 | 一种音频录制方法及终端设备 |
CN110196707A (zh) * | 2019-04-23 | 2019-09-03 | 珠海全志科技股份有限公司 | 一种采集参考信号的方法、装置、系统及程序产品 |
CN111459267A (zh) * | 2020-03-02 | 2020-07-28 | 杭州嘉澜创新科技有限公司 | 一种数据处理方法、第一服务器、第二服务器与存储介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113709404A (zh) * | 2021-10-09 | 2021-11-26 | 北京朝歌数码科技股份有限公司 | 同时录制hdmi in和麦克风音频的方法、装置及介质 |
CN114265573A (zh) * | 2021-12-24 | 2022-04-01 | 苏州智行畅联科技有限公司 | 一种音效控制方法、系统及中控车机 |
CN114265573B (zh) * | 2021-12-24 | 2023-08-29 | 苏州智行畅联科技有限公司 | 一种音效控制方法、系统及中控车机 |
CN114879931A (zh) * | 2022-07-11 | 2022-08-09 | 南京芯驰半导体科技有限公司 | 一种支持多操作系统的板载音频路径管理方法及系统 |
CN114879931B (zh) * | 2022-07-11 | 2022-11-22 | 南京芯驰半导体科技有限公司 | 一种支持多操作系统的板载音频路径管理方法及系统 |
CN116682465A (zh) * | 2022-10-31 | 2023-09-01 | 荣耀终端有限公司 | 记录内容的方法和电子设备 |
CN117389507A (zh) * | 2023-12-12 | 2024-01-12 | 荣耀终端有限公司 | 音频数据处理方法、电子设备及存储介质 |
CN117389507B (zh) * | 2023-12-12 | 2024-05-10 | 荣耀终端有限公司 | 音频数据处理方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112579038B (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112579038B (zh) | 一种内置录音方法、装置、电子设备和存储介质 | |
KR101375002B1 (ko) | Cdma와 gsm을 지원하는 듀얼모드 디지털 이동통신 단말기 | |
JP5616975B2 (ja) | アクセサリの電力管理 | |
US20100203830A1 (en) | Systems and Methods for Implementing Hands Free Operational Environments | |
CN113411793A (zh) | 一种蓝牙通信的方法及终端 | |
KR20110054609A (ko) | 블루투스 디바이스의 원격 제어 방법 및 장치 | |
US20200021772A1 (en) | Multimedia recording data obtaining method and terminal device | |
CN107329726A (zh) | Android系统中对输入的音频数据的处理方法和装置 | |
CN109660894B (zh) | 终端外设及音频信号的传输方法 | |
CN111371695B (zh) | 服务限流方法及装置 | |
CN105632541A (zh) | 一种录制手机输出音频的方法、系统及手机 | |
KR101391904B1 (ko) | 와이파이를 이용하여 무선 통신이 가능한 무선 스피커 | |
CN112527430A (zh) | 数据部署方法及相关装置 | |
KR20020050290A (ko) | 무선 전화를 위한 주변 메모리 디바이스 및 이들을구현하고 사용하는 방법 | |
WO2022042327A1 (zh) | 音频驱动马达的通路配置方法及设备 | |
CN114639392A (zh) | 音频处理方法、装置、电子设备及存储介质 | |
CN111556406B (zh) | 音频处理方法、音频处理装置及耳机 | |
US10776297B2 (en) | Method and device for operating trigger between electronic devices and jack accessory supporting the same | |
CN108363628A (zh) | 消息处理方法、装置、计算机终端和计算机可读存储介质 | |
JP2014195226A (ja) | ヘッドセット及びスマートデバイス | |
CN115022442B (zh) | 音频故障时间定位方法、电子设备及存储介质 | |
TWM578861U (zh) | Recording device | |
US11120810B2 (en) | Recording device | |
CN113692043B (zh) | 提示信息的同步方法及设备 | |
CN211296772U (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 |