当前位置: 首页 > 专利查询>浙江大学专利>正文

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

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

【技术实现步骤摘要】
一种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客户端通过网络连接到远程主机上之后,远程服务端主机上的音频驱动程序就会被切换成一个MicrosoftRDP音频驱动程序(MicrosoftRDPAudioDriver)。对于音频播放重定向,这个驱动的工作就是负责接管远程计算机上正在播放的音频,把它压缩之后通过网络传递到远程客户端,然后RDP客户端把这个音频网络流发送到本地声卡上输出;对于麦克风录音重定向,这个驱动的工作就是截获到麦克风设备所需要采集音频的相关参数信息通过网络发送给RDP客户端,然后RDP客户端将客户端本地麦克风设备上采集到的指定格式的录音数据通过网络发送到RDP服务端,最后RDP服务端将收到的这些数据传入到MicrosoftRDP音频驱动程序中,提供给上层获取录音数据的应用程序使用。但是,该方案适用于Windows操作系统,不适用于Android操作系统,且音频播放数据的截取和录音数据的导入完全不同。此外,Windows系统中远程桌面技术中所使用RDP协议是闭源的,其他人无法借鉴RDP协议中有关音频重定向的相关实现。Ubuntu系统基于PulseAudio系统服务的音频重定向方案:对于音频播放重定向,当服务端有应用程序播放音乐时,服务端远程桌面应用程序就将从PulseAudio系统服务中获取到当前系统混音好的音频数据,然后通过网络发送到远程桌面客户端,最后在远程桌面客户端的声卡设备上进行播放。对于麦克风录音重定向,服务端远程桌面应用程序监听系统服务中的录音事件消息,然后在监听到启动录音事件消息时,从PulseAudio系统服务中获取录音的相关参数信息并通过网络发送到远程桌面客户端,最后接收来自远程客户端本地麦克风设备所采集的录音音频数据,并将这些数据写入到PulseAudio系统服务的网络录音接口中,供上层的应用程序获取录音音频数据。但是,该方案适用于Ubuntu操作系统,不适用于Android操作系统,虽然这两个操作系统底层都是基于Linux内核,但是它们所使用的音频框架并不相同,Ubuntu系统所使用的PulseAudio,而Android系统使用的AudioFlinger,因此,这两种系统的音频重定向方案肯定不同。综上,上述方案在基于Android系统的远程桌面音频重定向场景中并不适用,主要是因为Android系统中并没有提供截取系统音频播放数据和注入录音采集音频数据的系统API接口提供给上层应用程序调用。
技术实现思路
在基于Android系统的远程桌面环境中,为解决服务端的音频播放的数据重定向到客户端进行播放和客户端麦克风设备采集的录音数据重定向到服务端使用的音频重定向问题,本专利技术提供了一种Android系统服务端、远程桌面音频重定向方法及系统,实现了音频播放重定向和麦克风录音重定向两种功能,满足远程桌面环境下的音频需求。本专利技术第一方面提供一种Android系统服务端,包括:应用层、系统框架层以及硬件抽象层,其中:所述的应用层包括音乐播放应用模块与录音应用模块,其中,所述的音乐播放应用模块用于音乐的播放,所述的录音应用模块用于音频的录制;所述的系统框架层包括AudioFinger进程和远程桌面服务端,其中,所示的AudioFinger进程用于对音乐文件进行解码混音处理,并将处理好的音频播放数据传送至硬件抽象层的音频硬件抽象层模块,或从硬件抽象层的音频硬件抽象层模块中获取麦克风采集到的音频数据,并向上传送到应用层的录音应用中;所述的远程桌面服务端用于将音频播放数据传送至远程桌面客户端、接收远程桌面客户端麦克风设备采集的录音数据以及对录音控制消息传送至远程桌面客户端;所述的硬件抽象层包括音频硬件抽象层模块,所述的音频硬件抽象层模块用于对音频播放数据、录音采集数据、录音控制消息进行处理,并通过匿名共享内存的方式与系统框架层的远程桌面服务端进行进程间通信。所述的AudioFinger进程包括:系统音频播放组件,用于对音乐文件进行解码混音处理,并将处理好的音频播放数据传送至硬件抽象层的音频硬件抽象层模块;系统录音采集组件,用于从硬件抽象层的音频硬件抽象层模块中获取麦克风采集到的音频数据,并向上传送到应用层的录音应用中。所述的音频硬件抽象层模块包括:音频播放数据截取模块,用于从系统硬件抽象层中写入声卡驱动的函数接口截取到音频播放数据,并将该音频播放数据经第一匿名共享内存传送至远程桌面服务端;第一匿名共享内存,是音频播放数据截取模块与远程桌面服务端中的音频播放重定向代理模块共享的内存,用于存储音频播放数据;录音控制消息捕获模块,用于捕获系统硬件抽象层中的录音控制消息,并将录音控制消息经第二匿名共享内存传递至远程桌面服务端;第二匿名共享内存,是录音控制消息捕获模块与远程桌面服务端中的录音控制消息代理模块共享的内存,用于存储录音控制消息;录音采集数据导入模块,用于将远程桌面服务端接收的录音采集数据经第三匿名共享内存导入至系统硬件抽象层的录音数据声卡驱动读取函数接口中;第三匿名共享内存,是录音数据导入模块与远程桌面服务端中的录音重定向代理模块共享的内存,用于存储录音数据。所述的远程桌面服务端包括:第一通信模块,用于远程桌面服务端与远程桌面客户端之间的网络通信;音频播放重定向代理模块,用于将远程桌面服务端解码的音频播放数据传送至远程桌面客户端;录音控制消息代理模块,用于将录音控制消息传送至远程桌面客户端;录音重定向代理模块,用于接收远程桌面客户端麦克风设备采集的录音数据。本专利技术第二方面提供了一种基于Android系统远程桌面的音频重定向系统,包括:本专利技术第一方面提供的Android系统服务端和远程桌面客户端,其中,本文档来自技高网
...
一种Android系统服务端、远程桌面音频重定向方法及系统

