云应用的音频采集方法及服务器与流程

文档序号:18225937发布日期:2019-07-19 23:26阅读:340来源:国知局
云应用的音频采集方法及服务器与流程

本发明实施方式涉及互联网技术领域,特别涉及云应用的音频采集方法及服务器。



背景技术:

随着智能终端的兴起普及,越来越多的用户习惯于用便携式智能终端进行娱乐游戏。然而,由于智能终端的硬件配置参差不齐,硬件能力表现不一,系统碎片化,差异化等因素,开发人员在开发应用程序时,就需要令应用程序具有较好的兼容性,技术挑战很大,因此云应用这个新兴技术领域应运而生。云应用是通过云计算和云存储系统来构建一个庞大的、超能的服务器端集群,在服务器端上运行各种应用程序,由服务器端将画面进行渲染并压缩,并将视频流实时的传回到用户的智能终端上,能够实现与在智能终端上运行应用程序一样的效果体验。这样,用户的智能终端上无需要下载、安装大容量的应用程序,免除了软件系统、设备硬件性能限制等问题。

但是,本专利申请的发明人发现现有技术至少存在如下问题:现有技术中云应用的音频采集需要深入到模拟器的虚拟硬件设备层进行搜集,技术要求高,兼容性差,一旦系统更新迭代,可能会带来新的修改需求,投入大。



技术实现要素:

本发明实施方式的目的在于提供一种云应用的音频采集方法及服务器,利用服务器系统自带的音频框架即可实现音频采集,并不需要借助模拟器的虚拟硬件设备层进行搜集,技术要求低、兼容性好,且易于推广使用。

为解决上述技术问题,本发明的实施方式提供了一种云应用的音频采集方法,应用于服务器端,包括:

运行应用程序,获取应用程序播放的n个音效;其中,一个音效对应一个音轨;n为大于0的自然数;

对n个音效进行解码,获取n路脉冲编码调制pcm(pulsecodemodulation,简称“pcm”)数据;

根据n路pcm数据,获取pcm音频数据流;

将pcm音频数据流传输至预先创建的后台服务进程,以供后台服务进程根据pcm音频数据流,获取音频流,并将音频流下发至终端进行播放。

本发明的实施方式还提供了一种服务器,包括:

至少一个处理器;以及,

与至少一个处理器通信连接的存储器;其中,

存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的云应用的音频采集方法。

本发明实施方式相对于现有技术而言,服务器端运行应用程序时,监控获取应用程序播放的一个或多个音效,并将采集到的音效转换成对应的pcm数据,以获取一路或多路pcm数据。其中,由于一个音效对应一个音轨,因此所获取的各路pcm数据即为各个音轨内的数据。而后,服务器端对所获取的一路或多路pcm数据进行处理,获取最终pcm音频数据流,并将pcm音频数据流传输至后台服务进程,以供后台服务进程获取音频流,并利用后台服务进程将音频流下发至终端进行播放,实现将音频流发送给终端的目的。通过这种方式,云应用端的音频采集利用系统自带的音频框架即可实现,并不需要借助模拟器的虚拟硬件设备层进行搜集,技术要求低、兼容性好,且易于推广使用。

另外,云应用端的音频采集方法还包括:获取终端的音频输出数据的格式信息;根据格式信息配置音频参数,并将音频参数传输至服务器端后台服务进程;由后台服务进程根据pcm音频数据流,获取音频流,具体包括:后台服务进程根据音频参数,对pcm音频数据流进行编码,获取音频流。通过这种方式,后台服务进程能够获取与终端的音频输出设备相匹配的音频流,实现针对于用户的定制化服务。

另外,将音频参数传输至后台服务进程,具体包括:利用预先创建的socket套接字,将音频参数传输至后台服务进程。这样,后台服务进程与服务器端系统在音频流的格式处理上有统一的音频参数,能够保证音频流最终的正确播放。

另外,将音频流下发至终端进行播放,具体包括:由后台服务进程创建流媒体rtsp服务端;将音频流发送至rtsp服务端,利用rtsp服务端将音频流下发至终端进行播放。这样,能够实现实况转播,尽可能地避免终端接收音频流的延迟,出现终端音频播放延迟的情况,用户体验好。

另外,n大于1;根据n路pcm数据,获取pcm音频数据流,具体包括:n路pcm数据混音处理后,放入写入模块写入,并从写入模块中拷贝获取pcm音频数据流。这样,提供了根据n路pcm数据,获取pcm音频数据流的一种具体实现形式,增加了本发明实施方式的可行性。

