CN112069353B - 音乐播放控制方法、装置、存储介质及电子设备 - Google Patents
音乐播放控制方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN112069353B CN112069353B CN202010969795.2A CN202010969795A CN112069353B CN 112069353 B CN112069353 B CN 112069353B CN 202010969795 A CN202010969795 A CN 202010969795A CN 112069353 B CN112069353 B CN 112069353B
- Authority
- CN
- China
- Prior art keywords
- operation information
- aggregation
- music
- instruction
- client
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000003860 storage Methods 0.000 title claims abstract description 22
- 230000002776 aggregation Effects 0.000 claims abstract description 278
- 238000004220 aggregation Methods 0.000 claims abstract description 278
- 238000012545 processing Methods 0.000 claims abstract description 94
- 230000004931 aggregating effect Effects 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000010365 information processing Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 9
- 230000001360 synchronised effect Effects 0.000 description 9
- 230000003993 interaction Effects 0.000 description 8
- 230000002829 reductive effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005520 cutting process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- QVGXLLKOCUKJST-UHFFFAOYSA-N atomic oxygen Chemical compound [O] QVGXLLKOCUKJST-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052760 oxygen Inorganic materials 0.000 description 1
- 239000001301 oxygen Substances 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/64—Browsing; Visualisation therefor
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Electrophonic Musical Instruments (AREA)
- Reverberation, Karaoke And Other Acoustics (AREA)
Abstract
本发明实施方式涉及一种音乐播放控制方法、装置、存储介质与电子设备,涉及计算机技术领域。所述音乐播放控制方法包括:获取处于同一音乐播放组的各客户端针对音乐播放的操作信息,其中,至少两个所述客户端处于所述音乐播放组内;对预设单位时间内各所述客户端的所述操作信息进行聚合处理,得到聚合指令;在所述预设单位时间结束时,将所述聚合指令发送至各所述客户端,使各所述客户端根据所述聚合指令同步所述音乐播放组的音乐播放信息。本发明实现了一起听音乐服务中不同客户端之间音乐播放的同步性,并且***性能开销较低。
Description
技术领域
本发明的实施方式涉及计算机技术领域,更具体地,本发明的实施方式涉及一种音乐播放控制方法、音乐播放控制装置、计算机可读存储介质及电子设备。
背景技术
本部分旨在为权利要求中陈述的本发明的实施方式提供背景或上下文,此处的描述不因为包括在本部分中就承认是现有技术。
现有的音乐App(Application,应用程序)大多仅支持单人听音乐。如果想邀请其他用户一起听音乐,一般通过分享链接的形式,使其他用户点击链接后进入音乐播放界面,收听被分享的音乐曲目。
发明内容
然而,用户将音乐的链接分享给其他用户后,是由不同用户分别单独听同一首音乐,并未实现真正意义的多用户一起听音乐,即不同用户同步收听相同的音乐,且其中一个用户的操作(如切歌、拖动进度条等)会同步给其他用户。现有技术实现一起听音乐的技术难点在于:多个用户在相同或相近的时刻进行不同操作时,服务端需要处理并向客户端同步每个操作,性能开销较大,容易导致响应缓慢;最为重要的是,多个操作同步到各用户时,受网络传输波动的影响,不同用户接收到的操作的顺序可能不同,从而无法保证音乐播放的同步性。
为此,非常需要一种音乐播放控制方法,以提高服务器处理多用户一起听音乐中相关操作的响应速度及准确度,保证多用户之间音乐播放的同步性。
在本上下文中,本发明的实施方式期望提供一种音乐播放控制方法、音乐播放控制装置、计算机可读存储介质及电子设备。
根据本发明实施方式的第一方面,提供一种音乐播放控制方法,包括:获取处于同一音乐播放组的各客户端针对音乐播放的操作信息,其中,至少两个所述客户端处于所述音乐播放组内;对预设单位时间内各所述客户端的所述操作信息进行聚合处理,得到聚合指令;在所述预设单位时间结束时,将所述聚合指令发送至各所述客户端,使各所述客户端根据所述聚合指令同步所述音乐播放组的音乐播放信息。
在一种可选的实施方式中,所述获取处于同一音乐播放组的各客户端针对音乐播放的操作信息,包括:创建所述音乐播放组,通过所述音乐播放组获取各所述客户端针对音乐播放的操作信息。
在一种可选的实施方式中,在通过所述音乐播放组获取各所述客户端针对音乐播放的操作信息后,通过以下方式对其中的任一操作信息进行存储:根据所述音乐播放组的唯一标识与所述任一操作信息的接收时间,确定所述任一操作信息的键;将所述任一操作信息存储至所述键对应的数据集合。
在一种可选的实施方式中,所述根据所述音乐播放组的唯一标识与所述任一操作信息的接收时间,确定所述任一操作信息的键,包括:根据所述任一操作信息的接收时间和所述预设单位时间计算所述任一操作信息对应的单位时间序数;根据所述音乐播放组的唯一标识与所述任一操作信息对应的单位时间序数,确定所述任一操作信息的键。
在一种可选的实施方式中,在所述数据集合中,各所述操作信息按照接收时间的顺序排列。
在一种可选的实施方式中,所述对预设单位时间内各所述客户端的所述操作信息进行聚合处理,得到聚合指令,包括:在每个所述预设单位时间结束时,执行预先建立的延时聚合任务,以对所述预设单位时间内各所述客户端的所述操作信息进行聚合处理。
在一种可选的实施方式中,所述方法还包括:建立以所述预设单位时间为单位刻度的时间轮;在所述时间轮的每个刻度创建链表,指向对应的所述预设单位时间的延时聚合任务,以在到达每个刻度时,触发执行对应的所述链表所指向的延时聚合任务。
在一种可选的实施方式中,所述对预设单位时间内各所述客户端的所述操作信息进行聚合处理,得到聚合指令,包括:以所述预设单位时间为周期,对每个周期内各所述客户端的所述操作信息进行聚合处理,得到每个周期的聚合指令。
在一种可选的实施方式中,所述对预设单位时间内各所述客户端的操作信息进行聚合处理,得到聚合指令,包括:在上一次进行聚合处理后,以接收到各所述客户端的第一条操作信息为当前预设单位时间的起始,对当前预设单位时间内各所述客户端的所述操作信息进行聚合处理,得到当前预设单位时间的聚合指令。
在一种可选的实施方式中,所述对预设单位时间内各所述客户端的所述操作信息进行聚合处理,得到聚合指令,包括:对所述预设单位时间内各所述客户端的每种类型的所述操作信息分别进行聚合处理,得到每种类型的聚合指令。
在一种可选的实施方式中,所述将预设单位时间内各所述客户端的每种类型的操作信息分别进行聚合处理,包括:按照预设的聚合规则,对所述预设单位时间内各所述客户端的每种类型的所述操作信息分别进行聚合处理,得到每种类型的聚合指令。
在一种可选的实施方式中,所述按照预设的聚合规则,对所述预设单位时间内各所述客户端的每种类型的所述操作信息分别进行聚合处理,得到每种类型的聚合指令,包括:在所述预设单位时间内各所述客户端的播放操作类型的所述操作信息中,将接收时间最晚的操作信息作为所述播放操作类型的聚合指令。
在一种可选的实施方式中,所述按照预设的聚合规则,对所述预设单位时间内各所述客户端的每种类型的所述操作信息分别进行聚合处理,得到每种类型的聚合指令,包括:将所述预设单位时间内各所述客户端的列表操作类型的操作信息进行合并,得到所述列表操作类型的聚合指令。
在一种可选的实施方式中,所述获取处于同一音乐播放组的各客户端针对音乐播放的操作信息,包括:获取各所述客户端所发送的基于预设通用指令协议的所述操作信息。
在一种可选的实施方式中,所述基于预设通用指令协议的所述操作信息包括以下任意一项或多项信息:操作类型、操作前音乐标识、操作后音乐标识、播放进度、播放状态、操作指令序号。
在一种可选的实施方式中,所述将所述聚合指令发送至各所述客户端,包括:通过预先建立的长连接,将所述聚合指令发送至各所述客户端。
在一种可选的实施方式中,所述方法还包括:通过即时通讯模块,分别与各所述客户端建立所述长连接。
在一种可选的实施方式中,所述操作信息为所述客户端在所述音乐播放组的界面内进行操作的信息。
根据本发明实施方式的第二方面,提供一种音乐播放控制方法,包括:当处于音乐播放组时,向服务端发送针对音乐播放的操作信息;获取服务端在预设单位时间结束时反馈的聚合指令,所述聚合指令为所述服务端对所述预设单位时间内所述音乐播放组的各客户端针对音乐播放的操作信息进行聚合处理所得到的;根据所述聚合指令同步所述音乐播放组的音乐播放信息。
在一种可选的实施方式中,所述向服务端发送针对音乐播放的操作信息,包括:向所述服务端发送基于预设通用指令协议的所述操作信息。
在一种可选的实施方式中,在向所述服务端发送基于预设通用指令协议的所述操作信息前,所述方法还包括:响应于音乐播放操作,基于本地指令协议执行所述音乐播放操作;基于所述预设通用指令协议生成所述音乐播放操作对应的所述操作信息。
在一种可选的实施方式中,所述基于预设通用指令协议的所述操作信息包括以下任意一项或多项信息:操作类型、操作前音乐标识、操作后音乐标识、播放进度、播放状态、操作指令序号。
在一种可选的实施方式中,所述获取服务端在预设单位时间结束时反馈的聚合指令,包括:通过预先建立的长连接,接收所述服务端在所述预设单位时间结束时反馈的聚合指令。
在一种可选的实施方式中,所述方法还包括:与所述服务端的即时通讯模块建立所述长连接。
在一种可选的实施方式中,所述操作信息为在所述音乐播放组的界面内进行操作的信息。
在一种可选的实施方式中,所述根据所述聚合指令同步所述音乐播放组的音乐播放信息,包括:根据所述聚合指令同步所述音乐播放组的音乐播放状态和/或播放列表信息。
根据本发明实施方式的第三方面,提供一种音乐播放控制装置,包括:操作信息获取单元,用于获取处于同一音乐播放组的各客户端针对音乐播放的操作信息,其中,至少两个所述客户端处于所述音乐播放组内;聚合处理单元,用于对预设单位时间内各所述客户端的所述操作信息进行聚合处理,得到聚合指令;聚合指令发送单元,用于在所述预设单位时间结束时,将所述聚合指令发送至各所述客户端,使各所述客户端根据所述聚合指令同步所述音乐播放组的音乐播放信息。
在一种可选的实施方式中,所述操作信息获取单元,被配置为:创建所述音乐播放组,通过所述音乐播放组获取各所述客户端针对音乐播放的操作信息。
在一种可选的实施方式中,所述操作信息获取单元,被配置为通过以下方式对所获取的任一操作信息进行存储:根据所述音乐播放组的唯一标识与所述任一操作信息的接收时间,确定所述任一操作信息的键;将所述任一操作信息存储至所述键对应的数据集合。
在一种可选的实施方式中,所述操作信息获取单元,被配置为:根据所述任一操作信息的接收时间和所述预设单位时间计算所述任一操作信息对应的单位时间序数;根据所述音乐播放组的唯一标识与所述任一操作信息对应的单位时间序数,确定所述任一操作信息的键。
在一种可选的实施方式中,在所述数据集合中,各所述操作信息按照接收时间的顺序排列。
在一种可选的实施方式中,所述聚合处理单元,被配置为:在每个所述预设单位时间结束时,执行预先建立的延时聚合任务,以对所述预设单位时间内各所述客户端的所述操作信息进行聚合处理。
在一种可选的实施方式中,所述聚合处理单元,被配置为:建立以所述预设单位时间为单位刻度的时间轮;在所述时间轮的每个刻度创建链表,指向对应的所述预设单位时间的延时聚合任务,以在到达每个刻度时,触发执行对应的所述链表所指向的延时聚合任务。
在一种可选的实施方式中,所述聚合处理单元,被配置为:以所述预设单位时间为周期,对每个周期内各所述客户端的所述操作信息进行聚合处理,得到每个周期的聚合指令。
在一种可选的实施方式中,所述聚合处理单元,被配置为:在上一次进行聚合处理后,以接收到各所述客户端的第一条操作信息为当前预设单位时间的起始,对当前预设单位时间内各所述客户端的所述操作信息进行聚合处理,得到当前预设单位时间的聚合指令。
在一种可选的实施方式中,所述聚合处理单元,被配置为:对所述预设单位时间内各所述客户端的每种类型的所述操作信息分别进行聚合处理,得到每种类型的聚合指令。
在一种可选的实施方式中,所述聚合处理单元,被配置为:按照预设的聚合规则,对所述预设单位时间内各所述客户端的每种类型的所述操作信息分别进行聚合处理,得到每种类型的聚合指令。
在一种可选的实施方式中,所述聚合处理单元,被配置为:在所述预设单位时间内各所述客户端的播放操作类型的所述操作信息中,将接收时间最晚的操作信息作为所述播放操作类型的聚合指令。
在一种可选的实施方式中,所述聚合处理单元,被配置为:将所述预设单位时间内各所述客户端的列表操作类型的操作信息进行合并,得到所述列表操作类型的聚合指令。
在一种可选的实施方式中,所述操作信息获取单元,被配置为:获取各所述客户端所发送的基于预设通用指令协议的所述操作信息。
在一种可选的实施方式中,所述基于预设通用指令协议的所述操作信息包括以下任意一项或多项信息:操作类型、操作前音乐标识、操作后音乐标识、播放进度、播放状态、操作指令序号。
在一种可选的实施方式中,所述聚合指令发送单元,被配置为:通过预先建立的长连接,将所述聚合指令发送至各所述客户端。
在一种可选的实施方式中,所述聚合指令发送单元,被配置为:通过即时通讯模块,分别与各所述客户端建立所述长连接。
在一种可选的实施方式中,所述操作信息为所述客户端在所述音乐播放组的界面内进行操作的信息。
根据本发明实施方式的第四方面,提供一种音乐播放控制装置,包括:操作信息发送单元,用于当处于音乐播放组时,向服务端发送针对音乐播放的操作信息;聚合指令获取单元,用于获取服务端在预设单位时间结束时反馈的聚合指令,所述聚合指令为所述服务端对所述预设单位时间内所述音乐播放组的各客户端针对音乐播放的操作信息进行聚合处理所得到的;播放信息同步单元,用于根据所述聚合指令同步所述音乐播放组的音乐播放信息。
在一种可选的实施方式中,所述操作信息发送单元,被配置为:向所述服务端发送基于预设通用指令协议的所述操作信息。
在一种可选的实施方式中,所述装置还包括操作信息处理单元,被配置为:响应于音乐播放操作,基于本地指令协议执行所述音乐播放操作;基于所述预设通用指令协议生成所述音乐播放操作对应的所述操作信息。
在一种可选的实施方式中,所述基于预设通用指令协议的所述操作信息包括以下任意一项或多项信息:操作类型、操作前音乐标识、操作后音乐标识、播放进度、播放状态、操作指令序号。
在一种可选的实施方式中,所述聚合指令获取单元,被配置为:通过预先建立的长连接,接收所述服务端在所述预设单位时间结束时反馈的聚合指令。
在一种可选的实施方式中,所述聚合指令获取单元,被配置为:与所述服务端的即时通讯模块建立所述长连接。
在一种可选的实施方式中,所述操作信息为在所述音乐播放组的界面内进行操作的信息。
在一种可选的实施方式中,所述播放信息同步单元,被配置为:根据所述聚合指令同步所述音乐播放组的音乐播放状态和/或播放列表信息。
根据本发明实施方式的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种音乐播放控制方法。
根据本发明实施方式的第六方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一种音乐播放控制方法。
根据本发明实施方式的音乐播放控制方法、装置、计算机可读存储介质及电子设备,获取音乐播放组的各客户端针对音乐播放的操作信息,按照预设单位时间进行聚合处理,将得到的聚合指令返回给客户端,以实现各客户端的音乐播放信息同步。一方面,服务端将各客户端的操作信息聚合为聚合指令,向客户端返回聚合指令,以替代预设单位时间内的全部操作信息,减少了与客户端进行交互的次数,节省了***的性能开销,有利于缓解服务端高并发所带来的响应缓慢,改善卡顿现象。另一方面,聚合指令是等效指令,指令内容是确定的,从而保证了各客户端执行聚合指令所得到的音乐播放信息是同步的,避免不同客户端执行多个操作的顺序不同所导致的音乐播放不同步的情况。再一方面,本方案使各客户端在每个预设单位时间进行一次音乐播放相关操作信息的同步,实现了“准实时”同步的效果,用户对于预设单位时间的感知较低,因此能够得到非常接近于实时同步的体验。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示出了根据本发明实施方式的***架构示意图;
图2示出了根据本发明实施方式的一种音乐播放控制方法的流程图;
图3示出了根据本发明实施方式的一种存储操作信息的流程图;
图4示出了根据本发明实施方式的一种确定操作信息的键的流程图;
图5示出了根据本发明实施方式的一种聚合处理的示意图;
图6示出了根据本发明实施方式的另一种聚合处理的示意图;
图7示出了根据本发明实施方式的一种设置时间轮的流程图;
图8示出了根据本发明实施方式的一种时间轮的示意图;
图9示出了根据本发明实施方式的一种服务端与客户端的连接示意图;
图10示出了根据本发明实施方式的一种音乐播放控制方法的交互流程图;
图11示出了根据本发明实施方式的另一种音乐播放控制方法的流程图;
图12示出了根据本发明实施方式的一种音乐播放控制装置的结构图;
图13示出了根据本发明实施方式的另一种音乐播放控制装置的结构图;
图14示出了根据本发明实施方式的电子设备的结构图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种***、装置、设备、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提供一种音乐播放控制方法、音乐播放控制装置、计算机可读存储介质及电子设备。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐述本发明的原理和精神。
发明概述
本发明人发现,现有的音乐App中,用户将音乐的链接分享给其他用户后,是由不同用户分别单独听同一首音乐,并未实现真正意义的多用户一起听音乐,即不同用户同步收听相同的音乐,且其中一个用户的操作(如切歌、拖动进度条等)会同步给其他用户。现有技术实现一起听音乐的技术难点在于:多个用户在相同或相近的时刻进行不同操作时,服务端需要处理并向客户端同步每个操作,性能开销较大,容易导致响应缓慢;最为重要的是,多个操作同步到各用户时,受网络传输波动的影响,不同用户接收到的操作的顺序可能不同,从而无法保证音乐播放的同步性。
鉴于上述内容,本发明的基本思想在于:提供一种音乐播放控制方法、音乐播放控制装置、计算机可读存储介质及电子设备,获取音乐播放组的各客户端针对音乐播放的操作信息,按照预设单位时间进行聚合处理,将得到的聚合指令返回给客户端,以实现各客户端的音乐播放信息同步。一方面,服务端将各客户端的操作信息聚合为聚合指令,向客户端返回聚合指令,以替代预设单位时间内的全部操作信息,减少了与客户端进行交互的次数,节省了***的性能开销,有利于缓解服务端高并发所带来的响应缓慢,改善卡顿现象。另一方面,聚合指令是等效指令,指令内容是确定的,从而保证了各客户端执行聚合指令所得到的音乐播放信息是同步的,避免不同客户端执行多个操作的顺序不同所导致的音乐播放不同步的情况。再一方面,本方案使各客户端在每个预设单位时间进行一次音乐播放相关操作信息的同步,实现了“准实时”同步的效果,用户对于预设单位时间的感知较低,因此能够得到非常接近于实时同步的体验。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
需要注意的是,下述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
本发明的实施方式支持两人或两人以上同时听音乐,例如:在音乐App中,用户A和用户B进入一起听音乐的界面,同步地收听相同的音乐曲目,在此过程中,任一方进行或双方均进行针对音乐播放的操作时,服务端将操作信息进行聚合,并返回聚合指令至用户A和用户B,用户A和用户B通过执行该聚合指令,同步调整音乐播放信息,以保证音乐播放的同步性。
示例性方法
本发明的示例性实施方式首先提供一种音乐播放控制方法。图1示出了该方法运行环境的***架构图。如图1所示,该***架构100可以包括:第一客户端110、第二客户端120和服务端130。第一客户端110和第二客户端120是参与一起听音乐的用户所使用的客户端设备,如可以是智能手机、平板电脑、个人电脑、智能穿戴设备、智能车载设备、游戏机等。服务端130可以包括音乐App或第三方平台的后台***。
第一客户端110与第二客户端120分别与服务端130进行交互,以实现音乐播放信息的同步,进而实现第一客户端110与第二客户端120的用户一起听音乐。
需要说明的是,本示例性实施方式对于客户端的数量不做限制,如***架构100中还可以加入第三、第四客户端等,以实现任意数量的用户一起听音乐。
图2示出了可由上述服务端130执行的音乐播放控制方法的示例性流程,包括:
步骤S210中,获取处于同一音乐播放组的各客户端针对音乐播放的操作信息。
步骤S220,对预设单位时间内各客户端的操作信息进行聚合处理,得到聚合指令。
步骤S230,在预设单位时间结束时,将聚合指令发送至各客户端,使各客户端根据聚合指令同步音乐播放组的音乐播放信息。
下面分别对图2中的每个步骤进行具体说明:
步骤S210中,获取处于同一音乐播放组的各客户端针对音乐播放的操作信息。
音乐播放组可以是服务端所建立的用于提供一起听音乐服务的资源集合,包括记录客户端信息与音乐播放信息的存储资源,进行音乐播放处理的进程或线程资源,相关的队列资源等。处于同一音乐播放组的客户端可以显示相同的一起听音乐界面,具有同步的音乐播放信息。例如,用户A邀请用户B一起听音乐,服务端建立一个音乐播放组,将用户A和用户B加入其中,后续如果用户B又邀请了用户C,则服务端将用户C也加入该音乐播放组中。音乐播放组可以表现为房间的形式,例如用户A可以在App中通过建立房间的功能,建立一起听音乐房间,服务端在后台同步建立一个与该房间对应的音乐播放组;用户B加入该房间时,服务端将用户B加入音乐播放组中。
不同的音乐播放组之间通常是相互隔离的状态,以防止信息错乱。服务端在创建音乐播放组时,可以为其分配唯一标识(ID),以区分不同的音乐播放组,实现隔离。例如在Java环境中,可以通过工具类java.util.UUID生成音乐播放组的ID,以roomID表示,生成过程可以如以下伪代码所示:
音乐播放组的唯一标识可视为音乐播放组的一种参数或属性,通过该参数来记录ID信息。此外,还可以为音乐播放组设置更多的参数,以表示音乐播放组其他方面的信息。例如设置RoomInfoDTO类,该类包括以下5个参数:
roomID,即音乐播放组的唯一标识,可以采用String数据(字符串);
creatorID,创建音乐播放组的用户ID,可以采用Long数据(长整型数据);
createTime,创建音乐播放组的时间,可以采用Long数据;
status,音乐播放组的状态,包括活跃、非活跃、关闭等,可以通过不同的数值表示不同的状态,可以采用String数据;
clientInfos,表示处于音乐播放组内的客户端信息,如客户端的版本,使用的操作***等,可以采用对象列表。
通过设置上述参数,可以对音乐播放组的信息进行全面有效的记录;并且,当音乐播放组的信息变化时,如音乐播放组的状态变更,加入新的用户,原用户退出等,通过更新参数值可以同步最新信息,无需记录或删除历史版本的数据。
如果客户端进行针对音乐播放的操作,包括暂停播放,继续播放,调整播放进度(如拖动进度条),切换音乐曲目(如切换到上一首或下一首),调整音乐列表(包括对列表中的曲目进行增删、调整曲目顺序等),调整播放模式(如在顺序播放、随机播放、单曲循环、列表循环等播放模式间切换)等,可以将操作信息发送至服务端,以便于服务端处理不同客户端的操作信息,实现不同客户端之间音乐播放的同步。
在一种可选的实施方式中,服务端可以创建音乐播放组,通过音乐播放组获取各客户端针对音乐播放的操作信息。即客户端的操作信息记录在客户端所在的音乐播放组中,从而实现了不同音乐播放组之间操作信息的隔离。进一步的,客户端可以将操作信息发送至音乐播放组的消息队列中,服务端通过消息队列有序地接收其中的每一条操作信息,以保证不同操作信息之间先后顺序的逻辑性。
通常情况下,用户单独听音乐时,如果进行了针对音乐播放的操作,该操作在本地执行即可,无需发送至服务端。服务商一般针对不同的操作***(如iOS、Android、Windows等),提供不同版本的客户端,每种版本的客户端可以执行基于相应***的指令协议。如用户进行切换音乐曲目的操作,在iOS和Android***中实现该操作的指令协议是不同的,每种***的客户端均包含了对应的一套指令协议,本示例性实施方式将客户端上的指令协议称为本地指令协议。
在同一音乐播放组内,可能会有不同***的客户端,采用不同的本地指令协议。如果iOS用户进行了切换音乐曲目的操作,iOS客户端将其处理为对应的操作信息,该操作信息可能无法被Android客户端识别。基于此,在一种可选的实施方式中,可以另外设置一套指令协议,能够同时适配于不同***的客户端,称为预设通用指令协议,预设通用指令协议可以同时部署在服务端与各种***的客户端。客户端响应于音乐播放操作,可以基于本地指令协议执行该音乐播放操作,并基于预设通用指令协议生成该音乐播放操作对应的操作信息,发送至服务端。由此,服务端所获取的操作信息是基于预设通用指令协议的操作信息,无论是哪种客户端发送的操作信息,均为相同的协议格式,便于服务端后续进行统一处理。
在一种可选的实施方式中,基于预设通用指令协议的操作信息,可以包括以下任意一项或多项信息:
操作类型,即用户进行了哪种类型的操作,包括播放(PLAY)、暂停(PAUSE)、切换上一首(PREVIOUS)、切换下一首(NEXT)、切歌(GOTO,表示切换到指定的某一首,如用户在列表中单击某一首歌);
操作前音乐标识,即用户进行操作前,所播放的音乐ID;
操作后音乐标识,即用户进行操作后,所播放的音乐ID;
播放进度,即用户进行操作后,音乐进度条位置的时间戳;
播放状态,即用户进行操作后,音乐的播放状态,包括播放、暂停等;
操作指令序号,***为本次操作分配的标识号,一般具有唯一性。
上述每项信息可以通过特定的参数来表示,例如表1示出了每项信息的参数名与示例性的参数值。
表1
名称 | 值 | 含义 |
commandType | PLAY | 操作类型 |
formerSongID | 85910 | 操作前音乐标识 |
targetSongID | 86640 | 操作后音乐标识 |
progress | 13319 | 播放进度 |
playStatus | PAUSE | 播放状态 |
commandSeq | 52007 | 操作指令序号 |
预设通用指令协议可以与各种***的本地指令协议形成对应关系,例如对预设通用指令协议中的“commandType”与本地指令协议中的操作类型参数建立对应关系,以及对其他的参数均建立对应关系,这样客户端能够将本地指令协议的操作信息转换为预设通用指令协议的操作信息。
在一种可选的实施方式中,步骤S210中服务端所获取的操作信息,可以是客户端在音乐播放组的界面内进行操作的信息。音乐播放组的界面即一起听音乐界面,用户在该界面内进行操作时,服务端需要获取操作信息,以同步给其他客户端,用户在该界面以外进行操作时,服务端无需获取操作信息,如用户在一起听音乐的过程中,切换到其他界面进行操作,该操作在客户端本地执行,无需发送至服务端,或者由音乐播放组以外的服务端模块获取操作信息。
本示例性实施方式中,为了实现步骤S210,需要至少两个客户端处于上述音乐播放组内,具体地,可以采用以下两种方式确定客户端的数量与音乐播放组的关系:
(1)当至少两个客户端均进行一起听音乐界面时,建立音乐播放组。例如,用户A邀请用户B一起听音乐,在用户B接受邀请之前,用户A处于单独听音乐的状态,服务端不建立音乐播放组,这样用户A进行的音乐播放操作信息并不发送至服务端,仅本地执行即可。在用户B接受邀请跳转到一起听音乐界面时,服务端建立音乐播放组,并将用户A和B加入其中,从该时刻起,用户A和B进入一起听音乐的状态,其操作信息需要发送至服务端。
(2)当至少两个客户端进入音乐播放组时,将音乐播放组设置为活跃状态。例如,用户A建立一起听音乐房间,服务端建立音乐播放组,此时房间内只有A一个用户,服务端将音乐播放组的状态设置为非活跃(或者空闲、休眠等),此时用户A的音乐播放操作信息并不发送至服务端,音乐播放组内可以不运行处理操作信息的相关进程或线程;当有其他用户加入该房间时,服务端将音乐播放组的状态设置为活跃,也表示用户进入一起听音乐的状态,用户的音乐播放操作信息需要发送至服务端,音乐播放组内开始运行上述进程或线程。
步骤S220中,对预设单位时间内各客户端的操作信息进行聚合处理,得到聚合指令。
聚合处理是指将多条操作信息进行综合叠加,得到聚合指令,聚合指令等效于将这多条操作信息完全执行一遍。预设单位时间是进行聚合处理的时间区间,也是同步音乐播放信息的时间区间。本示例性实施方式中,并非在客户端每次进行针对音乐播放的操作后,均将操作信息同步至其他客户端,而是在每个预设单位时间内执行操作信息的聚合处理,然后发送聚合指令到各客户端,相当于执行一次同步,例如可以在每个预设单位时间结束时执行一次同步。由此减少了客户端与服务端之间同步操作信息的交互次数,同时避免了不同客户端在相同或相近的时刻进行操作可能引起的操作顺序混乱。可以根据服务器性能、网络性能、实际场景的需求等确定预设单位时间,也可以在一起听音乐的过程中动态调整预设单位时间。一般的,预设单位时间较短,如设为100ms时,用户能够得到趋近于实时同步的感受,甚至完全感知不到与实时同步的差别。
实际应用中,可以采用不同的方式确定预设单位时间的起止,由此,步骤S220可以包括以下两种实现方式:
(1)以预设单位时间为周期,对每个周期内各客户端的操作信息进行聚合处理,得到每个周期的聚合指令。例如预设单位时间为100ms,可以以建立音乐播放组或者音乐播放组进入活跃状态(即第二个用户进入一起听音乐的房间)为第一个预设单位时间的起始,该时间加100ms为第一个预设单位时间的结束,也是第二个预设单位时间的起始,相邻两个预设单位时间之间无间隔。由此确定每个预设单位时间的起止时刻,这样通过简单设置定时器,可以在每个预设单位时间结束时执行操作信息的聚合处理。
(2)在上一次进行聚合处理后,以接收到各客户端的第一条操作信息为当前预设单位时间的起始,对当前预设单位时间内各客户端的操作信息进行聚合处理,得到当前预设单位时间的聚合指令。例如,上一次进行聚合处理后,经过了3s时间,接收到下一条操作信息,也就是说这3s时间内客户端均未进行音乐播放相关的操作,可以不计入预设单位时间内,以接收到下一条操作信息作为当前预设单位时间的起始;相邻两个预设单位时间可能存在一定的间隔。由此,能够从整体上增加每个预设单位时间内服务端所接收到的操作信息的数量,进一步减少了服务端进行聚合处理的次数以及与客户端的交互次数,提高效率。
为了对操作信息进行聚合处理,在一种可选的实施方式中,服务端可以获取操作信息后,先对其进行存储,例如,可以采用分布式缓存Redis(Remote Dictionary Server,远程字典服务,是一种数据库)存储操作信息。以任一条操作信息i为例,存储过程如图3所示,包括:
步骤S310,服务端可以根据音乐播放组的唯一标识与操作信息i的接收时间,确定操作信息i的键(key);
步骤S320,将操作信息i存储至上述键对应的数据集合。
其中,操作信息i的接收时间为到达服务端的时间戳,可以采用服务端时间作为标准,避免各客户端***时间不一致而造成不良影响。以commandOccurredTime表示操作信息的接收时间,对应的键可以是:key=roomID+“_”+commandOccurredTime。***为每个key建立对应的数据集合,用于存储操作信息。
在一种可选的实施方式中,服务端可以通过消息队列逐条获取其中的操作信息,这样在同一时间不会接收到属于同一音乐播放组的多条操作信息,从而保证操作信息的key具有唯一性。
在另一种可选的实施方式中,参考图4所示,步骤S310可以包括:
步骤S410,根据操作信息i的接收时间和预设单位时间计算操作信息i对应的单位时间序数;
步骤S420,根据音乐播放组的唯一标识与操作信息i对应的单位时间序数,确定操作信息i的键。
单位时间序数表示操作信息i的接收时间处于哪个预设单位时间内,根据预设单位时间的起止确定方式,可以采用相应的方法计算单位时间序数:
(1)如果以预设单位时间为周期,按照严格的周期确定预设单位时间的起始与结束,则操作信息i对应的单位时间序数可以是int(CommandOccurredTime/T),T表示预设单位时间,即接收时间除以预设单位时间后取整数部分,作为单位时间序数。由此,生成key的伪代码如下所示:
举例来说,某一音乐播放组的roomID=2784c514-29c0-7128-f163-xx,操作信息的接收时间commandOccurredTime=1594801634985,T=1000。计算得到:
key=2784c514-29c0-7128-f163-xx_1594801634
commandOccurredTime取值在1594801634000~1594801634999区间内的操作信息,key均为2784c514-29c0-7128-f163-xx_1594801634。
(2)如果以上一次进行聚合处理后接收到各客户端的第一条操作信息作为当前预设单位时间的起始,则可以在每个预设单位时间的起始时刻,记录该预设单位时间的起始时间戳,并分配唯一性的序数,后续每次接收到操作信息时,将接收时间与预设单位时间的起始时间戳相减,若差值小于T,则将预设单位时间的序数赋值给操作信息对应的单位时间序数。
无论采用上述哪种方法,在同一预设单位时间内接收的操作信息均具有相同的单位时间序数,属于同一音乐播放组、且接收时间在同一预设单位时间内的操作信息,具有相同的key。每个key对应的操作信息的数量不止一条,存储在同一数据集合中,便于以数据集合为单位,对操作信息进行聚合处理。
在一种可选的实施方式中,数据集合中的各操作信息可以按照接收时间的顺序排列,例如按照接收时间的倒序排列,接收时间最晚的操作信息排列在最前。例如,可以采用Redis中的有序集合zset数据结构来存储操作信息,其伪代码如下所示:
其中数据的score(在zset中表示权重)可以存储为操作信息的接收时间,zset中通过score对数据进行排序,从而实现每个预设单位时间内操作信息的有序排列。
基于zset数据结构,服务端在进行聚合处理前,可以获取预设单位时间内的操作信息列表,如以下伪代码所示:
操作信息列表中包含了顺序信息,以便于服务端根据不同操作信息之间的先后顺序进行聚合处理。
在一种可选的实施方式中,服务端在执行聚合处理时,可以对预设单位时间内各客户端的每种类型的操作信息分别进行聚合处理,得到每种类型的聚合指令。例如可以将一起听音乐界面内的操作对象划分为不同的类型,用户进行操作时,其操作对象所属的类型即为操作信息的类型;或者将操作信息划分为播放操作类型与列表操作类型,播放操作类型是指影响音乐播放状态(如当前播放曲目、播放进度、播放或暂停状态等)的一类操作,列表操作类型是指影响播放列表信息(如增删列表中的曲目,更改列表的播放模式、播放顺序等)的一类操作,对这两类操作信息分别进行聚合处理。
在一种可选的实施方式中,服务端可以按照预设的聚合规则,对预设单位时间内各客户端的每种类型的操作信息分别进行聚合处理,得到每种类型的聚合指令。聚合规则可以根据实际场景的需求进行具体设置,本公开不做限定。可以为每种类型的操作信息分别设置聚合规则,例如:
在预设单位时间内各客户端的播放操作类型的操作信息中,将接收时间最晚的操作信息作为播放操作类型的聚合指令。参考图5所示,用户A进行切换下一首的操作,用户B进行拖动进度条的操作,用户C进行切换到曲目7的操作,其中用户C的操作信息到达服务端的时间最晚,这三条操作信息的聚合指令为切换到曲目7,即用户C的操作信息。
在预设单位时间内各客户端的播放操作类型的操作信息中,将优先级最高且接收时间最晚的操作信息作为播放操作类型的聚合指令。例如,切换曲目的操作优先级高于调整进度的操作,这样选取接收时间最晚的切换曲目的操作,将其操作信息作为聚合指令;如果预设单位时间内存在接受时间更晚的调整进度的操作,则将该操作做无效处理。
将预设单位时间内各客户端的列表操作类型的操作信息进行合并,得到列表操作类型的聚合指令。参考图6所示,用户A进行增加曲目1和删除曲目2的操作,用户B进行增加曲目3的操作,用户C进行增加曲目4的操作,这四条操作信息的聚合指令为增加曲目1、3、4和删除曲目2,即完全合并每一条操作信息。
需要说明的是,每个预设单位时间的聚合指令的数量不限于一条,例如可以通过上述处理,得到预设单位时间的播放操作类型的聚合指令与列表操作类型的聚合指令。
在一种可选的实施方式中,服务端可以在每个预设单位时间结束时,执行预先建立的延时聚合任务,以对预设单位时间内各客户端的操作信息进行聚合处理。延时聚合任务是以预设单位时间的起始为基准,在一个预设单位时间后执行的任务。
在一种可选的实施方式中,可以在预设单位时间的起始时刻建立延时聚合任务,延时时间设置为一个预设单位时间。
延时聚合任务的主要内容可以包括:读取预设单位时间内的所有操作信息,执行聚合处理;在一些实施方式中,还可以包括将聚合处理后的聚合指令发送至各客户端。
在一种可选的实施方式中,可以通过时间轮来实现延时聚合任务,参考图7所示,包括:
步骤S710,建立以预设单位时间为单位刻度的时间轮;
步骤S720,在时间轮的每个刻度创建链表,指向对应的预设单位时间的延时聚合任务,以在到达每个刻度时,触发执行对应的链表所指向的延时聚合任务。
时间轮可以参考图8所示,每个刻度为一个预设单位时间T,时间轮的一周(round)为512个刻度,当然该数值可以根据需求设定。时间轮的初始化可以参考如下伪代码所示:
HashedWheelTimer playHashWheelTimer=new
HashedWheelTimer(playThreadFactory,100L,TimeUnit.MILLISECONDS)//设置以100ms为时间轮的单位时间
在时间轮的每个刻度创建链表,具体可以刻度线指示的位置处建立链表,例如图8中在2和3之间的刻度线处建立链表,指向预设单位时间2的延时聚合任务,这样当时间轮的指针指向该刻度线时,触发通过链表找到并执行该延时聚合任务。需要说明的是,可以在初始化时间轮后立即建立每个刻度的链表,也可以在指针指向前一刻度线时,建立后一刻度线的链表。实际上,建立链表即表示向时间轮中添加延时聚合任务,可以参考如下伪代码所示:
通过上述时间轮的设置,实现了定时器与延时聚合任务的关联,有利于更加精准、便利地控制延时聚合任务的时间。
步骤S230中,在预设单位时间结束时,将聚合指令发送至各客户端,使各客户端根据聚合指令同步音乐播放组的音乐播放信息。
音乐播放信息包括音乐播放状态、播放模式、列表信息等。由于聚合指令是对预设单位时间内所有的操作信息进行聚合后的等效指令,各客户端均执行聚合指令后,可以得到相同的音乐播放信息,由此实现了同步。即,每个预设单位时间结束时,进行一次同步,使用户得到近似于实时同步的体验。
由于每个预设单位时间内,服务端可能均需要向客户端发送聚合指令,而一起听音乐的过程通常会持续数分钟到数十分钟,导致此过程中会有频繁的聚合指令发送需求。基于此,在一种可选的实施方式中,服务端可以预先建立与各客户端的长连接,通过长连接发送聚合指令,相比于服务端与客户端之间常规的短连接,长连接可以保证聚合指令发送的稳定性,减少连接响应次数;并且,由于发送聚合指令接近于定时行为,使得该长连接中无需双方频繁进行链路检测,提高了效率。
图9示出了服务端与客户端之间的示例性连接方式。服务端可以通过HTTP(HyperText Transfer Protocol,超文本传输协议)的短连接与各客户端形成常规连接,该连接用于发送操作信息,或者客户端所进行的与一起听音乐无关的操作行为(如更改个人信息,收藏、转发、评论某一歌曲)的交互。此外,服务端可以部署IM(Instant Messaging,即时通讯)模块,例如在后台***中设置专门的IM服务器,用于向客户端提供即时聊天的功能;IM模块可以分别与各客户端建立长连接,服务端可以通过该长连接发送聚合指令,例如服务端生成聚合指令后,通过调用IM模块的接口,将聚合指令发送至客户端。这样无需另外再建立专门的长连接,节省了***资源。
在一种可选的实施方式中,聚合指令可以基于上述预设通用指令协议,该协议已经部署在不同***的客户端上,因而客户端在接收到聚合指令后,可以基于预设通用指令协议执行聚合指令。
本发明的示例性实施方式还提供一种由客户端所执行的音乐播放控制方法。参考图10所示,该音乐播放控制方法可以包括以下步骤S1010至S1030:
步骤S1010,当处于音乐播放组时,向服务端发送针对音乐播放的操作信息。
对客户端来说,加入一起听音乐的小组,进入一起听音乐的界面,创建一起听音乐的房间等,可以表示客户端进入音乐播放组。在此状态下,用户进行与一起听音乐相关的操作时,触发向服务端发送操作信息,与一起听音乐相关的操作,可以是用户在音乐播放组的界面(即一起听音乐的界面)内进行的操作,当然,用户也可以在其他界面中,通过快捷操作、窗口操作等方式控制一起听音乐的设置、状态等,也属于与一起听音乐相关的操作。
在一种可选的实施方式中,客户端可以向服务端发送基于预设通用指令协议的操作信息,预设通用指令协议对于不同***的客户端具有通用性,通常可以包括操作类型、操作前音乐标识、操作后音乐标识、播放进度、播放状态、操作指令序号中的任意一项或多项信息,具体可以参考表1的内容。由此,不同客户端发送的操作信息具有相同的协议格式,便于服务端进行统一处理。
在一种可选的实施方式中,客户端可以响应于音乐播放操作,基于本地指令协议执行音乐播放操作,然后基于预设通用指令协议生成音乐播放操作对应的操作信息。音乐播放操作即上述与一起听音乐相关的操作,客户端在接收到用户的操作后,首先基于本地指令协议执行该操作,然后将其转换为基于预设通用指令协议的操作信息,以便于发送至服务端。由此,当用户进行操作时,该操作首先在本地生效,然后经过服务端的聚合处理,以聚合指令的方式同步至其他客户端。这样避免用户操作后无法立即生效,导致用户误以为存在软件设置或者网络方面的问题。
步骤S1020,获取服务端在预设单位时间结束时反馈的聚合指令,该聚合指令为服务端对预设单位时间内上述音乐播放组的各客户端针对音乐播放的操作信息进行聚合处理所得到的。
服务端进行聚合处理的实施方式,可以参考上述步骤S220部分的内容。服务端通常在每个预设单位时间结束时,向客户端返回该预设单位时间的聚合指令。
在一种可选的实施方式,客户端可以通过预先建立的长连接,接收服务端在预设单位时间结束时反馈的聚合指令。由于在每个预设单位时间都会接收聚合指令,通过长连接的方式与服务端进行交互,可以提高交互的稳定性,并减少连接响应次数。
在一种可选的实施方式,客户端可以与服务端的IM模块建立长连接。由于IM模块本身需要通过长连接向客户端提供聊天服务,借用该长连接发送与接收聚合指令,无需另外再建立专门的长连接,节省了***资源。
步骤S1030,根据上述聚合指令同步音乐播放组的音乐播放信息。
聚合指令可以包括状态变更的信息,客户端通过执行聚合指令,将音乐播放组的音乐播放信息调整为聚合指令中的状态。一般的,音乐播放组的音乐播放信息主要包括两方面:音乐播放状态、播放列表信息。客户端可以根据聚合指令同步音乐播放组的音乐播放状态和/或播放列表信息,从而与其他客户端的信息保持同步。
在一种可选的实施方式中,聚合指令采用预设通用协议指令的格式,包括表1所示的各项信息,客户端按照其中操作后的各种信息,如操作后音乐标识、播放进度、播放状态等,调整音乐播放组在本地的音乐播放信息,使其与聚合指令中的状态一致。
在一种可选的实施方式中,服务端可能在预设单位时间内生成不同操作类型对应的聚合指令,并反馈给客户端。客户端可以分别执行不同类型的聚合指令,如执行播放操作类型的聚合指令,以同步调整音乐播放状态,执行列表操作类型的聚合指令,以同步调整播放列表信息,等等。
通过图10所示的方法,使客户端通过执行聚合指令的方式,实现一起听音乐过程中与其他客户端的信息同步,减少了客户端与服务端的交互次数,节省了***的性能开销,同时避免不同客户端之间操作信息的同步顺序错乱,提高了信息同步的准确性。
图11示出了本示例性实施方式中音乐播放控制方法的交互流程,其中,邀请端和受邀端均为客户端,邀请端是邀请其他用户一起听音乐的客户端,受邀端是受到一起听音乐邀请的客户端。流程具体包括:
邀请端发起邀请,服务端收到邀请后,转发给受邀端;受邀端如果接受邀请,反馈回服务端,服务端通知邀请端,然后建立音乐播放组,将邀请端与受邀端加入组内。
建立音乐播放组后,在第一个预设单位时间T内,邀请端可以将当前本地的播放信息,如正在播放的曲目、进度、播放列表信息、播放模式等发送至服务端,服务端在第一个预设单位时间结束时,生成包含邀请端当前播放信息的聚合指令,发送至邀请端和受邀端;邀请端和受邀端均执行聚合指令,进行一次同步,实际上受邀端同步为与邀请端的当前播放信息一致。
在第二个预设单位时间T内,邀请端进行拖动进度的操作,受邀端进行切歌操作,服务端接收到这两条操作信息,生成聚合指令,发送至邀请端和受邀端,使邀请端和受邀端进行再一次同步。
在第三个预设单位时间T内,邀请端和受邀端均未进行相关操作,服务端不发送聚合指令。
以此类推,在每个预设单位时间T内分别进行处理,直到邀请端和受邀端结束一起听音乐,例如所有用户均退出一起听音乐的界面。从而实现了在整个一起听音乐的过程中,各客户端之间音乐播放的同步。
示例性装置
本发明的示例性实施方式还提供了音乐播放控制装置,下面参考图12和图13对音乐播放控制装置进行说明。
图12示出了可配置于服务端的音乐播放控制装置1200,包括:
操作信息获取单元1210,用于获取处于同一音乐播放组的各客户端针对音乐播放的操作信息,其中,至少两个客户端处于音乐播放组内;
聚合处理单元1220,用于对预设单位时间内各客户端的操作信息进行聚合处理,得到聚合指令;
聚合指令发送单元1230,用于在预设单位时间结束时,将聚合指令发送至各客户端,使各客户端根据聚合指令同步音乐播放组的音乐播放信息。
在一种可选的实施方式中,操作信息获取单元1210,被配置为:
创建音乐播放组,通过音乐播放组获取各客户端针对音乐播放的操作信息。
在一种可选的实施方式中,操作信息获取单元1210,被配置为通过以下方式对所获取的任一操作信息进行存储:
根据音乐播放组的唯一标识与任一操作信息的接收时间,确定任一操作信息的键;
将任一操作信息存储至键对应的数据集合。
在一种可选的实施方式中,操作信息获取单元1210,被配置为:
根据任一操作信息的接收时间和预设单位时间计算任一操作信息对应的单位时间序数;
根据音乐播放组的唯一标识与任一操作信息对应的单位时间序数,确定任一操作信息的键。
在一种可选的实施方式中,在数据集合中,各操作信息按照接收时间的顺序排列。
在一种可选的实施方式中,聚合处理单元1220,被配置为:
在每个预设单位时间结束时,执行预先建立的延时聚合任务,以对预设单位时间内各客户端的操作信息进行聚合处理。
在一种可选的实施方式中,聚合处理单元1220,被配置为:
建立以预设单位时间为单位刻度的时间轮;
在时间轮的每个刻度创建链表,指向对应的预设单位时间的延时聚合任务,以在到达每个刻度时,触发执行对应的链表所指向的延时聚合任务。
在一种可选的实施方式中,聚合处理单元1220,被配置为:
以预设单位时间为周期,对每个周期内各客户端的操作信息进行聚合处理,得到每个周期的聚合指令。
在一种可选的实施方式中,聚合处理单元1220,被配置为:
在上一次进行聚合处理后,以接收到各客户端的第一条操作信息为当前预设单位时间的起始,对当前预设单位时间内各客户端的操作信息进行聚合处理,得到当前预设单位时间的聚合指令。
在一种可选的实施方式中,聚合处理单元1220,被配置为:
对预设单位时间内各客户端的每种类型的操作信息分别进行聚合处理,得到每种类型的聚合指令。
在一种可选的实施方式中,聚合处理单元1220,被配置为:
按照预设的聚合规则,对预设单位时间内各客户端的每种类型的操作信息分别进行聚合处理,得到每种类型的聚合指令。
在一种可选的实施方式中,聚合处理单元1220,被配置为:
在预设单位时间内各客户端的播放操作类型的操作信息中,将接收时间最晚的操作信息作为播放操作类型的聚合指令。
在一种可选的实施方式中,聚合处理单元1220,被配置为:
将预设单位时间内各客户端的列表操作类型的操作信息进行合并,得到列表操作类型的聚合指令。
在一种可选的实施方式中,操作信息获取单元1210,被配置为:
获取各客户端所发送的基于预设通用指令协议的操作信息。
在一种可选的实施方式中,上述基于预设通用指令协议的操作信息包括以下任意一项或多项信息:
操作类型、操作前音乐标识、操作后音乐标识、播放进度、播放状态、操作指令序号。
在一种可选的实施方式中,聚合指令发送单元1230,被配置为:
通过预先建立的长连接,将聚合指令发送至各客户端。
在一种可选的实施方式中,聚合指令发送单元1230,被配置为:
通过即时通讯模块,分别与各客户端建立长连接。
在一种可选的实施方式中,上述操作信息为客户端在音乐播放组的界面内进行操作的信息。
图13示出了可配置于客户端的音乐播放控制装置1300,包括:
操作信息发送单元1310,用于当处于音乐播放组时,向服务端发送针对音乐播放的操作信息;
聚合指令获取单元1320,用于获取服务端在预设单位时间结束时反馈的聚合指令,聚合指令为服务端对预设单位时间内音乐播放组的各客户端针对音乐播放的操作信息进行聚合处理所得到的;
播放信息同步单元1330,用于根据聚合指令同步音乐播放组的音乐播放信息。
在一种可选的实施方式中,操作信息发送单元1310,被配置为:
向服务端发送基于预设通用指令协议的操作信息。
在一种可选的实施方式中,音乐播放控制装置1300还可以包括操作信息处理单元,被配置为:
响应于音乐播放操作,基于本地指令协议执行音乐播放操作;
基于预设通用指令协议生成音乐播放操作对应的操作信息。
在一种可选的实施方式中,上述基于预设通用指令协议的操作信息包括以下任意一项或多项信息:
操作类型、操作前音乐标识、操作后音乐标识、播放进度、播放状态、操作指令序号。
在一种可选的实施方式中,聚合指令获取单元1320,被配置为:
通过预先建立的长连接,接收服务端在预设单位时间结束时反馈的聚合指令。
在一种可选的实施方式中,聚合指令获取单元1320,被配置为:
与服务端的即时通讯模块建立长连接。
在一种可选的实施方式中,上述操作信息为在音乐播放组的界面内进行操作的信息。
在一种可选的实施方式中,播放信息同步单元1330,被配置为:
根据聚合指令同步音乐播放组的音乐播放状态和/或播放列表信息。
此外,本发明实施方式的其他具体细节在上述方法的发明实施方式中已经详细说明,在此不再赘述。
示例性存储介质
本发明的示例性实施方式还提供了计算机可读存储介质,其可以实现为程序产品的形式,例如采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
该程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RE等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言-诸如Java、C++等,还包括常规的过程式程序设计语言-诸如"C"语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性电子设备
本发明的示例性实施方式还提供了电子设备,下面参考图14对电子设备进行说明。
图14显示的电子设备1400仅仅是一个示例,不应对本发明实施方式的功能和使用范围带来任何限制。
如图14所示,电子设备1400以通用计算设备的形式表现。电子设备1400的组件可以包括但不限于:至少一个处理单元1410、至少一个存储单元1420、连接不同***组件(包括处理单元1410和存储单元1420)的总线1430、显示单元1440。
其中,存储单元存储有程序代码,程序代码可以被处理单元1410执行,使得处理单元1410执行本说明书上述"示例性方法"部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元1410可以执行如图2所示的方法步骤等。
存储单元1420可以包括易失性存储单元,例如随机存取存储单元(RAM)1421和/或高速缓存存储单元1422,还可以进一步包括只读存储单元(ROM)1423。
存储单元1420还可以包括具有一组(至少一个)程序模块1425的程序/实用工具1424,这样的程序模块1425包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1430可以包括数据总线、地址总线和控制总线。
电子设备1400也可以与一个或多个外部设备1500(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/O)接口1450进行。电子设备1400还包括显示单元1440,其连接到输入/输出(I/O)接口1450,用于进行显示。并且,电子设备1400还可以通过网络适配器1460与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1460通过总线1430与电子设备1400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
应当注意,尽管在上文详细描述中提及了装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (46)
1.一种音乐播放控制方法,其特征在于,包括:
获取处于同一音乐播放组的各客户端针对音乐播放的操作信息,其中,至少两个所述客户端处于所述音乐播放组内;
按照预设的聚合规则,对预设单位时间内各所述客户端的每种类型的所述操作信息分别进行聚合处理,得到每种类型的聚合指令;
在所述预设单位时间结束时,将所述聚合指令发送至各所述客户端,使各所述客户端根据所述聚合指令同步所述音乐播放组的音乐播放信息;
其中,所述按照预设的聚合规则,对所述预设单位时间内各所述客户端的每种类型的所述操作信息分别进行聚合处理,得到每种类型的聚合指令,包括:
在所述预设单位时间内各所述客户端的播放操作类型的所述操作信息中,将接收时间最晚的操作信息作为所述播放操作类型的聚合指令;
将所述预设单位时间内各所述客户端的列表操作类型的操作信息进行合并,得到所述列表操作类型的聚合指令。
2.根据权利要求1所述的方法,其特征在于,所述获取处于同一音乐播放组的各客户端针对音乐播放的操作信息,包括:
创建所述音乐播放组,通过所述音乐播放组获取各所述客户端针对音乐播放的操作信息。
3.根据权利要求2所述的方法,其特征在于,在通过所述音乐播放组获取各所述客户端针对音乐播放的操作信息后,通过以下方式对其中的任一操作信息进行存储:
根据所述音乐播放组的唯一标识与所述任一操作信息的接收时间,确定所述任一操作信息的键;
将所述任一操作信息存储至所述键对应的数据集合。
4.根据权利要求3所述的方法,其特征在于,所述根据所述音乐播放组的唯一标识与所述任一操作信息的接收时间,确定所述任一操作信息的键,包括:
根据所述任一操作信息的接收时间和所述预设单位时间计算所述任一操作信息对应的单位时间序数;
根据所述音乐播放组的唯一标识与所述任一操作信息对应的单位时间序数,确定所述任一操作信息的键。
5.根据权利要求4所述的方法,其特征在于,在所述数据集合中,各所述操作信息按照接收时间的顺序排列。
6.根据权利要求1所述的方法,其特征在于,所述对预设单位时间内各所述客户端的所述操作信息进行聚合处理,得到聚合指令,包括:
在每个所述预设单位时间结束时,执行预先建立的延时聚合任务,以对所述预设单位时间内各所述客户端的所述操作信息进行聚合处理。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
建立以所述预设单位时间为单位刻度的时间轮;
在所述时间轮的每个刻度创建链表,指向对应的所述预设单位时间的延时聚合任务,以在到达每个刻度时,触发执行对应的所述链表所指向的延时聚合任务。
8.根据权利要求1所述的方法,其特征在于,所述对预设单位时间内各所述客户端的所述操作信息进行聚合处理,得到聚合指令,包括:
以所述预设单位时间为周期,对每个周期内各所述客户端的所述操作信息进行聚合处理,得到每个周期的聚合指令。
9.根据权利要求1所述的方法,其特征在于,所述对预设单位时间内各所述客户端的操作信息进行聚合处理,得到聚合指令,包括:
在上一次进行聚合处理后,以接收到各所述客户端的第一条操作信息为当前预设单位时间的起始,对当前预设单位时间内各所述客户端的所述操作信息进行聚合处理,得到当前预设单位时间的聚合指令。
10.根据权利要求1所述的方法,其特征在于,所述获取处于同一音乐播放组的各客户端针对音乐播放的操作信息,包括:
获取各所述客户端所发送的基于预设通用指令协议的所述操作信息。
11.根据权利要求10所述的方法,其特征在于,所述基于预设通用指令协议的所述操作信息包括以下任意一项或多项信息:
操作类型、操作前音乐标识、操作后音乐标识、播放进度、播放状态、操作指令序号。
12.根据权利要求1所述的方法,其特征在于,所述将所述聚合指令发送至各所述客户端,包括:
通过预先建立的长连接,将所述聚合指令发送至各所述客户端。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
通过即时通讯模块,分别与各所述客户端建立所述长连接。
14.根据权利要求1至13任一项所述的方法,其特征在于,所述操作信息为所述客户端在所述音乐播放组的界面内进行操作的信息。
15.一种音乐播放控制方法,其特征在于,包括:
当处于音乐播放组时,向服务端发送针对音乐播放的操作信息;
获取服务端在预设单位时间结束时反馈的聚合指令,所述聚合指令为所述服务端按照预设的聚合规则对所述预设单位时间内所述音乐播放组的各客户端的每种类型的操作信息分别进行聚合处理所得到的;其中,所述服务端在所述预设单位时间内各所述客户端的播放操作类型的所述操作信息中,将接收时间最晚的操作信息作为所述播放操作类型的聚合指令,将所述预设单位时间内各所述客户端的列表操作类型的操作信息进行合并,得到所述列表操作类型的聚合指令;
根据所述聚合指令同步所述音乐播放组的音乐播放信息。
16.根据权利要求15所述的方法,其特征在于,所述向服务端发送针对音乐播放的操作信息,包括:
向所述服务端发送基于预设通用指令协议的所述操作信息。
17.根据权利要求16所述的方法,其特征在于,在向所述服务端发送基于预设通用指令协议的所述操作信息前,所述方法还包括:
响应于音乐播放操作,基于本地指令协议执行所述音乐播放操作;
基于所述预设通用指令协议生成所述音乐播放操作对应的所述操作信息。
18.根据权利要求16所述的方法,其特征在于,所述基于预设通用指令协议的所述操作信息包括以下任意一项或多项信息:
操作类型、操作前音乐标识、操作后音乐标识、播放进度、播放状态、操作指令序号。
19.根据权利要求15所述的方法,其特征在于,所述获取服务端在预设单位时间结束时反馈的聚合指令,包括:
通过预先建立的长连接,接收所述服务端在所述预设单位时间结束时反馈的聚合指令。
20.根据权利要求19所述的方法,其特征在于,所述方法还包括:
与所述服务端的即时通讯模块建立所述长连接。
21.根据权利要求15至20任一项所述的方法,其特征在于,所述操作信息为在所述音乐播放组的界面内进行操作的信息。
22.根据权利要求15至20任一项所述的方法,其特征在于,所述根据所述聚合指令同步所述音乐播放组的音乐播放信息,包括:
根据所述聚合指令同步所述音乐播放组的音乐播放状态和/或播放列表信息。
23.一种音乐播放控制装置,其特征在于,包括:
操作信息获取单元,用于获取处于同一音乐播放组的各客户端针对音乐播放的操作信息,其中,至少两个所述客户端处于所述音乐播放组内;
聚合处理单元,用于按照预设的聚合规则,对预设单位时间内各所述客户端的每种类型的所述操作信息分别进行聚合处理,得到每种类型的聚合指令;其中,所述按照预设的聚合规则,对所述预设单位时间内各所述客户端的每种类型的所述操作信息分别进行聚合处理,得到每种类型的聚合指令,包括:在所述预设单位时间内各所述客户端的播放操作类型的所述操作信息中,将接收时间最晚的操作信息作为所述播放操作类型的聚合指令;将所述预设单位时间内各所述客户端的列表操作类型的操作信息进行合并,得到所述列表操作类型的聚合指令;
聚合指令发送单元,用于在所述预设单位时间结束时,将所述聚合指令发送至各所述客户端,使各所述客户端根据所述聚合指令同步所述音乐播放组的音乐播放信息。
24.根据权利要求23所述的装置,其特征在于,所述操作信息获取单元,被配置为:
创建所述音乐播放组,通过所述音乐播放组获取各所述客户端针对音乐播放的操作信息。
25.根据权利要求24所述的装置,其特征在于,所述操作信息获取单元,被配置为通过以下方式对所获取的任一操作信息进行存储:
根据所述音乐播放组的唯一标识与所述任一操作信息的接收时间,确定所述任一操作信息的键;
将所述任一操作信息存储至所述键对应的数据集合。
26.根据权利要求25所述的装置,其特征在于,所述操作信息获取单元,被配置为:
根据所述任一操作信息的接收时间和所述预设单位时间计算所述任一操作信息对应的单位时间序数;
根据所述音乐播放组的唯一标识与所述任一操作信息对应的单位时间序数,确定所述任一操作信息的键。
27.根据权利要求26所述的装置,其特征在于,在所述数据集合中,各所述操作信息按照接收时间的顺序排列。
28.根据权利要求23所述的装置,其特征在于,所述聚合处理单元,被配置为:
在每个所述预设单位时间结束时,执行预先建立的延时聚合任务,以对所述预设单位时间内各所述客户端的所述操作信息进行聚合处理。
29.根据权利要求28所述的装置,其特征在于,所述聚合处理单元,被配置为:
建立以所述预设单位时间为单位刻度的时间轮;
在所述时间轮的每个刻度创建链表,指向对应的所述预设单位时间的延时聚合任务,以在到达每个刻度时,触发执行对应的所述链表所指向的延时聚合任务。
30.根据权利要求23所述的装置,其特征在于,所述聚合处理单元,被配置为:
以所述预设单位时间为周期,对每个周期内各所述客户端的所述操作信息进行聚合处理,得到每个周期的聚合指令。
31.根据权利要求23所述的装置,其特征在于,所述聚合处理单元,被配置为:
在上一次进行聚合处理后,以接收到各所述客户端的第一条操作信息为当前预设单位时间的起始,对当前预设单位时间内各所述客户端的所述操作信息进行聚合处理,得到当前预设单位时间的聚合指令。
32.根据权利要求23所述的装置,其特征在于,所述操作信息获取单元,被配置为:
获取各所述客户端所发送的基于预设通用指令协议的所述操作信息。
33.根据权利要求32所述的装置,其特征在于,所述基于预设通用指令协议的所述操作信息包括以下任意一项或多项信息:
操作类型、操作前音乐标识、操作后音乐标识、播放进度、播放状态、操作指令序号。
34.根据权利要求23所述的装置,其特征在于,所述聚合指令发送单元,被配置为:
通过预先建立的长连接,将所述聚合指令发送至各所述客户端。
35.根据权利要求34所述的装置,其特征在于,所述聚合指令发送单元,被配置为:
通过即时通讯模块,分别与各所述客户端建立所述长连接。
36.根据权利要求23至35任一项所述的装置,其特征在于,所述操作信息为所述客户端在所述音乐播放组的界面内进行操作的信息。
37.一种音乐播放控制装置,其特征在于,包括:
操作信息发送单元,用于当处于音乐播放组时,向服务端发送针对音乐播放的操作信息;
聚合指令获取单元,用于获取服务端在预设单位时间结束时反馈的聚合指令,所述聚合指令为所述服务端按照预设的聚合规则对所述预设单位时间内所述音乐播放组的各客户端的每种类型的操作信息分别进行聚合处理所得到的;其中,所述服务端在所述预设单位时间内各所述客户端的播放操作类型的所述操作信息中,将接收时间最晚的操作信息作为所述播放操作类型的聚合指令,将所述预设单位时间内各所述客户端的列表操作类型的操作信息进行合并,得到所述列表操作类型的聚合指令;
播放信息同步单元,用于根据所述聚合指令同步所述音乐播放组的音乐播放信息。
38.根据权利要求37所述的装置,其特征在于,所述操作信息发送单元,被配置为:
向所述服务端发送基于预设通用指令协议的所述操作信息。
39.根据权利要求38所述的装置,其特征在于,所述装置还包括操作信息处理单元,被配置为:
响应于音乐播放操作,基于本地指令协议执行所述音乐播放操作;
基于所述预设通用指令协议生成所述音乐播放操作对应的所述操作信息。
40.根据权利要求38所述的装置,其特征在于,所述基于预设通用指令协议的所述操作信息包括以下任意一项或多项信息:
操作类型、操作前音乐标识、操作后音乐标识、播放进度、播放状态、操作指令序号。
41.根据权利要求37所述的装置,其特征在于,所述聚合指令获取单元,被配置为:
通过预先建立的长连接,接收所述服务端在所述预设单位时间结束时反馈的聚合指令。
42.根据权利要求41所述的装置,其特征在于,所述聚合指令获取单元,被配置为:
与所述服务端的即时通讯模块建立所述长连接。
43.根据权利要求37至42任一项所述的装置,其特征在于,所述操作信息为在所述音乐播放组的界面内进行操作的信息。
44.根据权利要求37至42任一项所述的装置,其特征在于,所述播放信息同步单元,被配置为:
根据所述聚合指令同步所述音乐播放组的音乐播放状态和/或播放列表信息。
45.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~22任一项所述的方法。
46.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~22任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010969795.2A CN112069353B (zh) | 2020-09-15 | 2020-09-15 | 音乐播放控制方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010969795.2A CN112069353B (zh) | 2020-09-15 | 2020-09-15 | 音乐播放控制方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112069353A CN112069353A (zh) | 2020-12-11 |
CN112069353B true CN112069353B (zh) | 2024-04-02 |
Family
ID=73695931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010969795.2A Active CN112069353B (zh) | 2020-09-15 | 2020-09-15 | 音乐播放控制方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112069353B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112911368A (zh) * | 2021-01-15 | 2021-06-04 | 北京字跳网络技术有限公司 | 互动方法、装置、电子设备和存储介质 |
CN113014994B (zh) * | 2021-04-14 | 2023-04-28 | 杭州网易云音乐科技有限公司 | 多媒体播放控制方法及装置、存储介质、电子设备 |
CN113360509A (zh) * | 2021-06-03 | 2021-09-07 | 广州小鹏智慧充电科技有限公司 | 一种收藏音乐同步方法和装置 |
CN114584822B (zh) * | 2022-03-03 | 2023-09-15 | 北京字跳网络技术有限公司 | 一种同步播放方法、装置、终端设备和存储介质 |
CN114827698B (zh) * | 2022-03-22 | 2024-02-02 | 北京字跳网络技术有限公司 | 一种播放信息的同步方法、装置、终端设备和存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864868A (en) * | 1996-02-13 | 1999-01-26 | Contois; David C. | Computer control system and user interface for media playing devices |
GB0426847D0 (en) * | 2004-12-08 | 2005-01-12 | Ibm | Method and system of committing operations of a synchronised transaction |
WO2009120301A2 (en) * | 2008-03-25 | 2009-10-01 | Square Products Corporation | System and method for simultaneous media presentation |
KR20130089895A (ko) * | 2012-01-10 | 2013-08-13 | 지만석 | 음원 스트리밍 서버에서 음악 같이 듣기 방법 |
CN104618785A (zh) * | 2014-04-16 | 2015-05-13 | 腾讯科技(北京)有限公司 | 音视频播放方法、装置及*** |
CN107924391A (zh) * | 2015-04-20 | 2018-04-17 | 盈发伟公司 | 共享协同编辑文档的方法和装置 |
CN107943777A (zh) * | 2017-12-14 | 2018-04-20 | 北京久蓉科技有限公司 | 一种协同编辑、协同处理方法、装置、设备及存储介质 |
CN108886523A (zh) * | 2016-03-31 | 2018-11-23 | 微软技术许可有限责任公司 | 交互式在线音乐体验 |
CN111385632A (zh) * | 2020-03-06 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 多媒体互动方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4555072B2 (ja) * | 2002-05-06 | 2010-09-29 | シンクロネイション インコーポレイテッド | ローカライズされたオーディオ・ネットワークおよび関連するディジタル・アクセサリ |
US9635131B2 (en) * | 2015-02-05 | 2017-04-25 | Qwire Inc. | Media player distribution and collaborative editing |
-
2020
- 2020-09-15 CN CN202010969795.2A patent/CN112069353B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864868A (en) * | 1996-02-13 | 1999-01-26 | Contois; David C. | Computer control system and user interface for media playing devices |
GB0426847D0 (en) * | 2004-12-08 | 2005-01-12 | Ibm | Method and system of committing operations of a synchronised transaction |
WO2009120301A2 (en) * | 2008-03-25 | 2009-10-01 | Square Products Corporation | System and method for simultaneous media presentation |
KR20130089895A (ko) * | 2012-01-10 | 2013-08-13 | 지만석 | 음원 스트리밍 서버에서 음악 같이 듣기 방법 |
CN104618785A (zh) * | 2014-04-16 | 2015-05-13 | 腾讯科技(北京)有限公司 | 音视频播放方法、装置及*** |
CN107924391A (zh) * | 2015-04-20 | 2018-04-17 | 盈发伟公司 | 共享协同编辑文档的方法和装置 |
CN108886523A (zh) * | 2016-03-31 | 2018-11-23 | 微软技术许可有限责任公司 | 交互式在线音乐体验 |
CN107943777A (zh) * | 2017-12-14 | 2018-04-20 | 北京久蓉科技有限公司 | 一种协同编辑、协同处理方法、装置、设备及存储介质 |
CN111385632A (zh) * | 2020-03-06 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 多媒体互动方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112069353A (zh) | 2020-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112069353B (zh) | 音乐播放控制方法、装置、存储介质及电子设备 | |
CN110765744B (zh) | 多人协同文档编辑方法及*** | |
CN107995101B (zh) | 一种用于将语音消息转为文本信息的方法与设备 | |
US20170026686A1 (en) | Synchronizing audio content to audio and video devices | |
CN110597774A (zh) | 一种文件分享方法、***、装置、计算设备及终端设备 | |
CN105072143A (zh) | 基于人工智能的智能机器人与客户端的交互*** | |
EP3886452B1 (en) | Method for sharing media content, terminal device, and content sharing system | |
US11736749B2 (en) | Interactive service processing method and system, device, and storage medium | |
JP2014523568A (ja) | 効率的な状態調整 | |
CN104700836A (zh) | 一种语音识别方法和*** | |
CN113711618B (zh) | 创作包括引用视频内容的键入的超链接的评论 | |
CN113728591B (zh) | 预览由评论中键入的超链接引用的视频内容 | |
WO2023179406A1 (zh) | 一种播放信息的同步方法、装置、终端设备和存储介质 | |
US10666588B2 (en) | Method for sharing media content, terminal device, and content sharing system | |
US11632581B2 (en) | Playlist switching method, apparatus and system, terminal and storage medium | |
CN108415908B (zh) | 一种多媒体数据的处理方法及服务器 | |
CN114244793B (zh) | 信息处理方法、装置、设备及存储介质 | |
CN111541905B (zh) | 一种直播方法、装置、计算机设备和存储介质 | |
CN109948082A (zh) | 直播信息处理方法及装置、电子设备、存储介质 | |
US11456981B2 (en) | System and method for capturing, storing, and transmitting presentations | |
CN108881281A (zh) | 一种故事机的播放方法、装置、***、设备及存储介质 | |
US20200288192A1 (en) | Synchronized media presentation | |
US11627182B2 (en) | Share based augmented reality content service system | |
US20230283740A1 (en) | Front-end clipping using visual cues | |
US20170316768A1 (en) | Methods and systems for synchronizing an audio clip extracted from an original recording with corresponding lyrics |
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 |