【技术保护点】
一种Android系统服务端,包括:应用层、系统框架层以及硬件抽象层,其特征在于,所述的应用层包括音乐播放应用模块与录音应用模块,其中,所述的音乐播放应用模块用于音乐的播放,所述的录音应用模块用于音频的录制;所述的系统框架层包括Audio Finger进程和远程桌面服务端,其中,所示的Audio Finger进程用于对音乐文件进行解码混音处理,并将处理好的音频播放数据传送至硬件抽象层的音频硬件抽象层模块,或从硬件抽象层的音频硬件抽象层模块中获取麦克风采集到的音频数据,并向上传送到应用层的录音应用中;所述的远程桌面服务端用于将音频播放数据传送至远程桌面客户端、接收远程桌面客户端麦克风设备采集的录音数据以及将录音控制消息传送至远程桌面客户端;所述的硬件抽象层包括音频硬件抽象层模块,所述的音频硬件抽象层模块用于对音频播放数据、录音采集数据、录音控制消息进行处理,并通过匿名共享内存的方式与系统框架层的远程桌面服务端进行进程间通信。

【技术特征摘要】
1.一种Android系统服务端,包括:应用层、系统框架层以及硬件抽象层,其特征在于,所述的应用层包括音乐播放应用模块与录音应用模块,其中,所述的音乐播放应用模块用于音乐的播放,所述的录音应用模块用于音频的录制;所述的系统框架层包括AudioFinger进程和远程桌面服务端,其中,所示的AudioFinger进程用于对音乐文件进行解码混音处理,并将处理好的音频播放数据传送至硬件抽象层的音频硬件抽象层模块,或从硬件抽象层的音频硬件抽象层模块中获取麦克风采集到的音频数据,并向上传送到应用层的录音应用中;所述的远程桌面服务端用于将音频播放数据传送至远程桌面客户端、接收远程桌面客户端麦克风设备采集的录音数据以及将录音控制消息传送至远程桌面客户端;所述的硬件抽象层包括音频硬件抽象层模块,所述的音频硬件抽象层模块用于对音频播放数据、录音采集数据、录音控制消息进行处理,并通过匿名共享内存的方式与系统框架层的远程桌面服务端进行进程间通信。2.根据权利要求1所述的Android系统服务端,其特征在于,所述的AudioFinger进程包括:系统音频播放组件,用于对音乐文件进行解码混音处理,并将处理好的音频播放数据传送至硬件抽象层的音频硬件抽象层模块;系统录音采集组件,用于从硬件抽象层的音频硬件抽象层模块中获取麦克风采集到的音频数据,并向上传送到应用层的录音应用中。3.根据权利要求1所述的Android系统服务端,其特征在于,所述的音频硬件抽象层模块包括:音频播放数据截取模块,用于从系统硬件抽象层中写入声卡驱动的函数接口截取到音频播放数据,并将该音频播放数据经第一匿名共享内存传送至远程桌面服务端;第一匿名共享内存,是音频播放数据截取模块与远程桌面服务端中的音频播放重定向代理模块共享的内存,用于存储音频播放数据;录音控制消息捕获模块,用于捕获系统硬件抽象层中的录音控制消息,并将录音控制消息经第二匿名共享内存传递至远程桌面服务端;第二匿名共享内存,是录音控制消息捕获模块与远程桌面服务端中的录音控制消息代理模块共享的内存,用于存储录音控制消息;录音采集数据导入模块,用于将远程桌面服务端接收的录音采集数据经第三匿名共享内存导入至系统硬件抽象层的录音数据声卡驱动读取函数接口中;第三匿名共享内存,是录音数据导入模块与远程桌面服务端中的录音重定向代理模块共享的内存,用于存储录音数据。4.根据权利要求1所述的Android系统服务端,其特征在于,所述的远程桌面服务端包括:第一通信模块,用于远程桌面服务端与远程桌面客户端之间的网络通信;音频播放重定向代理模块,用于将远程桌面服务端解码的音频播放数据传送至远程桌面客户端;录音控制消息代理模块,用于将录音控制消息传送至远程桌面客户端;录音重定向代理模块,用于接收远程桌面客户端麦克风设备采集的录音数据。5.根据权利要求1所述的Android系统服务端,其特征在于,所述的录音控制消息包括:录音启动消息、录音暂停消息以及录音采集相关参数消息。6.根据权利要求5所述的Android系统服务端,其特征在于,所述的录音采集相关参数消息包括:录音采集所需的采样率、采样通道数以及采样深度参数信息。7.一种基于Android系统远程桌面的音频重定向系统,其特征在于,包括:如权利要求1~6所述的Android系统服务端和远程桌面客户端,所述的远程桌面客户端包括:第二通信模块,用于远程桌面客户端与远程桌面服务端之间的网络通信;音频播放重定向处理模块,用于将远程桌面服务端发送的音频播放数据于远程桌面客户端本地的声卡上播放;录音控制消息处理模块,用于解析从远程桌面服务端发送的录音控制消息,并控制录音重定向处理模块是否发送麦克风设备采集的录音数据;录音重定向处理模块,用于根据录音控制消息处理模块发送的麦克风录音采集参数来采集录音数据,并将录音数据发送到远程桌面服务端。8.一种应用权利要求7所述系统的基于Android系统远程桌面的音频重定向方法,包括:音频播放重定向,音乐文件经AudioFlinger解码混音处理得到预处理音频数据,将预处理音频数据传送至音频硬件抽象层模块进行处理,得到音频播放数据,并将该音频播放数据传送至远程桌面服务端进行处理,远程桌面服务端将处理后的音频播放数据传送至远程桌面客户端,进行音频播放,完成音频播放重定向;录音重定...

【专利技术属性】
技术研发人员:陈文智王总辉姜鹏飞苏奎周璐颖
申请(专利权)人:浙江大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1