音乐分享处理方法、装置及系统与流程

文档序号:11279172阅读:367来源:国知局
音乐分享处理方法、装置及系统与流程
本发明涉及通信领域,具体而言,涉及一种音乐分享处理方法、装置及系统。
背景技术
:近年来,随着手机技术的不断发展,智能手机已经逐渐占领手机市场。各种基于ios平台、android(安卓)平台的智能手机大量出现。随着移动互联网的发展与成熟,全面的信息化时代已经到来。基于移动互联网的语音聊天室能够为用户提供多人语音聊天服务,受到了用户的普遍欢迎。用户在使用聊天室时,根据聊天室的运营,经常会有分享音乐的需求。用户之间分享音乐时,由于种种原因,某些时间下,如果共享的音乐频道会较少,就会存在想收听的用户无法收听或者没有喜爱的音乐可以收听的情况,从而导致用户体验下降,因此需要提供一种音乐分享技术方案来满足用户的需求。技术实现要素:本发明的主要目的在于公开了一种音乐分享处理方法、装置及系统,以至少解决相关技术中如果共享的音乐频道会较少,就会存在想收听的用户无法收听或者没有喜爱的音乐可以收听的情况,从而导致用户体验下降的问题。根据本发明的一个方面,提供了一种音乐分享处理方法。根据本发明的音乐分享处理方法包括:音乐播放服务器读取预设的多个歌单及各个上述歌单的歌曲列表信息;上述音乐播放服务器向音乐房间管理服务器请求分享上述多个歌单;上述音乐播放服务器接收来自于上述音乐房间管理服务器为各个上述歌单创建的房间所对应的音乐频道地址;上述音乐播放服务器创建与各个上述房间对应的音乐分享处理线程,以使每个上述音乐分享处理线程在启动后同步采用该音乐分享处理线程对应的音乐频道地址连接音乐数据分发服务器来推送音乐数据。优选地,在上述音乐播放服务器读取预设的多个歌单及各个上述歌单的歌曲列表信息之前,还包括:对需要分享的上述多个歌单及各个上述歌单的歌曲列表信息配置数据,其中,上述数据中携带有上述音乐房间管理服务器是否已经创建上述歌单的标识信息;将配置后的上述多个歌单及各个上述歌单的歌曲列表信息的数据存储到数据库中。优选地,上述音乐播放服务器读取预设的多个歌单及各个上述歌单的歌曲列表信息之后,还包括:上述音乐播放服务器根据上述标识信息判断上述音乐房间管理服务器是否已经创建歌单;上述音乐播放服务器在上述音乐房间管理服务器未创建歌单的情况下,向上述音乐房间管理服务器发送创建上述歌单的请求;在上述音乐房间管理服务器创建上述歌单之后,上述音乐播放服务器接收来自于上述音乐房间管理服务器的歌单创建结果;上述音乐播放服务器向上述音乐房间管理服务器上传各个上述歌单的歌曲列表信息,以使上述音乐房间管理服务器记录上述歌曲列表信息。优选地,每个上述音乐分享处理线程在启动后采用该音乐分享处理线程对应的音乐频道地址连接音乐数据分发服务器来推送音乐数据包括:对于每个上述音乐分享处理线程,在该音乐分享处理线程启动后,均使用上述对应的音乐频道地址连接上述音乐数据分发服务器;在该音乐分享处理线程对应的歌曲列表信息中,按顺序依次读取歌曲路径,并根据该歌曲路径读取歌曲文件的音乐数据;该音乐分享处理线程将读取到的音乐数据推送至上述音乐数据分发服务器。优选地,上述根据该歌曲路径读取歌曲文件的音乐数据,将读取到的音乐数据推送至上述音乐数据分发服务器包括:根据上述音乐数据的播放速度控制读取上述音乐数据的速度以及推送上述音乐数据的速度。优选地,上述音乐播放服务器创建与各个上述房间对应的音乐分享处理线程,以使每个上述音乐分享处理线程在启动后同步采用该音乐分享处理线程对应的音乐频道地址连接音乐数据分发服务器来推送音乐数据之后,还包括:上述音乐房间管理服务器接收来自于客户端的音乐共享请求;上述音乐房间管理服务器向上述客户端返回当前正在共享音乐的房间列表信息;上述音乐房间管理服务器接收来自于上述客户端用户选择的房间信息;上述音乐房间管理服务器获取与上述选择的房间信息对应的音乐频道地址发送至上述客户端,以使上述客户端采用该音乐频道地址连接音乐数据分发服务器收听音乐。根据本发明的另一方面,提供了一种音乐分享处理装置。根据本发明的音乐分享处理装置包括:读取模块,用于读取预设的多个歌单及各个上述歌单的歌曲列表信息;分享模块,用于向音乐房间管理服务器请求分享上述多个歌单;第一接收模块,用于接收来自于上述音乐房间管理服务器为各个上述歌单创建的房间所对应的音乐频道地址;创建模块,用于创建与各个上述房间对应的音乐分享处理线程,以使每个上述音乐分享处理线程在启动后同步采用该音乐分享处理线程对应的音乐频道地址连接音乐数据分发服务器来推送音乐数据。优选地,上述装置还包括:判断模块,用于根据上述标识信息判断上述音乐房间管理服务器是否已经创建歌单;发送模块,用于在上述音乐房间管理服务器未创建歌单的情况下,向上述音乐房间管理服务器发送创建上述歌单的请求;第二接收模块,用于在上述音乐房间管理服务器创建上述歌单之后,接收来自于上述音乐房间管理服务器的歌单创建结果;上传模块,用于向上述音乐房间管理服务器上传各个上述歌单的歌曲列表信息,以使上述音乐房间管理服务器记录上述歌曲列表信息。根据本发明的又一方面,提供了一种音乐分享处理系统。根据本发明的音乐分享处理系统包括:音乐播放服务器、音乐房间管理服务器、以及音乐数据分发服务器;其中,上述音乐播放服务器,用于读取预设的多个歌单及各个上述歌单的歌曲列表信息,向上述音乐房间管理服务器请求分享上述多个歌单,接收来自于上述音乐房间管理服务器为各个上述歌单创建的房间所对应的音乐频道地址,创建与各个上述房间对应的音乐分享处理线程,以使每个上述音乐分享处理线程在启动后同步采用该音乐分享处理线程对应的音乐频道地址连接音乐数据分发服务器来推送音乐数据。优选地,上述系统还包括:客户端,用于向上述音乐房间管理服务器发送音乐共享请求,接收来自于上述音乐房间管理服务器的当前正在共享音乐的房间列表信息,向上述音乐房间管理服务器发送用户选择的房间信息,接收来自于上述音乐房间管理服务器与上述选择的房间信息对应的音乐频道地址,采用该音乐频道地址连接音乐数据分发服务器收听音乐。与现有技术相比,本发明实施例至少具有以下优点:根据预设的歌单信息,读取需要分享的歌单信息,服务器根据歌单列表的数量启动多个线程,每个音乐分享处理线程启动后同步采用音乐频道地址连接音乐数据分发服务器(例如,nginx服务器)来推送音乐数据,达到多路同步分享的功能。各音乐分享处理线程分别控制推送音乐数据的速度,按音乐的播放进度推送音乐数据,使达到实时的效果。避免了相关技术中如果共享的音乐频道会较少,就会存在想收听的用户无法收听或者没有喜爱的音乐可以收听的情况,从而大大提高了用户体验。附图说明图1是根据本发明实施例的音乐分享处理方法的流程图;图2是根据本发明优选实施例的音乐分享处理方法的时序图;图3是根据本发明优选实施例的音乐分享处理方法的流程图;图4是根据本发明实施例的音乐分享处理装置的结构框图;图5是根据本发明优选实施例的音乐分享处理装置的结构框图;图6是根据本发明实施例的音乐分享处理系统的结构框图;图7是根据本发明优选实施例的音乐分享处理系统的结构框图。具体实施方式下面结合说明书附图对本发明的具体实现方式做一详细描述。图1是根据本发明实施例的音乐分享处理方法的流程图。如图1所示,该音乐分享处理方法包括:步骤s101:音乐播放服务器读取预设的多个歌单及各个上述歌单的歌曲列表信息;步骤s103:音乐播放服务器向音乐房间管理服务器请求分享上述多个歌单;步骤s105:音乐播放服务器接收来自于上述音乐房间管理服务器为各个上述歌单创建的房间所对应的音乐频道地址;步骤s107:音乐播放服务器创建与各个房间对应的音乐分享处理线程,以使每个音乐分享处理线程在启动后同步采用该音乐分享处理线程对应的音乐频道地址连接音乐数据分发服务器来推送音乐数据。采用音乐播放服务器模拟多个音乐分享者,请求分享音乐,根据预设的歌单信息,音乐播放服务器读取需要分享的歌单信息,根据歌单列表的数量启动多个线程,每个音乐分享处理线程启动后同步采用音乐频道地址连接音乐数据分发服务器(例如,nginx服务器)来推送音乐数据,达到多路同步分享的功能。各音乐分享处理线程分别控制推送音乐数据的速度,按音乐的播放进度推送音乐数据,使达到实时的效果。避免了相关技术中如果共享的音乐频道会较少,就会存在想收听的用户无法收听或者没有喜爱的音乐可以收听的情况,从而大大提高了用户体验。优选地,在步骤s101的上述音乐播放服务器读取预设的多个歌单及各个上述歌单的歌曲列表信息之前,还可以包括以下处理:对需要分享的上述多个歌单及各个上述歌单的歌曲列表信息配置数据,其中,上述数据中携带有上述音乐房间管理服务器是否已经创建上述歌单的标识信息;将配置后的上述多个歌单及各个上述歌单的歌曲列表信息的数据存储到数据库中。在优选实施过程中,执行步骤s101之前,需要进行如下操作:1、音乐文件准备。将音乐文件按歌单分类存于不同的文件夹中,文件夹名可以使用数字命名。2、nginx服务器的安装。nginx为开源服务器,编译时需要加入nginx_rtmp_module模块。例如,nginx编译命令如下:./configure--prefix=/usr/local/nginx--add-module=nginx-rtmp-module路径make&&makeinstall3、nginx服务器需要配置支持直播服务例如,配置文件为nginx安装路径下的conf/nginx.conf文件,在文件中添加如下配置4、配置服务器数据,数据库结构及数据填充示例如下:(1)、歌单表(t_songlist_info)。该表配置需要分享的歌单文件夹。表1数据存储示例:folder_idsong_list_id1000101010201030表22、歌曲列表(t_music_list)字段名数据类型字段描述备注indexint序号主键folder_idint歌曲文件夹idmusic_pathvarchar(256)歌曲路径表3数据存储示例:indexfolder_idmusic_path1100/data/100/a.mp32100/data/100/b.mp33101/data/101/c.mp34102/data/102/d.mp35102/data/102/e.mp36102/data/102/f.mp37103/data/103/g.mp3表4优选地,在执行步骤s101的上述音乐播放服务器读取预设的多个歌单及各个上述歌单的歌曲列表信息之后,还可以包括以下处理:上述音乐播放服务器根据上述标识信息判断上述音乐房间管理服务器是否已经创建歌单;上述音乐播放服务器在上述音乐房间管理服务器未创建歌单的情况下,向上述音乐房间管理服务器发送创建上述歌单的请求;在上述音乐房间管理服务器创建上述歌单之后,上述音乐播放服务器接收来自于上述音乐房间管理服务器的歌单创建结果;上述音乐播放服务器向上述音乐房间管理服务器上传各个上述歌单的歌曲列表信息,以使上述音乐房间管理服务器记录上述歌曲列表信息。在优选实施过程中,音乐播放服务器(musicplayserver,简称为mps)启动时从数据库读取需要分享的歌单及歌单的歌曲列表,例如,当读取到的歌单中的标识信息(例如:歌单id)为0,表示歌单还没有创建,需要到音乐房间管理服务器(mrs)服务器申请歌单id。在向mrs服务器申请一个歌单id之后,mps将该歌单的歌曲列表上传到该mrs,以便收听用户可以知道该歌单有哪些歌曲。当mrs接收到来自于mps某个歌单需要分享的请求时,服务器创建房间,并为该房间分配一个rtmp频道,将该rtmp频道地址回复给请求分享者mrs,使请求者可以使用该rtmp地址连接音乐数据分发服务器(例如,nginx服务器)。优选地,上述的每个上述音乐分享处理线程在启动后采用该音乐分享处理线程对应的音乐频道地址连接音乐数据分发服务器来推送音乐数据可以进一步包括:对于每个上述音乐分享处理线程,在该音乐分享处理线程启动后,均使用上述对应的音乐频道地址连接上述音乐数据分发服务器;在该音乐分享处理线程对应的歌曲列表信息中,按顺序依次读取歌曲路径,并根据该歌曲路径读取歌曲文件的音乐数据;该音乐分享处理线程将读取到的音乐数据推送至上述音乐数据分发服务器。在优选实施过程中,音乐播放服务器创建音乐分享处理线程,使用mrs回复消息中携带的rtmp地址连接nginx服务器。由于有多个歌单需要分享,会创建多个音乐分享处理线程,也会存在与nginx服务器的多个rtmp连接。优选地,上述根据该歌曲路径读取歌曲文件的音乐数据,将读取到的音乐数据推送至上述音乐数据分发服务器包括:根据上述音乐数据的播放速度控制读取上述音乐数据的速度以及推送上述音乐数据的速度。为了缓解mps服务器的压力,音乐分享处理线程无需不间断地读取音乐数据并推送数据,可以控制读取和推送的速度。例如,读取一首歌音乐数据的时间可能只需要1秒,而播放这首歌需要几分钟,可以控制音乐分享处理线程在音乐播放时长内读完音乐数据即可。例如:音乐分享处理线程在北京时间00:00:00开始分享这首歌,则可以控制音乐分享处理线程在北京时间00:04:19秒的时候再把这首歌4分19秒的声音发到服务器,别让线程工作的太忙,这样的话服务器mps的压力不大,而且不影响客户端client的收听。其中,now为当前时间,playstarttime为开始播放时间,ts为读取的音乐数据的进度时间。优选地,上述音乐播放服务器创建与各个上述房间对应的音乐分享处理线程,以使每个上述音乐分享处理线程在启动后同步采用该音乐分享处理线程对应的音乐频道地址连接音乐数据分发服务器来推送音乐数据之后,还可以包括:上述音乐房间管理服务器接收来自于客户端的音乐共享请求;上述音乐房间管理服务器向上述客户端返回当前正在共享音乐的房间列表信息;上述音乐房间管理服务器接收来自于上述客户端用户选择的房间信息;上述音乐房间管理服务器获取与上述选择的房间信息对应的音乐频道地址发送至上述客户端,以使上述客户端采用该音乐频道地址连接音乐数据分发服务器收听音乐。在优选实施过程中,客户端client,需要向mrs请求当前正有哪些房间在共享音乐,mrs返回当前正在共享音乐的房间列表,该客户端选择一个房间进入,从房间中获取该房间分享的音乐频道rtmp地址,使用rtmp地址连接nginx服务器,收听音乐。以下结合图2和图3进一步描述上述优选实施方式。图2是根据本发明优选实施例的音乐分享处理方法的时序图。如图2所示,该音乐分享处理方法包括:步骤s201:mps从数据库中,读取多个歌单及各个上述歌单的歌曲列表信息。步骤s203:mps向mrs请求创建歌单。步骤s205:mrs创建歌单。步骤s207:mrs向mps回复创建歌单结果。步骤s209:mps向mrs上传歌单的歌曲列表。步骤s211:mrs记录歌单的歌曲列表。步骤s213:mps向mrs请求开始分享歌单。步骤s215:mrs创建房间,分配rtmp地址。步骤s217:mrs向mps返回请求结果。步骤s219:mps创建分享处理线程。步骤s221:mps与nginx服务器建立连接。步骤s223:mps读取音乐数据。步骤s225:mps推送音乐数据至nginx服务器。图3是根据本发明优选实施例的音乐分享处理方法的流程图。如图3所示,该音乐分享处理方法包括:步骤s301:mps启动时从数据库读取需要分享的歌单及歌单的歌曲列表,如表2及表4数据所示,则服务器读取到的歌单及歌曲信息如表5:表5步骤s303:mps判断歌单是否已经创建。如果是,则执行步骤s307。否则,执行步骤s305。由于表5中的歌单id为0,表示歌单还没有创建,需要到mrs服务器申请歌单id。步骤s305:mps向mrs请求创建歌单,mrs返回创建歌单成功后,mps将该歌单文件夹下的歌曲列表上传到mrs服务器。步骤s307:mps在歌曲列表上传mrs服务器完成后,向mrs请求开始分享歌单,mrs返回用于连接nginx服务器的rtmp地址。步骤s309:接收到mrs开始分享的回复后,创建多个音乐分享处理线程,使用mrs回复消息中携带的rtmp地址连接nginx服务器。由于有多个歌单分享,所以会创建多个歌单处理线程,也会存在多个与nginx的rtmp连接。步骤s311:多个音乐分享处理线程启动后,先使用mrs回复消息中携带的rtmp地址连接nginx服务器。步骤s313:对于每个音乐分享处理线程,都判断歌曲列表是否播放完成,如果是,则流程结束,否则,执行步骤s315。步骤s315:按序读取歌曲列表中的歌曲路径。步骤s317:读取音乐文件的音乐数据。步骤s319:判断歌曲列表是否读取完成,如果是,返回执行步骤s313,否则,执行步骤s321。步骤s321:将音乐数据推送到nginx服务器。根据本发明的一个发明,还提供了一种音乐分享处理装置。图4是根据本发明实施例的音乐分享处理装置的结构框图。如图4所示,该音乐分享处理装置包括:读取模块40,用于读取预设的多个歌单及各个上述歌单的歌曲列表信息;分享模块42,用于向音乐房间管理服务器请求分享上述多个歌单;第一接收模块44,用于接收来自于上述音乐房间管理服务器为各个上述歌单创建的房间所对应的音乐频道地址;创建模块46,用于创建与各个上述房间对应的音乐分享处理线程,以使每个上述音乐分享处理线程在启动后同步采用该音乐分享处理线程对应的音乐频道地址连接音乐数据分发服务器来推送音乐数据。根据预设的歌单信息,读取模块40读取需要分享的歌单信息,创建模块46根据歌单列表的数量创建多个音乐分享处理线程,每个音乐分享处理线程启动后同步采用音乐频道地址连接音乐数据分发服务器(例如,nginx服务器)来推送音乐数据,达到多路同步分享的功能。各音乐分享处理线程分别控制推送音乐数据的速度,按音乐的播放进度推送音乐数据,使达到实时的效果。避免了相关技术中如果共享的音乐频道会较少,就会存在想收听的用户无法收听或者没有喜爱的音乐可以收听的情况,从而大大提高了用户体验。优选地,如图5所示,上述装置还包括:判断模块48,与读取模块40相连接,用于根据上述标识信息判断上述音乐房间管理服务器是否已经创建歌单;发送模块50,与判断模块48相连接,用于在上述音乐房间管理服务器未创建歌单的情况下,向上述音乐房间管理服务器发送创建上述歌单的请求;第二接收模块52,用于在上述音乐房间管理服务器创建上述歌单之后,接收来自于上述音乐房间管理服务器的歌单创建结果;上传模块54,用于向上述音乐房间管理服务器上传各个上述歌单的歌曲列表信息,以使上述音乐房间管理服务器记录上述歌曲列表信息。根据本发明的一个发明,还提供了一种音乐分享处理系统。图6是根据本发明实施例的音乐分享处理系统的结构框图。如图6所示,该音乐分享处理系统包括:音乐播放服务器60、音乐房间管理服务器62、以及音乐数据分发服务器64;其中,上述音乐播放服务器60,用于读取预设的多个歌单及各个上述歌单的歌曲列表信息,向上述音乐房间管理服务器62请求分享上述多个歌单,接收来自于上述音乐房间管理服务器为各个上述歌单创建的房间所对应的音乐频道地址,创建与各个上述房间对应的音乐分享处理线程,以使每个上述音乐分享处理线程在启动后同步采用该音乐分享处理线程对应的音乐频道地址连接音乐数据分发服务器64来推送音乐数据。优选地,如图7所示,该音乐分享处理系统还可以包括:客户端66,用于向上述音乐房间管理服务器发送音乐共享请求,接收来自于上述音乐房间管理服务器的当前正在共享音乐的房间列表信息,向上述音乐房间管理服务器发送用户选择的房间信息,接收来自于上述音乐房间管理服务器与上述选择的房间信息对应的音乐频道地址,采用该音乐频道地址连接音乐数据分发服务器收听音乐。在优选实施过程中,客户端client,需要到mrs请求当前有哪些房间在共享音乐,mrs返回当前正在共享音乐的房间列表,客户端选择进入其中的某个房间,从房间中获取该房间分享的音乐频道rtmp地址,使用rtmp地址连接nginx服务器,收听音乐。mrs为音乐房间管理服务器(musicroomserver)。歌单分享需要先到mrs服务器申请一个歌单id,并将该歌单的歌曲列表上传到该服务器,以便收听用户可以知道该歌单有哪些歌曲。当服务器收到某个歌单需要分享的请求时,服务器创建一个房间,并为该房间分配一个rtmp频道,将该rtmp地址回复给请求分享者,使请求者可以使用该rtmp地址连接nginx服务器。收听用户通过客户端client需要进入这个房间中,获取音乐分享的rtmp地址。nginx可以为第三方开源服务器,在本系统中主要用于音乐数据的分发。音乐分享者mps连接该服务器推送音乐数据,收听者连接该服务器接收音乐数据。mps向mrs发送开始分享音乐的请求,mrs回复成功后,mps使用mrs回复的rtmp地址连接nginx服务器,然后向nginx服务器推送音乐数据。需要说明的是,上述音乐分享处理装置和系统中各模块相互结合的优选实施方式,具体参见图1至图3的描述,此处不再赘述。综上所述,借助本发明提供的上述实施例,根据预设的歌单信息,读取需要分享的歌单信息,服务器根据歌单列表的数量启动多个线程,每个音乐分享处理线程启动后同步采用音乐频道地址连接音乐数据分发服务器(例如,nginx服务器)来推送音乐数据,达到多路同步分享的功能。各音乐分享处理线程分别控制推送音乐数据的速度,按音乐的播放进度推送音乐数据,使达到实时的效果。避免了相关技术中如果共享的音乐频道会较少,就会存在想收听的用户无法收听或者没有喜爱的音乐可以收听的情况,从而大大提高了用户体验。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1