一种在语音聊天室中播放背景音乐的方法及移动终端
技术领域
本发明涉及移动互联网技术领域,尤其涉及一种在语音聊天室中播放背景音乐的方法及移动终端。
背景技术
近年来,随着手机技术的不断发展,智能手机已经逐渐占领手机市场。各种基于IOS平台、Android(安卓)平台的智能手机大量出现。随着移动互联网的发展与成熟,全面的信息化时代已经到来。基于移动互联网的语音聊天室能够为用户提供多人语音聊天服务,受到了用户的普遍欢迎。
用户在使用聊天室时,根据聊天室的运营,经常会有播放背景音乐的需求,而现行所有的聊天室都不具备这样的功能。用户不得不在移动终端外部再寻找其他音乐播放设备,而通过移动终端外部其他音乐播放设备为聊天室播放背景音乐的成本和环境门槛都比较高;并且从技术上说,难度也比较大,需要涉及到背景音乐的控制、压缩、抑噪、回声消除、用户语音的混音、实时传输等诸多方面的问题,技术壁垒多难度大,所以在现行的聊天室中均没有设置背景音乐功能。
发明内容
本发明要解决的技术问题是提供一种在语音聊天室中播放背景音乐的方法及移动终端,能够提高语音聊天室的用户体验。
为解决上述技术问题,本申请的一种在语音聊天室中播放背景音乐的方法,包括:
移动终端根据用户的选择读取背景音乐文件并进行解码,得到背景音乐数据;
所述移动终端采集用户的语音数据,将用户的语音数据与所述背景音乐数据进行混音,发送给语音聊天室服务器。
进一步地,所述方法还包括:
所述移动终端从语音聊天室服务器接收所加入的聊天室中的其他用户的语音数据,将接收到的其他用户的语音数据与所述背景音乐数据进行混音并播放。
进一步地,所述方法还包括:
所述移动终端在用户选择背景音乐文件后,通知所加入的聊天室中的其他用户的移动终端创建动态缓存,并且同时发送动态缓存的预取值。
进一步地,所述方法还包括:
所述移动终端采集用户的语音数据后,通过回声消除的方式消除录制的语音数据中所述移动终端自身播放的声音。
进一步地,一种在语音聊天室中播放背景音乐的方法,包括:
语音聊天室服务器根据用户的选择读取背景音乐文件并进行解码,得到背景音乐数据;
所述语音聊天室服务器接收聊天室中的用户发送的语音数据,针对同一聊天室中的每个发送用户将除该发送用户之外的其他用户发送的语音数据与所述背景音乐数据进行混音,并将混音数据发送给所述发送用户。
进一步地,一种移动终端,包括:解码单元、语音数据采集单元、混音单元和发送单元,其中:
所述解码单元,用于根据用户的选择读取背景音乐文件并进行解码,得到背景音乐数据;
所述语音数据采集单元,用于采集用户的语音数据;
所述混音单元,用于将所述语音数据采集单元采集的用户的语音数据与所述解码单元解码得到的背景音乐数据进行混音;
所述发送单元,用于将用户的语音数据与背景音乐数据的混音发送给语音聊天室服务器。
进一步地,还包括接收单元和播放单元,其中:
所述接收单元,用于从语音聊天室服务器接收移动终端所加入的聊天室中的其他用户的语音数据;
所述混音单元,还用于将所述接收单元接收到的其他用户的语音数据与所述背景音乐数据进行混音;
所述播放单元,用于播放所述其他用户的语音数据与所述背景音乐数据的混音。
进一步地,还包括缓存控制单元,其中:
所述缓存控制单元,用于在用户选择背景音乐文件后,通过所述发送单元通知移动终端所加入的聊天室中的其他用户的移动终端创建动态缓存,并且同时发送动态缓存的预取值。
进一步地,所述语音数据采集单元,还用于在采集用户的语音数据后,通过回声消除的方式消除录制的语音数据中所述移动终端自身播放的声音。
进一步地,一种语音聊天室服务器,包括:解码单元、数据接收单元、音频混音单元和数据发送单元,其中:
所述解码单元,用于根据用户的选择读取背景音乐文件并进行解码,得到背景音乐数据;
所述数据接收单元,用于接收聊天室中的用户发送的语音数据;
所述音频混音单元,用于针对同一聊天室中的每个发送用户将除该发送用户之外的其他用户发送的语音数据与所述背景音乐数据进行混音;
所述数据发送单元,用于将所述音频混音单元混音得到的混音数据发送给所述发送用户。
综上所述,本发明通过解码背景音乐文件得到背景音乐数据,将用户的语音数据与背景音乐数据进行混音,能够满足用户对在语音聊天室中使用背景音乐的诉求,用户无需再使用额外的音乐播放设备,极大的降低了用户的使用门槛,播放中可以灵活分开控制用户语音声量和背景音乐音量,用户也可以自主选择喜爱的本地音乐;聊天室的使用感受得到很大的提升,用户体验也得到了相应的改善。
附图说明
图1为本申请在语音聊天室中播放背景音乐的方法的流程图;
图2为本申请的开启背景音乐播放功能的界面的示意图;
图3本申请的背景音乐控制器的界面的示意图;
图4为本申请的选择背景音乐的曲目的界面的示意图;
图5为本申请的在播放背景音乐过程中显示背景音乐控制器的示意图;
图6为本申请的在播放背景音乐过程中收起背景音乐控制器的示意图;
图7为本申请的移动终端的架构图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示,本申请的在语音聊天室中播放背景音乐的方法,包括:
步骤101:移动终端根据用户的选择读取背景音乐文件并进行解码,得到背景音乐数据;
本申请为用户提供基于移动终端的聊天室背景音乐播放功能,为实现背景音乐播放功能,用户需要预先下载背景音乐文件。用户可以是创建聊天室的用户,也可以是加入到聊天室中的任一用户。在想要使用聊天室背景音乐功能时,由用户选择要使用的背景音乐,移动终端读取用户选择的背景音乐文件进行解码,得到背景音乐数据。
本申请中读取背景音乐文件进行解码,得到背景音乐数据,包括:分段读取背景音乐文件,对读取的背景音乐文件进行解码,并将解码得到的背景音乐数据缓存到伴奏缓存中。
由于解码背景音乐文件比较耗时,如背景音乐文件采用MP3文件,解码三分钟时长的MP3文件全部解码完成需要三秒钟左右,如果将背景音乐文件全部解码完成后,再进行背景音乐的播放,就会给用户带来不好体验,因此,本申请中对背景音乐文件进行分段解码,先解码得到预置长度的背景音乐数据,如预置长度设置为12800字节,解码12800字节只需要花20ms,解码预置长度的背景音乐数据后,即将用户的语音数据与背景音乐数据进行混音,发送给语音聊天室服务器。播放背景音乐的速度一定是慢于解码速度,因此先解码得到预置长度的背景音乐数据后就可以边解码边播放,这样就很好的解决了解码耗时的问题。用户可以在选择播放背景音乐功能后马上就可以听到播放的背景音乐。
如图2所示为开启背景音乐播放功能的界面,在聊天室主界面点击“房间工具”,通过选择“音乐”激活背景音乐播放功能。
如图3所示为背景音乐控制器的界面,在背景音乐播放功能被激活后,在主界面中会滑出背景音乐控制器,背景音乐控制器中包括:背景音乐模式退出、背景音乐模式最小化、音乐播放进度显示、循环模式控制、上一曲、、播放&暂停、下一曲、曲目选择、背景音量控制和音乐选择等。
如图4所示为选择曲目的界面,点击背景音乐控制器中的【曲目选择】,通过添加歌曲,将搜索本机上的音乐,并可以由用户选择性添加。除了系统默认音乐文件夹以外,还设置了主流的10款音乐播放器的音乐目录,更为方便用户。
点击所添加的歌曲,就可以进行背景音乐播放,如图5所示为控制器存在时的界面,图6为控制器收起时的界面,在背景音乐开启时,底部工具栏将有音柱的动画效果,来提示用户音乐正在播放。
背景音乐控制器中的背景音乐音量控制,将单独控制背景音乐的音量,用户可以时时根据需要进行调整,该音量调整不会影响用户语音的大小,与系统音量大小分离,控制更为灵活。
背景音乐控制器中的循环模式选择,可以单独控制歌曲的播放跳转,包括:顺序播放、随机播放和单曲循环等。
步骤102:移动终端采集用户的语音数据,将用户的语音数据与背景音乐数据进行混音,发送给语音聊天室服务器。
本申请中移动终端在采集到用户的语音数据后,还可以对语音数据进行抑制噪声等操作,以提高语音数据的质量。
移动终端在进行背景音乐数据和用户的语音数据的混音后,将混音数据发送给语音聊天室服务器。语音聊天室服务器在收到移动终端上传的混音数据后,将其与聊天室中其他用户的语音数据进行混音并转发。聊天室中的其他用户就可以听到背景音乐以及除自身之外的其他用户的语音数据。
语音聊天室服务器发送给聊天室中的用户听到的声音是除了自己之外的其他用户的声音,假如聊天室有ABC三个用户,语音聊天室服务器会将A发送的背景音乐数据与A的语音数据的混音数据与C的语音数据再进行混音发送给B;将A发送的背景音乐数据与A的语音数据的混音数据与B的语音数据再进行混音发送给C;将B和C的语音数据进行混音发送给A。
本申请中移动终端还从语音聊天室服务器接收所加入的聊天室中的其他用户的语音数据,将接收到的其他用户的语音数据与背景音乐数据进行混音并播放。为使开启背景音乐播放功能的用户也能够听到背景音乐,本申请中将背景音乐数据与移动终端接收到的所在聊天室中的其他用户的语音数据进行混音播放,使开启背景音乐播放功能的用户在收听其他用户的语音的同时收听背景音乐。
本申请中移动终端在用户选择背景音乐文件后,还通知所加入的聊天室中的其他用户的移动终端创建动态缓存,并且同时发送动态缓存的预取值。背景音乐播放和用户语音的最大的不同在于音乐的连续性,故播放背景音乐对网络的要求更高,否则就会出现断断续续的情况。为了解决接收者因为网络抖动导致的收听背景音乐断续的问题,移动终端在播放者开始播放背景音乐后,通知聊天室中的其他的成员创建动态缓存,并且同时发送动态缓存的预取值,从而更好地应对网络抖动。动态缓存的预取值可以设置为200ms,即需要缓冲200ms的数据才会开始播放背景音乐。即使出现网络抖动,可以先使用动态缓存存储的数据,这样播放背景音乐的时候不会出现断层,用户听起来也就不会有卡顿的问题。
本申请中移动终端采集用户的语音数据后,通过回声消除的方式消除录制的语音数据中移动终端自身播放的声音。移动终端在进行语音数据采集的过程中,由于移动设备在播放背景音乐数据与所在聊天室中的其他用户的语音数据的混音,如果将背景音乐数据与其他用户的语音连同本地用户的语音数据一同上传到语音聊天室服务器,分发给聊天室中的其他用户,会给其他用户造成极差的体验,因此本申请中移动终端消除所录制的语音数据中自身播放的声音,从所录制的语音数据中消除自身播放的声音后,得到用户的语音数据数据。
本申请提供的另一种在语音聊天室中播放背景音乐的方法,包括:
步骤a:语音聊天室服务器根据用户的选择读取背景音乐文件并进行解码,得到背景音乐数据;
步骤b:语音聊天室服务器接收聊天室中的用户发送的语音数据,针对同一聊天室中的每个发送用户将除该发送用户之外的其他用户发送的语音数据与所述背景音乐数据进行混音,并将混音数据发送给发送用户。
如图7所示,本申请还提供了一种移动终端,包括:解码单元、语音数据采集单元、混音单元和发送单元,其中:
解码单元,用于根据用户的选择读取背景音乐文件并进行解码,得到背景音乐数据;
语音数据采集单元,用于采集用户的语音数据;
混音单元,用于将语音数据采集单元采集的用户的语音数据与解码单元解码得到的背景音乐数据进行混音;
发送单元,用于将用户的语音数据与背景音乐数据的混音发送给语音聊天室服务器。
本申请还包括接收单元和播放单元,其中:
接收单元,用于从语音聊天室服务器接收移动终端所加入的聊天室中的其他用户的语音数据;
混音单元,还用于将接收单元接收到的其他用户的语音数据与背景音乐数据进行混音;
播放单元,用于播放其他用户的语音数据与背景音乐数据的混音。
本申请还包括缓存控制单元,其中:
缓存控制单元,用于在用户选择背景音乐文件后,通过发送单元通知移动终端所加入的聊天室中的其他用户的移动终端创建动态缓存,并且同时发送动态缓存的预取值。
本申请的语音数据采集单元,还用于在采集用户的语音数据后,通过回声消除的方式消除录制的语音数据中移动终端自身播放的声音。
本申请还提供了一种语音聊天室服务器,其特征在于,包括:解码单元、数据接收单元、音频混音单元和数据发送单元,其中:
解码单元,用于根据用户的选择读取背景音乐文件并进行解码,得到背景音乐数据;
数据接收单元,用于接收聊天室中的用户发送的语音数据;
音频混音单元,用于针对同一聊天室中的每个发送用户将除该发送用户之外的其他用户发送的语音数据与背景音乐数据进行混音;
数据发送单元,用于将音频混音单元混音得到的混音数据发送给发送用户。
本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。