CN106961421A - 一种Android系统服务端、远程桌面音频重定向方法及系统 - Google Patents

一种Android系统服务端、远程桌面音频重定向方法及系统 Download PDF

Info

Publication number
CN106961421A
CN106961421A CN201710088408.2A CN201710088408A CN106961421A CN 106961421 A CN106961421 A CN 106961421A CN 201710088408 A CN201710088408 A CN 201710088408A CN 106961421 A CN106961421 A CN 106961421A
Authority
CN
China
Prior art keywords
recording
audio
module
remote desktop
data
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
Application number
CN201710088408.2A
Other languages
English (en)
Other versions
CN106961421B (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201710088408.2A priority Critical patent/CN106961421B/zh
Publication of CN106961421A publication Critical patent/CN106961421A/zh
Application granted granted Critical
Publication of CN106961421B publication Critical patent/CN106961421B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • H04N21/4394Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8106Monomedia components thereof involving special audio data, e.g. different tracks for different languages

Abstract

本发明公开了一种基于Android系统远程桌面的音频重定向系统,该系统包括:Android系统服务端和远程桌面客户端,其中,Android系统服务端包括:应用层的音乐播放应用与录音应用、系统框架层的Audio Finger进程、硬件抽象层的音频硬件抽象层模块以及系统框架层的远程桌面服务端;远程桌面客户端包括:第二通信模块、音频播放重定向处理模块、录音控制消息处理模块以及录音重定向处理模块,本发明还提供了一种利用该系统进行基于Android系统远程桌面的音频重定向方法,实现了音频播放重定向和麦克风录音重定向两种功能,满足远程桌面环境下的音频需求。

Description

一种Android系统服务端、远程桌面音频重定向方法及系统
技术领域
本发明涉及通信技术领域,尤其涉及一种Android系统服务端、远程桌面音频重定向方法及系统。
背景技术
传统的远程桌面技术主要是基于Windows、Linux、MacOS等PC操作系统。然而,随着智能移动设备的大规模应用和企业移动办公的普及,基于移动操作系统如Android系统的远程桌面有了越来越多的市场需求。相对于传统的远程桌面,基于Android系统的远程桌面给用户交付的是整个Android桌面,并且具有音频、摄像头等硬件设备的重定向功能。
在Android系统中,音频是一项非常重要的基础功能,所以在Android远程桌面环境中,实现音频重定向的功能对提高远程桌面产品的用户体验至关重要,其中音频重定向又可以细分为:音频播放重定向和麦克风录音重定向。音频播放重定向是指将远程桌面服务端Android系统中音频回放时产生的音频数据通过远程桌面服务端软件发送到远程桌面客户端上进行播放;麦克风录音重定向则是将远程桌面客户端麦克风设备上采集到的录音音频数据通过远程桌面客户端软件发送到远程桌面服务端中,然后供上层的录音应用程序所使用。
现有比较成熟的远程桌面技术方案,例如Microsoft的RDP,Citrix的ICA和TeamViewer,这些技术方案中远程桌面服务端使用的基本都是Windows、Linux、MacOS等PC操作系统,并且它们的音频重定向的技术主要通过调用远程桌面服务端操作系统现有所提供的API接口实现。
Windows系统中基于RDP协议的音频重定向方案:当RDP客户端通过网络连接到远程主机上之后,远程服务端主机上的音频驱动程序就会被切换成一个Microsoft RDP音频驱动程序(Microsoft RDP Audio Driver)。对于音频播放重定向,这个驱动的工作就是负责接管远程计算机上正在播放的音频,把它压缩之后通过网络传递到远程客户端,然后RDP客户端把这个音频网络流发送到本地声卡上输出;对于麦克风录音重定向,这个驱动的工作就是截获到麦克风设备所需要采集音频的相关参数信息通过网络发送给RDP客户端,然后RDP客户端将客户端本地麦克风设备上采集到的指定格式的录音数据通过网络发送到RDP服务端,最后RDP服务端将收到的这些数据传入到Microsoft RDP音频驱动程序中,提供给上层获取录音数据的应用程序使用。但是,该方案适用于Windows操作系统,不适用于Android操作系统,且音频播放数据的截取和录音数据的导入完全不同。此外,Windows系统中远程桌面技术中所使用RDP协议是闭源的,其他人无法借鉴RDP协议中有关音频重定向的相关实现。
Ubuntu系统基于PulseAudio系统服务的音频重定向方案:对于音频播放重定向,当服务端有应用程序播放音乐时,服务端远程桌面应用程序就将从PulseAudio系统服务中获取到当前系统混音好的音频数据,然后通过网络发送到远程桌面客户端,最后在远程桌面客户端的声卡设备上进行播放。对于麦克风录音重定向,服务端远程桌面应用程序监听系统服务中的录音事件消息,然后在监听到启动录音事件消息时,从PulseAudio系统服务中获取录音的相关参数信息并通过网络发送到远程桌面客户端,最后接收来自远程客户端本地麦克风设备所采集的录音音频数据,并将这些数据写入到PulseAudio系统服务的网络录音接口中,供上层的应用程序获取录音音频数据。但是,该方案适用于Ubuntu操作系统,不适用于Android操作系统,虽然这两个操作系统底层都是基于Linux内核,但是它们所使用的音频框架并不相同,Ubuntu系统所使用的PulseAudio,而Android系统使用的AudioFlinger,因此,这两种系统的音频重定向方案肯定不同。
综上,上述方案在基于Android系统的远程桌面音频重定向场景中并不适用,主要是因为Android系统中并没有提供截取系统音频播放数据和注入录音采集音频数据的系统API接口提供给上层应用程序调用。
发明内容
在基于Android系统的远程桌面环境中,为解决服务端的音频播放的数据重定向到客户端进行播放和客户端麦克风设备采集的录音数据重定向到服务端使用的音频重定向问题,本发明提供了一种Android系统服务端、远程桌面音频重定向方法及系统,实现了音频播放重定向和麦克风录音重定向两种功能,满足远程桌面环境下的音频需求。
本发明第一方面提供一种Android系统服务端,包括:应用层、系统框架层以及硬件抽象层,其中:
所述的应用层包括音乐播放应用模块与录音应用模块,其中,所述的音乐播放应用模块用于音乐的播放,所述的录音应用模块用于音频的录制;
所述的系统框架层包括Audio Finger进程和远程桌面服务端,其中,所示的AudioFinger进程用于对音乐文件进行解码混音处理,并将处理好的音频播放数据传送至硬件抽象层的音频硬件抽象层模块,或从硬件抽象层的音频硬件抽象层模块中获取麦克风采集到的音频数据,并向上传送到应用层的录音应用中;所述的远程桌面服务端用于将音频播放数据传送至远程桌面客户端、接收远程桌面客户端麦克风设备采集的录音数据以及对录音控制消息传送至远程桌面客户端;
所述的硬件抽象层包括音频硬件抽象层模块,所述的音频硬件抽象层模块用于对音频播放数据、录音采集数据、录音控制消息进行处理,并通过匿名共享内存的方式与系统框架层的远程桌面服务端进行进程间通信。
所述的Audio Finger进程包括:
系统音频播放组件,用于对音乐文件进行解码混音处理,并将处理好的音频播放数据传送至硬件抽象层的音频硬件抽象层模块;
系统录音采集组件,用于从硬件抽象层的音频硬件抽象层模块中获取麦克风采集到的音频数据,并向上传送到应用层的录音应用中。
所述的音频硬件抽象层模块包括:
音频播放数据截取模块,用于从系统硬件抽象层中写入声卡驱动的函数接口截取到音频播放数据,并将该音频播放数据经第一匿名共享内存传送至远程桌面服务端;
第一匿名共享内存,是音频播放数据截取模块与远程桌面服务端中的音频播放重定向代理模块共享的内存,用于存储音频播放数据;
录音控制消息捕获模块,用于捕获系统硬件抽象层中的录音控制消息,并将录音控制消息经第二匿名共享内存传递至远程桌面服务端;
第二匿名共享内存,是录音控制消息捕获模块与远程桌面服务端中的录音控制消息代理模块共享的内存,用于存储录音控制消息;
录音采集数据导入模块,用于将远程桌面服务端接收的录音采集数据经第三匿名共享内存导入至系统硬件抽象层的录音数据声卡驱动读取函数接口中;
第三匿名共享内存,是录音数据导入模块与远程桌面服务端中的录音重定向代理模块共享的内存,用于存储录音数据。
所述的远程桌面服务端包括:
第一通信模块,用于远程桌面服务端与远程桌面客户端之间的网络通信;
音频播放重定向代理模块,用于将远程桌面服务端解码的音频播放数据传送至远程桌面客户端;
录音控制消息代理模块,用于将录音控制消息传送至远程桌面客户端;
录音重定向代理模块,用于接收远程桌面客户端麦克风设备采集的录音数据。
本发明第二方面提供了一种基于Android系统远程桌面的音频重定向系统,包括:本发明第一方面提供的Android系统服务端和远程桌面客户端,其中,所述的远程桌面客户端包括:
第二通信模块,用于远程桌面客户端与远程桌面服务端之间的网络通信;
音频播放重定向处理模块,用于将远程桌面服务端发送的音频播放数据于远程桌面客户端本地的声卡上播放;
录音控制消息处理模块,用于解析从远程桌面服务端发送的录音控制消息,并控制录音重定向处理模块是否发送麦克风设备采集的录音数据;
录音重定向处理模块,用于根据录音控制消息处理模块发送的麦克风录音采集参数来采集录音数据,并将录音数据发送到远程桌面服务端。
所述的录音控制消息包括:录音启动消息、录音暂停消息以及录音采集相关参数消息。
所述的录音采集相关参数消息包括:录音采集所需的采样率、采样通道数以及采样深度参数信息。
本发明第三方面提供了一种基于Android系统远程桌面的音频重定向方法,具体包括:
音频播放重定向,音乐文件经AudioFlinger解码混音处理得到预处理音频数据,将预处理音频数据传送至音频硬件抽象层模块进行处理,得到音频播放数据,并将该音频播放数据传送至远程桌面服务端进行处理,远程桌面服务端将处理后的音频播放数据传送至远程桌面客户端,进行音频播放,完成音频播放重定向;
录音重定向,录音请求经Audio Flinger进程处理得到预处理录音请求,将预处理录音请求传送至音频硬件抽象层模块进行处理,得到录音控制消息,并将该录音控制消息传送至远程桌面服务端进行处理,远程桌面服务端将处理后的录音控制消息传送至远程桌面客户端,远程桌面客户端根据录音控制消息进行录音操作,得到录音数据,远程桌面客户端再将录音数据经远程桌面服务端处理后传送至音频硬件抽象层模块,进行录音数据的导入,完成录音重定向。
所述的音频播放重定向具体包括以下步骤:
(a-1)音乐播放应用开始播放音乐,音乐文件经AudioFlinger进程中的系统音频播放组件解码混音处理后,得到预处理音频数据,并将该预处理音频数据传送至音频硬件抽象层模块中的音频播放数据截取模块;
(a-2)音频播放数据截取模块截取预处理音频数据中的音频播放数据,并将该音频播放数据存放于音频播放数据截取模块与远程桌面服务端中的音频播放重定向代理模块共享的第一匿名共享内存中;
(a-3)音频播放重定向代理模块不断地从第一匿名共享内存中读取音频播放数据,并通过第一通信模块将音频播放数据发送到远程桌面客户端;
(a-4)远程桌面客户端将通过第二通信模块接收的音频播放数据传送至音频播放重定向处理模块,并使用远程桌面客户端本地音频播放系统进行处理;
(a-5)音频播放重定向处理模块将处理后的音频播放数据于本地声卡设备上播放出来,实现音频播放重定向。
所述的录音重定向具体包括以下步骤:
(b-1)录音应用开始录制音频,Audio Flinger进程中的系统录音采集组件对录音启动请求进行录音采集初始化处理,得到预处理录音启动请求,并将该预处理录音启动请求传送至音频硬件抽象层模块中的录音控制消息捕获模块;
(b-2)录音控制消息捕获模块通过轮询线程捕获到预处理录音启动请求,进行录音采集相关参数初始化处理,得到录音启动信息和录音采集相关参数信息,并将录音采集相关参数信息与录音启动信息存放于录音控制消息捕获模块与远程桌面服务端中的录音控制消息代理模块共享的第二匿名共享内存中;
(b-3)录音控制消息代理模块不断地从第二匿名共享内存中读取录音采集相关参数信息与录音启动信息,并通过第一通信模块将读取的录音采集相关参数信息与录音启动信息发送到远程桌面客户端;
(b-4)远程桌面客户端将通过第二通信模块接收的录音采集相关参数信息与录音启动信息传送至录音控制消息处理模块,并进行录音控制消息解析处理;
(b-5)录音控制消息处理模块将处理后的录音采集相关参数信息传送至录音重定向处理模块;
(b-6)录音重定向处理模块根据接收到的录音采集相关参数信息从麦克风设备中采集录音数据,并将该录音数据经第二通信模块传送至远程桌面服务端;
(b-7)远程桌面服务端将通过第一通信模块接收的录音数据传送至录音重定向代理模块进行数据缓存处理,并将处理后的录音数据存放于音频硬件抽象层模块中的录音数据导入模块与录音重定向代理模块共享的第三匿名共享内存中;
(b-8)录音数据导入模块不断地从第三匿名共享内存中读取录音数据,并将该录音数据写入到系统硬件抽象层的录音数据声卡驱动读取函数接口中;
(b-9)录音应用停止录制音频,Audio Flinger进程中的系统录音采集组件对暂停录音请求进行停止录音采集处理,并将处理好的暂停录音请求传送至音频硬件抽象层模块中的录音控制消息捕获模块;
(b-10)录音控制消息捕获模块捕获到暂停录音请求,并进行录音控制消息封装处理,得到录音暂停消息,并将该录音暂停消息存放于录音控制消息捕获模块与远程桌面服务端中的录音控制消息代理模块共享的第二匿名共享内存中;
(b-11)录音控制消息代理模块不断地从第二匿名共享内存中读取录音暂停信息,并通过第一通信模块将读取的录音暂停信息发送到远程桌面客户端;
(b-12)远程桌面客户端将通过第二通信模块接收的录音暂停信息传送至录音控制消息处理模块,并进行录音控制消息解析处理,
(b-13)录音控制消息处理模块将处理后的录音暂停信息传送至录音重定向处理模块;
(b-14)录音重定向处理模块根据接收到的录音暂停信息停止向远程桌面服务端发送采集到的录音数据,实现录音重定向。
本发明的技术方案基于Android系统远程桌面环境,实现了音频播放重定向和麦克风录音重定向两种功能,满足远程桌面环境下的音频需求。相比于其他桌面系统的音频重定向,本方案首先实现了Android移动操作系统平台下的音频重定向的功能,并且达到了低延时的效果。同时,本方案的技术实现对Android源码做了保证可移植性条件下的最小化修改,可以适配在不同版本和不同厂商定制的Android系统中。
附图说明
图1是本发明提供的Android系统服务端的实施例结构示意图;
图2是本发明提供的基于Android系统远程桌面的音频重定向系统的结构示意图;
图3是本发明提供的基于Android系统远程桌面的音频重定向方法中音频播放重定向方法实施例流程示意图;
图4是本发明提供的基于Android系统远程桌面的音频重定向方法中录音重定向方法实施例流程示意图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
图1所示的是本发明提供的Android系统服务端的实施例结构示意图。本实施例所描述的Android系统服务端,包括:应用层的音乐播放应用与录音应用、系统框架层的AudioFinger进程、硬件抽象层的音频硬件抽象层模块以及系统框架层的远程桌面服务端。
其中,Audio Finger进程包括:系统音频播放组件,用于对音乐文件进行解码混音处理,并将处理好的音频播放数据传送至硬件抽象层的音频硬件抽象层模块;系统录音采集组件,用于对应用层的录音请求进行处理,并将处理好的请求传送至音频硬件抽象层模块。
音频硬件抽象层模块包括:录音控制消息捕获模块,负责在系统硬件抽象层捕获到录音启动、暂停和录音采集相关参数等消息,然后传递给远程桌面服务端应用程序中的录音控制消息代理模块;录音数据导入模块,负责将远程桌面服务端应用程序中录音重定向代理模块接收到的录音数据导入到系统硬件抽象层的录音数据声卡驱动读取函数接口中;音频播放数据截取模块,负责从系统硬件抽象层中写入声卡驱动的函数接口截取到音频播放数据,然后传送给远程桌面服务端应用程序中音频播放重定向代理模块。
远程桌面服务端包括:第一通信模块,主要负责远程桌面服务端和远程桌面客户端之间的网络通信;录音控制消息代理模块,负责将录音启动、暂停和录音采集相关参数等消息传送到远程桌面客户端;录音重定向代理模块,负责接收从远程桌面客户端麦克风设备采集到的录音数据;音频播放重定向代理模块,负责将远程桌面服务端产生的音频播放数据传送到远程桌面客户端。
图2所示的是本发明提供的基于Android系统远程桌面的音频重定向系统的实施例结构示意图。本实施例所描述的基于Android系统远程桌面的音频重定向系统,包括图1所示的Android系统服务端和远程桌面客户端,Android系统服务端与远程桌面客户端通过网络连接,其中,远程桌面客户端,包括:第二通信模块,主要负责远程桌面客户端和远程桌面服务端之间的网络通信;录音控制消息处理模块,负责解析从远程桌面服务端发送过来的录音控制消息,并控制录音重定向处理模块是否发送麦克风设备采集到的录音数据;录音重定向处理模块,负责根据录音控制消息处理模块发送过来的麦克风录音采集参数来采集录音数据,并将录音数据发送到远程桌面服务端;音频播放重定向处理模块,负责将远程服务端发送过来的音频播放数据在远程桌面客户端本地的声卡上播放。
本发明提供的基于Android系统远程桌面的音频重定向方法,包括:音频播放重定向方法与录音重定向方法。
其中,图3所示的是本发明提供的基于Android系统远程桌面的音频播放重定向方法实施例流程示意图。本实施例所描述的基于Android系统远程桌面的音频播放重定向方法,具体包括以下步骤:
S101,音乐播放应用开始播放音乐,音乐文件经系统音频播放组件解码混音处理后,得到预处理音频数据,并将该预处理音频数据传送至音频播放数据截取模块。
S102,音频播放数据截取模块截取预处理音频数据中的音频播放数据,并将该音频播放数据存放于第一匿名共享内存中。
S103,音频播放重定向代理模块不断地从第一匿名共享内存中读取音频播放数据,并通过第一通信模块将音频播放数据发送到远程桌面客户端。
S104,远程桌面客户端将通过第二通信模块接收的音频播放数据传送至音频播放重定向处理模块,并使用远程桌面客户端本地音频播放系统进行处理。
S105,音频播放重定向处理模块将处理后的音频播放数据于本地声卡设备上播放出来,实现音频播放重定向。
图4是本发明提供的基于Android系统远程桌面的录音重定向方法实施例流程示意图。本实施例所描述的基于Android系统远程桌面的录音重定向方法,具体包括以下步骤:
S201,录音应用开始录制音频,系统录音采集组件对录音启动请求进行录音采集初始化处理,得到预处理录音启动请求,并将该预处理录音启动请求传送至录音控制消息捕获模块。
S202,录音控制消息捕获模块捕获到预处理录音启动请求,进行录音采集相关参数初始化处理,得到录音启动信息和录音采集相关参数信息,并将录音采集相关参数信息与录音启动信息存放于第二匿名共享内存中。
此处的录音采集相关参数消息包括:录音采集所需的采样率、采样通道数以及采样深度参数信息。
S203,录音控制消息代理模块不断地从第二匿名共享内存中读取录音采集相关参数信息与录音启动信息,并通过第一通信模块将读取的录音采集相关参数信息与录音启动信息发送到远程桌面客户端。
S204,远程桌面客户端将通过第二通信模块接收的录音采集相关参数信息与录音启动信息传送至录音控制消息处理模块,并进行录音控制消息解析处理。
S205,录音控制消息处理模块将处理后的录音采集相关参数信息传送至录音重定向处理模块。
S206,录音重定向处理模块根据接收到的录音采集相关参数信息从麦克风设备中采集录音数据,并将该录音数据经第二通信模块传送至远程桌面服务端。
S207,远程桌面服务端将通过第一通信模块接收的录音数据传送至录音重定向代理模块进行数据缓存处理,并将处理后的录音数据存放于第三匿名共享内存中。
S208,录音数据导入模块不断地从第三匿名共享内存中读取录音数据,并将该录音数据写入到系统硬件抽象层的录音数据声卡驱动读取函数接口中。
S209,录音应用停止录制音频,Audio Flinger进程中的系统录音采集组件对暂停录音请求进行停止录音采集处理,并将处理好的暂停录音请求传送至录音控制消息捕获模块。
S210,录音控制消息捕获模块捕获到暂停录音请求,并进行录音控制消息封装处理,得到录音暂停消息,并将该录音暂停消息存放于第二匿名共享内存中。
S211,录音控制消息代理模块不断地从第二匿名共享内存中读取录音暂停信息,并通过第一通信模块将读取的录音暂停信息发送到远程桌面客户端。
S212,远程桌面客户端将通过第二通信模块接收的录音暂停信息传送至录音控制消息处理模块,并进行录音控制消息解析处理。
S213,录音控制消息处理模块将处理后的录音暂停信息传送至录音重定向处理模块。
S214,录音重定向处理模块根据接收到的录音暂停信息停止向远程桌面服务端发送采集到的录音数据。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种Android系统服务端,包括:应用层、系统框架层以及硬件抽象层,其特征在于,
所述的应用层包括音乐播放应用模块与录音应用模块,其中,所述的音乐播放应用模块用于音乐的播放,所述的录音应用模块用于音频的录制;
所述的系统框架层包括Audio Finger进程和远程桌面服务端,其中,所示的AudioFinger进程用于对音乐文件进行解码混音处理,并将处理好的音频播放数据传送至硬件抽象层的音频硬件抽象层模块,或从硬件抽象层的音频硬件抽象层模块中获取麦克风采集到的音频数据,并向上传送到应用层的录音应用中;所述的远程桌面服务端用于将音频播放数据传送至远程桌面客户端、接收远程桌面客户端麦克风设备采集的录音数据以及将录音控制消息传送至远程桌面客户端;
所述的硬件抽象层包括音频硬件抽象层模块,所述的音频硬件抽象层模块用于对音频播放数据、录音采集数据、录音控制消息进行处理,并通过匿名共享内存的方式与系统框架层的远程桌面服务端进行进程间通信。
2.根据权利要求1所述的Android系统服务端,其特征在于,所述的Audio Finger进程包括:
系统音频播放组件,用于对音乐文件进行解码混音处理,并将处理好的音频播放数据传送至硬件抽象层的音频硬件抽象层模块;
系统录音采集组件,用于从硬件抽象层的音频硬件抽象层模块中获取麦克风采集到的音频数据,并向上传送到应用层的录音应用中。
3.根据权利要求1所述的Android系统服务端,其特征在于,所述的音频硬件抽象层模块包括:
音频播放数据截取模块,用于从系统硬件抽象层中写入声卡驱动的函数接口截取到音频播放数据,并将该音频播放数据经第一匿名共享内存传送至远程桌面服务端;
第一匿名共享内存,是音频播放数据截取模块与远程桌面服务端中的音频播放重定向代理模块共享的内存,用于存储音频播放数据;
录音控制消息捕获模块,用于捕获系统硬件抽象层中的录音控制消息,并将录音控制消息经第二匿名共享内存传递至远程桌面服务端;
第二匿名共享内存,是录音控制消息捕获模块与远程桌面服务端中的录音控制消息代理模块共享的内存,用于存储录音控制消息;
录音采集数据导入模块,用于将远程桌面服务端接收的录音采集数据经第三匿名共享内存导入至系统硬件抽象层的录音数据声卡驱动读取函数接口中;
第三匿名共享内存,是录音数据导入模块与远程桌面服务端中的录音重定向代理模块共享的内存,用于存储录音数据。
4.根据权利要求1所述的Android系统服务端,其特征在于,所述的远程桌面服务端包括:
第一通信模块,用于远程桌面服务端与远程桌面客户端之间的网络通信;
音频播放重定向代理模块,用于将远程桌面服务端解码的音频播放数据传送至远程桌面客户端;
录音控制消息代理模块,用于将录音控制消息传送至远程桌面客户端;
录音重定向代理模块,用于接收远程桌面客户端麦克风设备采集的录音数据。
5.根据权利要求1所述的Android系统服务端,其特征在于,所述的录音控制消息包括:录音启动消息、录音暂停消息以及录音采集相关参数消息。
6.根据权利要求5所述的Android系统服务端,其特征在于,所述的录音采集相关参数消息包括:录音采集所需的采样率、采样通道数以及采样深度参数信息。
7.一种基于Android系统远程桌面的音频重定向系统,其特征在于,包括:如权利要求1~6所述的Android系统服务端和远程桌面客户端,所述的远程桌面客户端包括:
第二通信模块,用于远程桌面客户端与远程桌面服务端之间的网络通信;
音频播放重定向处理模块,用于将远程桌面服务端发送的音频播放数据于远程桌面客户端本地的声卡上播放;
录音控制消息处理模块,用于解析从远程桌面服务端发送的录音控制消息,并控制录音重定向处理模块是否发送麦克风设备采集的录音数据;
录音重定向处理模块,用于根据录音控制消息处理模块发送的麦克风录音采集参数来采集录音数据,并将录音数据发送到远程桌面服务端。
8.一种应用权利要求7所述系统的基于Android系统远程桌面的音频重定向方法,包括:
音频播放重定向,音乐文件经AudioFlinger解码混音处理得到预处理音频数据,将预处理音频数据传送至音频硬件抽象层模块进行处理,得到音频播放数据,并将该音频播放数据传送至远程桌面服务端进行处理,远程桌面服务端将处理后的音频播放数据传送至远程桌面客户端,进行音频播放,完成音频播放重定向;
录音重定向,录音请求经Audio Flinger进程处理得到预处理录音请求,将预处理录音请求传送至音频硬件抽象层模块进行处理,得到录音控制消息,并将该录音控制消息传送至远程桌面服务端进行处理,远程桌面服务端将处理后的录音控制消息传送至远程桌面客户端,远程桌面客户端根据录音控制消息进行录音操作,得到录音数据,远程桌面客户端再将录音数据经远程桌面服务端处理后传送至音频硬件抽象层模块,进行录音数据的导入,完成录音重定向。
9.根据权利要求8所述的基于Android系统远程桌面的音频重定向方法,其特征在于,所述的音频播放重定向具体包括以下步骤:
(a-1)音乐播放应用开始播放音乐,音乐文件经AudioFlinger进程中的系统音频播放组件解码混音处理后,得到预处理音频数据,并将该预处理音频数据传送至音频硬件抽象层模块中的音频播放数据截取模块;
(a-2)音频播放数据截取模块截取预处理音频数据中的音频播放数据,并将该音频播放数据存放于音频播放数据截取模块与远程桌面服务端中的音频播放重定向代理模块共享的第一匿名共享内存中;
(a-3)音频播放重定向代理模块不断地从第一匿名共享内存中读取音频播放数据,并通过第一通信模块将音频播放数据发送到远程桌面客户端;
(a-4)远程桌面客户端将通过第二通信模块接收的音频播放数据传送至音频播放重定向处理模块,并使用远程桌面客户端本地音频播放系统进行处理;
(a-5)音频播放重定向处理模块将处理后的音频播放数据于本地声卡设备上播放出来,实现音频播放重定向。
10.根据权利要求8所述的基于Android系统远程桌面的音频重定向方法,其特征在于,所述的录音重定向具体包括以下步骤:
(b-1)录音应用开始录制音频,Audio Flinger进程中的系统录音采集组件对录音启动请求进行录音采集初始化处理,得到预处理录音启动请求,并将该预处理录音启动请求传送至音频硬件抽象层模块中的录音控制消息捕获模块;
(b-2)录音控制消息捕获模块通过轮询线程捕获到预处理录音启动请求,进行录音采集相关参数初始化处理,得到录音启动消息和录音采集相关参数信息,并将录音采集相关参数信息与录音启动消息存放于录音控制消息捕获模块与远程桌面服务端中的录音控制消息代理模块共享的第二匿名共享内存中;
(b-3)录音控制消息代理模块不断地从第二匿名共享内存中读取录音采集相关参数信息与录音启动信息,并通过第一通信模块将读取的录音采集相关参数信息与录音启动信息发送到远程桌面客户端;
(b-4)远程桌面客户端将通过第二通信模块接收的录音采集相关参数信息与录音启动信息传送至录音控制消息处理模块,并进行录音控制消息解析处理;
(b-5)录音控制消息处理模块将处理后的录音采集相关参数信息传送至录音重定向处理模块;
(b-6)录音重定向处理模块根据接收到的录音采集相关参数信息从麦克风设备中采集录音数据,并将该录音数据经第二通信模块传送至远程桌面服务端;
(b-7)远程桌面服务端将通过第一通信模块接收的录音数据传送至录音重定向代理模块进行数据缓存处理,并将处理后的录音数据存放于音频硬件抽象层模块中的录音数据导入模块与录音重定向代理模块共享的第三匿名共享内存中;
(b-8)录音数据导入模块不断地从第三匿名共享内存中读取录音数据,并将该录音数据写入到系统硬件抽象层的录音数据声卡驱动读取函数接口中;
(b-9)录音应用停止录制音频,Audio Flinger进程中的系统录音采集组件对暂停录音请求进行停止录音采集处理,并将处理好的暂停录音请求传送至音频硬件抽象层模块中的录音控制消息捕获模块;
(b-10)录音控制消息捕获模块捕获到暂停录音请求,并进行录音控制消息封装处理,得到录音暂停消息,并将该录音暂停消息存放于录音控制消息捕获模块与远程桌面服务端中的录音控制消息代理模块共享的第二匿名共享内存中;
(b-11)录音控制消息代理模块不断地从第二匿名共享内存中读取录音暂停信息,并通过第一通信模块将读取的录音暂停信息发送到远程桌面客户端;
(b-12)远程桌面客户端将通过第二通信模块接收的录音暂停信息传送至录音控制消息处理模块,并进行录音控制消息解析处理,
(b-13)录音控制消息处理模块将处理后的录音暂停信息传送至录音重定向处理模块;
(b-14)录音重定向处理模块根据接收到的录音暂停信息停止向远程桌面服务端发送采集到的录音数据。
CN201710088408.2A 2017-02-17 2017-02-17 一种Android系统服务端、远程桌面音频重定向方法及系统 Active CN106961421B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710088408.2A CN106961421B (zh) 2017-02-17 2017-02-17 一种Android系统服务端、远程桌面音频重定向方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710088408.2A CN106961421B (zh) 2017-02-17 2017-02-17 一种Android系统服务端、远程桌面音频重定向方法及系统

Publications (2)

Publication Number Publication Date
CN106961421A true CN106961421A (zh) 2017-07-18
CN106961421B CN106961421B (zh) 2019-10-18

Family

ID=59481561

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710088408.2A Active CN106961421B (zh) 2017-02-17 2017-02-17 一种Android系统服务端、远程桌面音频重定向方法及系统

Country Status (1)

Country Link
CN (1) CN106961421B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109378017A (zh) * 2018-09-26 2019-02-22 科大讯飞股份有限公司 一种录音方法、装置、音频系统、录音设备及存储介质
CN110944015A (zh) * 2019-12-19 2020-03-31 斑马网络技术有限公司 音频远程传输方法、装置、服务器及存储介质
CN111158632A (zh) * 2020-01-07 2020-05-15 山东超越数控电子股份有限公司 一种arm处理器下通用音频接口网络化的方法
CN111324576A (zh) * 2018-12-14 2020-06-23 深圳市优必选科技有限公司 一种录音数据保存的方法、装置、存储介质及终端设备
CN112206520A (zh) * 2020-10-21 2021-01-12 深圳市欢太科技有限公司 实时音频采集方法、系统、服务端、客户端及存储介质
CN112463897A (zh) * 2020-10-14 2021-03-09 麒麟软件有限公司 一种定位数据重定向的方法及系统
CN113132922A (zh) * 2020-01-15 2021-07-16 成都鼎桥通信技术有限公司 一种组呼通话提示音的播放方法和装置
WO2022017007A1 (zh) * 2020-07-23 2022-01-27 腾讯科技(深圳)有限公司 音频数据处理方法、服务器及存储介质
CN114172879A (zh) * 2021-11-17 2022-03-11 麒麟软件有限公司 基于安卓系统远程桌面的音频播放重定向系统和方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102387187A (zh) * 2011-07-28 2012-03-21 中兴通讯股份有限公司 服务器、客户端及利用其远程播放视频文件的方法和系统
CN103648017A (zh) * 2013-12-23 2014-03-19 佛山市兴知源数字技术有限公司 多平台一体化设备间的数据传输互联方法及装置
CN105516262A (zh) * 2015-11-27 2016-04-20 深圳市酷士多网络科技有限公司 应用程序远程操控方法及系统
CN105991700A (zh) * 2015-02-06 2016-10-05 百度在线网络技术(北京)有限公司 处理语音数据的方法、云端服务器系统和终端设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102387187A (zh) * 2011-07-28 2012-03-21 中兴通讯股份有限公司 服务器、客户端及利用其远程播放视频文件的方法和系统
CN103648017A (zh) * 2013-12-23 2014-03-19 佛山市兴知源数字技术有限公司 多平台一体化设备间的数据传输互联方法及装置
CN105991700A (zh) * 2015-02-06 2016-10-05 百度在线网络技术(北京)有限公司 处理语音数据的方法、云端服务器系统和终端设备
CN105516262A (zh) * 2015-11-27 2016-04-20 深圳市酷士多网络科技有限公司 应用程序远程操控方法及系统

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109378017A (zh) * 2018-09-26 2019-02-22 科大讯飞股份有限公司 一种录音方法、装置、音频系统、录音设备及存储介质
CN109378017B (zh) * 2018-09-26 2021-05-04 科大讯飞股份有限公司 一种录音方法、装置、音频系统、录音设备及存储介质
CN111324576A (zh) * 2018-12-14 2020-06-23 深圳市优必选科技有限公司 一种录音数据保存的方法、装置、存储介质及终端设备
CN111324576B (zh) * 2018-12-14 2023-08-08 深圳市优必选科技有限公司 一种录音数据保存的方法、装置、存储介质及终端设备
CN110944015A (zh) * 2019-12-19 2020-03-31 斑马网络技术有限公司 音频远程传输方法、装置、服务器及存储介质
CN110944015B (zh) * 2019-12-19 2022-05-03 斑马网络技术有限公司 音频远程传输方法、装置、服务器及存储介质
CN111158632A (zh) * 2020-01-07 2020-05-15 山东超越数控电子股份有限公司 一种arm处理器下通用音频接口网络化的方法
CN111158632B (zh) * 2020-01-07 2022-02-25 山东超越数控电子股份有限公司 一种arm处理器下通用音频接口网络化的方法
CN113132922A (zh) * 2020-01-15 2021-07-16 成都鼎桥通信技术有限公司 一种组呼通话提示音的播放方法和装置
CN113132922B (zh) * 2020-01-15 2022-09-09 成都鼎桥通信技术有限公司 一种组呼通话提示音的播放方法和装置
WO2022017007A1 (zh) * 2020-07-23 2022-01-27 腾讯科技(深圳)有限公司 音频数据处理方法、服务器及存储介质
JP7476327B2 (ja) 2020-07-23 2024-04-30 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド オーディオデータ処理方法、遅延時間取得方法、サーバ、及びコンピュータプログラム
CN112463897B (zh) * 2020-10-14 2023-06-02 麒麟软件有限公司 一种定位数据重定向的方法及系统
CN112463897A (zh) * 2020-10-14 2021-03-09 麒麟软件有限公司 一种定位数据重定向的方法及系统
CN112206520A (zh) * 2020-10-21 2021-01-12 深圳市欢太科技有限公司 实时音频采集方法、系统、服务端、客户端及存储介质
CN112206520B (zh) * 2020-10-21 2022-09-02 深圳市欢太科技有限公司 实时音频采集方法、系统、服务端、客户端及存储介质
CN114172879A (zh) * 2021-11-17 2022-03-11 麒麟软件有限公司 基于安卓系统远程桌面的音频播放重定向系统和方法

Also Published As

Publication number Publication date
CN106961421B (zh) 2019-10-18

Similar Documents

Publication Publication Date Title
CN106961421A (zh) 一种Android系统服务端、远程桌面音频重定向方法及系统
CN103905474B (zh) 一种信息共享方法、终端、服务器及系统
CN101582926B (zh) 实现远程媒体播放重定向的方法和系统
CN102111674B (zh) 一种移动终端播放在线视频的系统、方法及移动终端
CN101977218B (zh) 一种互联网播放文件转码方法和系统
US20080107045A1 (en) Queuing voip messages
CN101076135A (zh) 多媒体录制、回放方法及处理系统
CN101064890A (zh) 话音消息发送方法和支持话音消息发送的移动终端
CN105791892A (zh) 一种基于桌面云的视频重定向方法、云服务器及系统
CN105871800A (zh) 一种拉流控制的方法、装置及系统
CN102420815B (zh) Voip录音和播放系统及其方法
CN108235052A (zh) 基于ios可选择多音频通道硬件混音、采集及播放的方法
CN105681817A (zh) 一种智能终端视音频采集传输播放系统和方法
US8503622B2 (en) Selectively retrieving VoIP messages
CN101127780A (zh) 将在线视频进行下载、保存、再播放的方法及其在线视频网络的构造
CN108055595A (zh) 视频图像的重定向方法、计算机可读存储介质
CN104040995A (zh) 多媒体重定向方法以及多媒体服务器以及计算机系统
CN1819643A (zh) 一种数字电视的画面、伴音的截取方法及其应用
CN112839192A (zh) 基于浏览器的音视频通讯系统及方法
CN108337529A (zh) 一种基于ios系统的视频直播中界面的交互方法及直播客户端
CN105791964B (zh) 跨平台的媒体文件播放方法及系统
EP1804176A1 (en) Method and system for downloading streaming content
CN107809671A (zh) 一种虚拟化环境下视频重定向到服务器解码的方法和系统
CN109428803A (zh) 一种语音信息发送方法和系统
CN101207500B (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