另外,将pcm音频数据流传输至预先创建的后台服务进程,具体包括:利用用户数据报udp协议,将pcm音频数据流传输至预先创建的后台服务进程,传输速度较快,实现简单,能够更好地保证传输数据的准确性。

另外,将pcm音频数据流传输至预先创建的后台服务进程后,还包括:由后台服务进程利用环形缓存方法缓存pcm音频数据流,不仅能够实现数据备份,而且能够尽可能地节省存储空间。

附图说明

一个或多个实施方式通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施方式的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是根据第一实施方式的云应用的音频采集方法的具体流程图;

图2是根据第二实施方式的云应用的音频采集方法的具体流程图;

图3是根据第四实施方式的服务器的示意图。

具体实施方式

为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种云应用的音频采集方法,应用于服务器端。本实施方式中的云应用以云游戏为例进行说明,具体流程如图1所示,步骤如下:

步骤101,运行应用程序,获取应用程序播放的n个音效。

具体地说,云游戏客户端通过互联网与云游戏服务器端连接,为用户提供跨平台游戏体验。这些客户平台包括低端pc机、电视机顶盒、移动终端、平板电脑、flash在线播放等终端。更具体地说,云游戏客户端向云游戏服务器端发送游戏启动指令,云游戏服务器端在接收到游戏启动指令时,运行应用程序,获取应用程序播放的n个音效。

步骤102,对n个音效进行解码,获取n路脉冲编码调制pcm数据。

本实施方式中,一个音效对应一个音轨,n为自然数。云游戏服务器端利用系统自带的音频框架,对n个音效进行解码,获取n路脉冲编码调制pcm数据。如,云游戏服务器端的系统可以为安卓系统,安卓系统利用管理和播放单一音频资源的类audiotrack对n个音效进行解码,audiotrack输出的就是一个个pcm数据,从而能够获取n路脉冲编码调制pcm数据。

步骤103,根据n路pcm数据,获取pcm音频数据流。

本实施方式中,云游戏服务器端判断n是否为1。如果n为1,则说明获取了1路pcm数据,此时云游戏服务器端直接根据该路pcm数据,获取pcm音频数据流。如果n不为1,则说明获取了多路pcm数据,此时云游戏服务器端将多路pcm数据进行混音,获取pcm音频数据流。如,n为2时,一路pcm数据为背景音乐的pcm数据,一路pcm数据为特效音的pcm数据,则云游戏服务器端将2路pcm数据进行混音,获取的pcm音频数据流则为叠加有特效音的背景音乐的pcm音频数据流。

具体地说,云游戏服务器端系统为安卓系统时,安卓系统可以将多路pcm音频数据流送到音频中枢audioflinger里进行audiomixer混音,在混音后,将混音得到的对象在播放线程playbackthread里通过写入模块threadloop_write写入,从写入模块threadloop_write中拷贝获取pcm音频数据流。

步骤104,将pcm音频数据流传输至预先创建的后台服务进程。

本实施方式中,后台服务进程可以在云游戏服务器端运行应用程序之初就创建,后台服务进程用以监听接收数据。在实际操作时,后台服务进程也可以在运行应用程序一段时间后创建,本实施方式中并不对后台服务进程创建的时机做任何限定。

具体地说,云游戏服务器端利用用户数据报udp协议,将pcm音频数据流传输至预先创建的后台服务进程,传输速率较快,实现更简单,且传输数据准确性能够得到更好的保证。

步骤105,由后台服务进程根据pcm音频数据流,获取音频流,并将音频流下发至终端进行播放。

具体地说,后台服务进程根据服务器端系统自动生成的音频参数,对pcm音频数据流进行编码,获取音频流,并将音频流下发至终端进行播放。更具体地说,云游戏客户端在发送游戏启动指令时,可以将音频硬件设备的信息一同发送给服务器端,以便于服务器端系统根据音频硬件设备的信息自动配置产生音频参数。

更具体地说,可以由后台服务进程创建流媒体rtsp服务端,将音频流发送至rtsp服务端,利用rtsp服务端将音频流下发至终端进行播放,从而能够实现实况转播,尽可能地避免终端接收音频流延迟,出现终端音频播放延迟的情况。

本发明的实施方式相对于现有技术而言,利用服务器端系统自带的音频框架进行音频采集,从而令云应用端的音频采集并不需要借助模拟器的虚拟硬件设备层进行搜集,技术要求低、兼容性好,且易于推广使用。并且,实现了一个后台服务进程进行音频流的生成与转发,实现了将音频流发送给终端的目的。本实施方式中虽然以云应用为云游戏为例作为说明,但是本实施方式并不对云应用做任何限定,在实际操作时,云应用可以为云视频、云音乐等,任何带有音效的应用均可以应用在本实施方式中。

本发明的第二实施方式涉及一种云应用的音频采集方法,具体流程如图2所示。第二实施方式在第一实施方式的基础上加以改进,主要改进之处在于:在本发明第二实施方式中,服务器端还配置与终端的音频输出设备相匹配的音频参数,能够为用户提供定制化服务。以下进行具体说明:

本实施方式中步骤201至步骤204与第一实施方式中步骤101至步骤104大致相同,为避免重复,在此不再赘述,以下仅对不同部分进行说明:

步骤205,获取终端的音频输出数据的格式信息。

具体地说,云游戏客户端可以在向云游戏服务器端发送游戏启动指令时,一同将音频输出数据的格式信息发送给云游戏服务器端。其中,终端的音频输出数据的格式信息可以由用户选择并输入。

步骤206,根据格式信息配置音频参数,并将音频参数传输至服务器端的后台服务进程。

具体地说,音频参数可以为采样率,格式,声道等。更具体地说,云游戏服务器端可以在开机启动时,预先创建的socket套接字,利用该socket套接字将音频参数传输至后台服务进程。这样,令后台服务进程与服务器端系统在音频流的格式处理上有一个统一的音频参数,能够保证音频流最终的正确播放。

步骤207,后台服务进程根据音频参数,对pcm音频数据流进行编码,获取音频流,并将音频流下发至终端进行播放。

本实施方式中,后台服务进程根据音频参数,对pcm音频数据流进行高级音频aac(advancedaudiocoding,简称:aac)编码,获取aac音频流。在实际操作时,后台服务进程也可以根据音频参数,对pcm音频数据流进行其他格式的编码,如,mp3格式、杜比ac3(audiocoding3,简称:ac3)格式、wma(windowsmediaaudio,简称:wma)格式等,来获取音频流。本实施方式中并不对后台服务进程根据音频参数,对pcm音频数据流进行编码的方式做任何限制。

本发明的实施方式相对于第一实施方式而言,终端能够参与、决定音频参数的配置,能实现针对于用户的定制化服务。并且,本实施方式中并不对步骤205至步骤207的执行时机做任何限定,在实际操作时,步骤205至步骤207即可以紧接着步骤201后执行,也可以在步骤201之前执行。

本发明第三实施方式涉及一种云应用的音频采集方法。第三实施方式在第一实施方式的基础上加以改进,主要改进之处在于:在本发明第三实施方式中,后台服务进程还对pcm音频数据流进行缓存。

具体地说,服务器端在将pcm音频数据流传输至预先创建的后台服务进程后,还由后台服务进程利用环形缓存方法缓存pcm音频数据流,从而不仅能够实现数据备份,而且能够节省存储空间。

本发明的实施方式相对于第一实施方式而言,能够在尽可能少地利用存储空间的前提下,对pcm音频数据流进行备份,能够降低pcm音频数据流丢失的风险,为终端能够获取音频流提供了保障。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明第五实施方式涉及一种服务器,如图3所示,包括至少一个处理器301;以及,与至少一个处理器301通信连接的存储器302。

其中,存储器302和处理器301采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器301和存储器302的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器301处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器301。

处理器301负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器302可以被用于存储处理器301在执行操作时所使用的数据。

本发明的实施方式相对于现有技术而言,利用服务器端系统自带的音频框架进行音频采集,从而令云应用端的音频采集并不需要借助模拟器的虚拟硬件设备层进行搜集,技术要求低、兼容性好,且易于推广使用。并且,实现了一个后台服务进程进行音频流的生成与转发,实现了将音频流发送给终端的目的。

本发明第五实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施方式。

本发明的实施方式相对于现有技术而言,利用服务器端系统自带的音频框架进行音频采集,从而令云应用端的音频采集并不需要借助模拟器的虚拟硬件设备层进行搜集,技术要求低、兼容性好,且易于推广使用。并且,实现了一个后台服务进程进行音频流的生成与转发,实现了将音频流发送给终端的目的。

即,本领域技术人员可以理解,实现上述实施方式方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施方式,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1