一种播放信息的同步方法、装置、终端设备和存储介质与流程

文档序号:30960461发布日期:2022-07-30 12:55阅读:139来源:国知局
一种播放信息的同步方法、装置、终端设备和存储介质与流程

1.本公开实施例涉及信息共享技术,尤其涉及一种播放信息的同步方法、装 置、终端设备和存储介质。


背景技术:

2.随着网络技术的不断发展,泛娱乐场景下的体验共享成为了互联网领域关 注的焦点,各个共享参与者通过对音视频信息的播放控制,同步欣赏音视频信 息,体验共享播控。
3.现有技术中,音视频信息的共享参与者分为不同的身份,以带有视频分享 的线上会议为例,参与者身份包括主持人、嘉宾和观众,主持人是具有切换、 暂停等视频操控权限,可以语音与嘉宾进行互动;嘉宾可以观看主持人分享的 视频,并与主持人进行互动,但无视频操控权限;观众仅可以观看主持人分享 的视频,无法与主持人互动,也无视频操控权限。
4.但这样的共享方式,各个共享参与者实质上并不具备相同的控制权限,没 有实现共享播控,共享参与者的参与度极低,用户体验较差。


技术实现要素:

5.本公开提供了一种播放信息的同步方法、装置、终端设备和存储介质,以 实现播放组中各客户端的播放信息同步更新。
6.第一方面,本公开实施例提供了一种播放信息的同步方法,应用于第一客 户端中,包括:
7.响应于获取到播放组中一个或多个第二客户端中的任意一个发出的播放同 步消息,根据所述播放同步消息,更新当前播放信息;
8.响应于获取到用户操作指令展示匹配的目标播放信息,并将所述目标播放 信息,通过播放同步消息发送给播放组中所述一个或多个第二客户端,以使所 述一个或多个第二客户端根据所述目标播放信息更新各自播放信息。
9.第二方面,本公开实施例提供了一种播放信息的同步装置,应用于第一客 户端中,包括:
10.同步消息获取模块,用于响应于获取到播放组中一个或多个第二客户端中 的任意一个发出的播放同步消息,根据所述播放同步消息,更新当前播放信息;
11.播放信息更新模块,用于响应于获取到用户操作指令展示匹配的目标播放 信息,并将所述目标播放信息,通过播放同步消息发送给播放组中所述一个或 多个第二客户端,以使所述一个或多个第二客户端根据所述目标播放信息更新 各自播放信息。
12.第三方面,本公开实施例提供了一种终端设备,包括存储器、处理装置及 存储在存储器上并可在处理装置上运行的计算机程序,处理装置执行程序时实 现本公开任意实施例的播放信息的同步方法。
13.第四方面,本公开实施例提供了一种包含计算机可执行指令的存储介质, 计算机可执行指令在由计算机处理器执行时用于执行本公开任意实施例的播放 信息的同步方法。
14.本公开实施例的技术方案,第一客户端在获取到播放组中第二客户端发出 的播放同步消息时,根据播放同步消息更新当前播放信息,而在获取到用户操 作指令时,则将当前播放信息通过播放同步消息,发送给播放组中的其它客户 端,以使其它客户端更新各自播放信息,确保了播放组中各客户端的播放信息 一致,同时,使得播放组中的各个用户具备相同的控制权限,提升了用户的共 享参与度。
附图说明
15.结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、 优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或 相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
16.图1是本公开一种播放信息的同步方法的一个实施例的流程图;
17.图2是本公开一种播放信息的同步方法的一个实施例的流程图;
18.图3是本公开一种播放信息的同步方法的一个实施例的流程图;
19.图4a是本公开一种播放信息的同步方法的一个实施例的流程图;
20.图4b是本公开一种播放列表同步更新的流程示意图;
21.图5是本公开一种播放信息的同步方法的一个实施例的流程图;
22.图6是本公开一种播放信息的同步方法的一个实施例的流程图;
23.图7是本公开实施例七中的一种播放信息的同步装置的结构框图;
24.图8是本公开实施例八中的一种终端设备的结构框图。
具体实施方式
25.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开 的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不 应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和 完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用, 并非用于限制本公开的保护范围。
26.应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序 执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行 示出的步骤。本公开的范围在此方面不受限制。
27.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术 语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”; 术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示
ꢀ“
至少一些实施例”。其他术语的相关定义将在下文描述中给出。
28.需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、 模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺 序或者相互依存关系。
29.需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性 的,本领
域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为
ꢀ“
一个或多个”。
30.本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说 明性的目的,而并不是用于对这些消息或信息的范围进行限制。
31.实施例一
32.图1是本公开实施例一提供的一种播放信息的同步方法的流程图,本实施 例可适用于当前客户端根据播放组中其它客户端的播放同步消息,更新当前播 放信息,该方法可以由本公开实施例中的播放信息的同步装置来执行,该装置 可以通过软件和/或硬件实现,并集成在客户端中,该客户端可安装于手机或电 脑等终端设备中,该方法具体包括如下步骤:
33.s110、响应于获取到播放组中一个或多个第二客户端中的任意一个发出的 播放同步消息,根据所述播放同步消息,更新当前播放信息。
34.播放组是由用户创建的音频和/或视频信息的播放群组,播放组中的各个用 户在该群组中拥有相同的播放控制权限,且各个客户端中展示相同的播放信息; 其中,客户端包括安装于终端设备中的应用程序(application,app);播放信 息包括当前正在播放的音视频信息、播放进度、播放音量、播放状态(暂停、 停止或播放)、播放列表以及其它业务信息(例如,是否被点赞、是否被收藏) 等。播放同步消息,是客户端检测到用户的播放信息变更后,向其它客户端发 出的播放信息更新消息,客户端将当前播放信息发送给播放组中的其它客户端, 以引导其它客户端完成播放信息更新,确保播放组中各个客户端展示的播放信 息一致。
35.第一客户端响应于获取到用户发出的播放组的创建指令,创建播放组并记 录播放组的组标识以及第一客户端在播放组中的组内序号;其中,组标识是服 务器为播放组分配的标识信息;组内序号是由服务器根据客户端加入播放组的 先后顺序,为各个客户端分配的组内标识;当第一客户端作为播放组的创建者 时,显然第一客户端的组内序号为1,即第一个加入播放组的客户端;第一客 户端响应于获取到用户发出的播放组的分享指令,向至少一个目标客户端发出 该播放组的邀请请求,以引导目标客户端加入播放组中。
36.第一客户端响应于获取到其它客户端发出的播放组的邀请请求,向用户展 示该邀请请求,并在获取到用户发出的加入指令时,加入该播放组并记录播放 组的组标识和第一客户端在播放组内的组内序号;当第一客户端作为播放组的 非创建者时,显然第一客户端的组内序号不为1,服务器根据第一客户端加入 播放组的顺序,为第一客户端分配组内序号,例如,第一客户端是第二个加入 该播放组的客户端,服务器为第一客户端分配的组内序号则为2。
37.s120、响应于获取到用户操作指令展示匹配的目标播放信息,并将所述目 标播放信息,通过播放同步消息发送给播放组中所述一个或多个第二客户端, 以使所述一个或多个第二客户端根据所述目标播放信息更新各自播放信息。
38.用户操作指令也即用户在播放组内执行的播控操作,具体包括暂停播放、 开始播放、切至下一首、切换列表循环模式、调整播放进度,以及其它业务操 作(例如,点赞、收藏)等,还包括在播放列表中增加播放项、删除播放项以 及调整播放项位置等操作。
39.客户端在获取到用户操作指令后,响应该用户操作指令,即展示与该用户 操作指令匹配的目标播放信息,同时,可以将目标播放信息通过一个播放同步 消息,完整的发送
给其它客户端,也可以将目标播放信息拆分后,通过多个播 放同步消息,分批次的发送给其它客户端,上述其它客户端根据一个或多个播 放同步消息中的目标播放信息完成更新;还可以将目标播放信息存储至服务器 中,并通过播放同步消息将目标播放信息的标识信息发送给其它客户端,上述 其它客户端根据目标播放信息的标识信息,获取服务器中存储的目标播放信息, 进而更新播放信息,确保了播放组内各客户端的播放信息一致。
40.可选的,在本公开实施例中,所述播放信息的同步方法,响应于获取到语 音通话指令,将当前展示页面中的语音通话按键设置为点亮状态,并将获取到 的第一语音信息发送给所述一个或多个第二客户端,以使所述一个或多个第二 客户端播报所述第一语音信息;响应于获取到播放组中一个或多个第二客户端 中的任意一个发出的第二语音信息,播放所述第二语音信息,并通过当前展示 页面中匹配的所述第二客户端的头像信息,展示播报动效;响应于获取到播放 组中一个或多个第二客户端中的任意一个发出的业务操作标识,根据所述业务 操作标识,更新当前展示页面中匹配的业务图标;其中,业务操作标识包括播 放项点赞和播放项收藏;响应于获取到播放组中一个或多个第二客户端中的任 意一个发出的播放组结束指令,展示所述播放组的播放记录。
41.具体的,用户通过语音通话按键点击开启语音通话功能后,客户端将语音 通话按键设置为点亮状态,并将用户发出的语音信息发送给播放组中的其它客 户端,在实现播放组内共享播控的同时,使得播放组内的各个客户端具备了语 音通信功能,增强了客户端之间的沟通便利性;而在获取到播放组中其它客户 端发出的语音信息时,在播放该语音信息的同时,通过该语音信息发出者的头 像信息,展示匹配的播报动效,以使当前语音信息发出者的头像信息,区别于 其它客户端;当客户端获取到播放组中其它客户端发出的播放项点赞或播放项 收藏等播控动作时,根据已点赞或者已收藏的客户端数量,以不同的形态展示 业务图标。
42.例如,当获取到播放组中其它客户端发出的播放项收藏操作时,如果播放 组内仅有一个客户端收藏了该播放项,即以单颗心形图标展示该播放项已被一 人收藏;如果播放组内已有两个客户端收藏了该播放项,即以双心嵌套图标展 示该播放项已被两人收藏,以此提高展示信息的趣味性;当客户端获取到其他 客户端发出的播放组结束指令,或者自身检测到用户发出播放组结束指令时, 展示播放组的播放记录,例如,本次播放时间、已播放完成的播放项数量、被 两个或两个以上客户端点赞的播放项数量、被两个或两个以上客户端收藏的播 放项数量等,以此为各个客户端提供播放组的完整播放记录。
43.本公开实施例的技术方案,第一客户端在获取到播放组中第二客户端发出 的播放同步消息时,根据播放同步消息更新当前播放信息,而在获取到用户操 作指令时,则将当前播放信息通过播放同步消息,发送给播放组中的其它客户 端,以使其它客户端更新各自播放信息,确保了播放组中各客户端的播放信息 一致,同时,使得播放组中的各个用户具备相同的控制权限,提升了用户的共 享参与度。
44.实施例二
45.图2是本公开实施例二提供的一种播放信息的同步方法,本实例在上述实 施例的基础上进行具体化,在本公开实施例中,当播放同步消息为列表同步消 息,且列表同步消息中的第一播放列表标识,与当前播放列表标识相同时,根 据列表同步消息中第一播放列表的分区摘要,以及当前播放列表的分区摘要, 更新当前播放列表,该方法具体包括:
46.s210、响应于获取到播放组中一个或多个第二客户端中的任意一个发出的 列表同步消息,判断所述列表同步消息中的第一播放列表标识,是否与当前播 放列表标识相同。
47.列表同步消息,是客户端检测到用户的播放列表更新操作后,向播放组中 其它客户端发出的播放列表同步更新的提示消息,客户端将当前播放列表标识 发送给播放组中的其它客户端,以引导其它客户端完成播放列表更新,确保播 放组中各个客户端展示的播放列表一致;播放列表标识是播放列表的身份信息, 在本公开实施例中,播放列表标识可以基于通用唯一识别码(universally uniqueidentifier,uuid)技术生成,以确保播放列表标识的唯一性;当客户端检测到 用户的列表切换动作时,本地播放列表切换为新播放列表,播放列表标识也相 应改变;而当播放列表中出现播放项的添加、删除和位置调整等操作时,可以 将上述操作看作同一个播放列表内部的播放项变更,即此时播放列表标识不发 生改变;特别的,当客户端检测到用户基于当前播放列表的随机播放操作(即 触发shuffle函数指令)时,由于播放列表中播放项的播放位置变动较大,同样 视为切换为新播放列表,即此时播放列表标识也相应改变。
48.可选的,在本公开实施例中,所述响应于获取到用户操作指令展示匹配的 目标播放信息,并将所述目标播放信息,通过播放同步消息发送给播放组中所 述一个或多个第二客户端,包括:响应于获取到列表切换指令,展示对应的第 二播放列表,并获取第二播放列表标识以及所述第二播放列表的分区信息;其 中,所述分区信息包括分区标识和分区摘要;向播放组中所述一个或多个第二 客户端发出列表同步消息,以使所述一个或多个第二客户端根据所述第二播放 列表标识以及所述第二播放列表的分区信息,更新各自播放列表。
49.具体的,客户端检测到用户的列表切换指令,即用户将播放列表切换为新 播放列表,或者获取到shuffle函数指令时,响应该列表切换指令,即展示该指 令对应的播放列表(即第二播放列表),并获取第二播放列表标识;再将第二播 放列表中的播放项,根据播放项阈值划分为一个或多个分区;其中,播放项阈 值可以根据需要设定,例如,将播放项阈值设定为100,即每100个播放项设 定为一个分区,假设第二播放列表中包括256个播放项,即播放项1至播放项100为第一分区,播放项101至播放项200为第二分区,播放项201至播放项 256为第三分区。
50.同时,为每个分区设置一个分区标识,并计算每个分区的分区摘要,分区 摘要与该分区内的播放项标识相关;例如,将每个分区内的播放项标识依次连 接后,通过md5信息摘要算法(md5 message-digest algorithm)或者安全散 列算法1(sha1(secure hash algorithm 1,sha1)等方式计算当前分区的分 区摘要;进而客户端向播放组中的其它客户端发出列表同步消息,以引导其它 客户端根据第二播放列表标识、第二播放列表的分区标识,以及第二播放列表 的分区摘要更新各自播放列表,确保播放组中各个客户端展示相同的播放列表。
51.可选的,在本公开实施例中,所述响应于获取到用户操作指令展示匹配的 目标播放信息,并将所述目标播放信息,通过播放同步消息发送给播放组中所 述一个或多个第二客户端,包括:响应于获取到列表调整指令,展示对应的第 三播放列表,并获取与播放项调整相关的目标分区的分区信息;向播放组中所 述一个或多个第二客户端发出列表同步消
息,以使所述一个或多个第二客户端 根据第三播放列表标识以及所述目标分区的分区信息,更新各自播放列表。
52.具体的,列表调整指令,即用户在当前播放列表内触发播放项的增加、删 除以及位置调整等操作,客户端响应该列表调整指令,即展示该指令对应的播 放列表(即第三播放列表);当用户触发播放项的增加操作时,客户端将新插入 的播放项与该播放项之前的相邻播放项分配于同一个分区内,以上述技术方案 为例,在播放项105之后插入一个播放项,新插入的播放项与播放项105均位 于第二分区内;如果在播放项100之后插入一个播放项,新插入播放项则位于 第一分区内,此时第一分区包括101个播放项,允许超过播放项阈值;如果在 播放列表的最前端插入一个播放项,则将该播放项分配于第一分区内;特别的, 位置调整操作可以视为在调整前的位置删除一个播放项,且在调整后的位置增 加一个播放项,即一个位置调整操作可以视为一个增加操作与一个删除操作的 组合。
53.如上述技术方案所述,在获取列表调整指令后,播放列表标识不变,分区 数量不变,各个分区的分区标识也不变,未发生播放项变化的分区的摘要也不 变,而播放项发生变化的分区的摘要则需要重新计算;然后客户端向播放组中 的其它客户端发出列表同步消息,以使其它客户端根据第四播放列表标识更新 各自播放列表;通过发出目标分区的分区信息,减少了客户端之间的数据传输 量,使得客户端仅需要针对存在播放项变化的分区进行更新,进一步提高了播 放列表的同步更新效率。
54.s220、若所述第一播放列表标识与所述当前播放列表标识相同,则根据所 述列表同步消息中第一播放列表的分区摘要,以及当前播放列表的分区摘要, 通过匹配的所述第二客户端获取差异分区的播放项信息,以更新当前播放列表。
55.如果获取到的第一播放列表标识与当前播放列表标识相同,表明第二客户 端与第一客户端展示的播放列表相同,但由于第二客户端中执行了播放项的增 加、删除或位置调整等操作,使得第二客户端中播放列表的播放项与第一客户 端中的播放项不一致,因此,将第一播放列表的分区摘要与当前播放列表的分 区摘要进行比对,获取存在播放项差异的分区,并将差异分区标识发送给第二 客户端,以使第二客户端将差异分区标识对应的分区下的播放项信息,发送给 第一客户端,第一客户端根据获取到的差异分区下的播放项信息,更新对应的 分区;其中,播放项信息即播放项的详情信息,可以包括名称、作者、发布时 间、时长等信息。
56.如果获取到的第一播放列表标识与当前播放列表标识不同,表明第二客户 端与第一客户端当前展示不同的播放列表,第二客户端中执行了列表切换动作, 因此,第一客户端需要获取第一播放列表中全部分区下的播放项信息,进而第 一客户端根据获取到的第一播放列表中全部分区下的播放项信息,更新自身的 播放列表,以确保第一客户端与第二客户端展示相同的播放项信息。
57.可选的,在本公开实施例中,所述列表同步消息还包括至少一个分区的播 放项信息;在判断所述列表同步消息中的第一播放列表标识,是否与当前播放 列表标识相同前,还包括:根据所述列表同步消息中所述至少一个分区的播放 项信息,更新当前播放列表中对应的分区;在判断所述列表同步消息中的第一 播放列表标识,是否与当前播放列表标识相同后,还包括:若所述第一播放列 表标识与所述当前播放列表标识相同,则根据所述列表同步消息中第一播放列 表的分区摘要,以及当前播放列表的分区摘要,获取除所述至少
一个分区之外 的其它分区标识,并向匹配的所述第二客户端发出分片请求消息,以获取所述 其它分区标识对应的播放项信息。
58.具体的,客户端发出的列表同步消息中,播放列表标识、分区标识以及分 区摘要通常仅需要占据较少的存储空间,为了充分利用列表同步消息的传输空 间,还可以在列表同步消息中加入一个或多个分区的播放项信息;其中,当客 户端基于列表切换指令发出列表同步消息时,将分区序号最小一个或多个分区 的播放项信息加入列表同步消息中;当客户端基于列表调整指令发出列表同步 消息时,加入与播放项调整相关且分区序号最小的一个或多个分区的播放项信 息加入列表同步消息中;播放组中的其它客户端在获取到该列表同步消息时, 直接根据播放项信息完成对应分区的更新,以提高播放列表的更新效率;同时, 由于第二客户端发出的列表同步消息中,已经包括了一个或多个分区的播放项 信息,且第一客户端已基于上述一个或多个分区完成了部分分区的播放项更新, 因此,第一客户端向第二客户端发出的分片请求消息时,已完成播放项更新的 分区不再重复获取,仅获取除上述一个或多个分区之外其他分区的播放项信息 即可,以减少客户端之间的数据传输频次以及数据传输量。
59.可选的,在本公开实施例中,所述播放信息的同步方法,还包括:响应于 获取到播放组中一个或多个第二客户端中的任意一个发出的分片请求消息,判 断所述分片请求消息中第四播放列表标识是否与当前播放列表标识相同;若所 述第四播放列表标识与当前播放列表标识相同,则根据所述分片请求消息中的 分区标识,向匹配的所述第二客户端发送播放项信息;若所述第四播放列表标 识与当前播放列表标识不同,则放弃所述分片请求消息。
60.具体的,第一客户端获取到第二客户端发出的分片请求消息时,如果分片 请求消息中第四播放列表标识与当前播放列表标识相同,表明第一客户端与第 二客户端中当前展示相同的播放列表,进而根据分片请求消息中的分区标识, 发送匹配的分区下的播放项信息,以确保播放列表中播放项信息的一致;如果 分片请求消息中第四播放列表标识与当前播放列表标识不同,表明第一客户端 与第二客户端当前展示不同的播放列表,由于播放列表不同,因此,分片请求 消息中的分区标识已不存在于第一客户端的播放列表中,此时放弃该分区请求 消息。
61.可选的,在本公开实施例中,在获取第二播放列表标识以及所述第二播放 列表的分区信息后,还包括:将所述第二播放列表的播放项信息,通过至少一 个列表同步消息发送给所述一个或多个第二客户端,以使所述一个或多个第二 客户端根据所述第二播放列表的播放项信息,更新各自播放列表。客户端在获 取到列表切换指令后,实质上需要将整个播放列表全部发送给播放组中的其它 客户端,才能确保播放组中各个客户端的播放列表一致,但当整个播放列表的 播放项信息较多时,无法通过一个列表同步消息完成所有播放项信息的发送, 因此,可以将各个分区的播放项分批次发送给其它客户端,例如,每个列表同 步消息均包括一个分区下的播放项信息,即通过依次发出多个列表同步消息, 将当前播放列表的播放项信息完整的发送给其它客户端,进一步确保客户端的 播放列表变更时,各个客户端中播放项信息的一致。
62.本公开实施例的技术方案,响应于获取到播放组中第二客户端发出的列表 同步消息,若第一播放列表标识与当前播放列表标识相同,则根据列表同步消 息中第一播放列
表的分区摘要,以及当前播放列表的分区摘要,通过第二客户 端获取差异分区的播放项信息,确保了播放组中各个客户端的播放列表一致, 减少了客户端之间的传输数据量,节省了占用的通信资源,同时提高了客户端 之间的传输速率,实现了播放列表的及时更新,确保了共享播控的实时性。
63.实施例三
64.图3是本公开实施例三提供的一种播放信息的同步方法,本实例在上述实 施例的基础上进行具体化,在本公开实施例中,当播放同步消息为列表同步消 息,且列表同步消息中的第一播放列表标识,与当前播放列表标识不同时,根 据第一播放列表标识,获取服务器存储的第一播放列表的播放项信息,以更新 当前播放列表,该方法具体包括:
65.s310、响应于获取到播放组中一个或多个第二客户端中的任意一个发出的 列表同步消息,判断所述列表同步消息中的第一播放列表标识,是否与当前播 放列表标识相同。
66.在本公开实施例中,播放列表标识可以通过服务器获取;其中,播放列表 标识可以基于uuid技术生成,以确保播放列表标识的唯一性;当客户端检测 到用户的列表切换动作时,本地播放列表切换为新播放列表,播放列表标识也 相应改变;当播放列表中检测到播放项的添加、删除和位置调整等操作时,将 上述操作同样视为播放列表出现变更,即此时播放列表标识也同样改变;特别 的,当客户端检测到用户基于当前播放列表的随机播放操作(即触发shuffle函 数指令)时,由于播放列表中播放项的播放位置变动较大,同样视为切换为新 播放列表,即此时播放列表标识也相应改变。
67.可选的,在本公开实施例中,所述响应于获取到用户操作指令展示匹配的 目标播放信息,并将所述目标播放信息,通过播放同步消息发送给播放组中所 述一个或多个第二客户端,还包括:响应于获取到列表切换指令,展示对应的 第五播放列表,并将所述第五播放列表的播放项标识发送至服务器,以使所述 服务器存储所述第五播放列表;获取所述服务器发送的第五播放列表标识,并 向所述一个或多个第二客户端发出列表同步消息,以使所述一个或多个第二客 户端根据所述第五播放列表标识更新各自播放列表。
68.具体的,客户端响应该列表切换指令,即展示该指令对应的播放列表(即 第五播放列表);然后将第五播放列表中各个播放项(例如,歌曲、戏曲等)的 标识发送给服务器;服务器获取上述播放项标识后,存储对应的第五播放列表, 并为第五播放列表分配第五播放列表标识;客户端在获取到服务器发送的第五 播放列表标识后,向播放组中的其它客户端发出列表同步消息,以引导其它客 户端根据上述第五播放列表标识更新各自播放列表,确保播放组中各个客户端 的播放列表同步。
69.可选的,在本公开实施例中,所述响应于获取到用户操作指令展示匹配的 目标播放信息,并将所述目标播放信息,通过播放同步消息发送给播放组中所 述一个或多个第二客户端,还包括:响应于获取到列表调整指令,根据调整前 的第六播放列表以及调整后的第七播放列表,获取第一差异播放项标识;将所 述第一差异播放项标识以及第六播放列表标识发送至服务器,以使所述服务器 根据所述第一差异播放项标识以及第六播放列表标识,存储所述第七播放列表; 获取所述服务器发送的第七播放列表标识,并向所述一个或多个第二客户端发 出列表同步消息,以使所述一个或多个第二客户端根据所述第七播放列表标识 更新各自播放列表。
70.具体的,客户端响应该列表调整指令,即展示该指令对应的播放列表(即 第七播放列表);基于该指令响应前的播放列表(即第六播放列表),以及该指 令响应后的播放列表(即第七播放列表),获取调整前后存在差异的播放项标识 (即第一差异播放项标识);特别的,位置调整操作可以视为在调整前的位置删 除一个播放项,在调整后的位置增加一个播放项,因此,一个位置调整操作可 以视为一个增加操作与一个删除操作的组合。如上述技术方案所述,调整前的 播放列表(即第六播放列表)已存储于服务器中,因此,将第一差异播放项标 识以及第六播放列表标识发送给服务器后,服务器即可根据第六播放列表标识 获取本地存储的第六播放列表,并根据第一差异播放项标识和第六播放列表, 获取第七播放列表,并为第七播放列表分配第七播放列表标识;客户端在获取 服务器发送的第七播放列表标识后,向播放组中的其它客户端发出列表同步消 息,以使其它客户端根据第七播放列表标识更新各自播放列表;客户端通过向 服务器发出第一差异播放项标识,减少了客户端与服务器之间的数据传输量, 提高了数据传输效率。
71.可选的,在本公开实施例中,所述根据调整前的第六播放列表以及调整后 的第七播放列表,获取第一差异播放项标识,包括:根据调整前的第六播放列 表以及调整后的第七播放列表,通过差异比对工具,获取包含第一差异播放项 标识的第一差异文件;所述将所述第一差异播放项标识以及第六播放列表标识 发送至服务器,以使所述服务器根据所述第一差异播放项标识以及第六播放列 表标识,存储所述第七播放列表,包括:将所述第一差异文件以及第六播放列 表标识发送至服务器,以使所述服务器根据所述第一差异文件以及第六播放列 表标识,存储所述第七播放列表。
72.具体的,差异比对工具即diff工具,客户端将第六播放列表和第七播放列 表中的播放项标识分别组成一个标识字符串,各个播放项标识之间通过分隔符 (例如,\n)连接,通过diff工具将上述两个标识字符串进行比对,获取描述 上述两个字符串之间不同的差异文件(即patch文件);服务器则通过patch文 件解析工具,对patch文件进行解析,进而结合本地存储的第六播放列表即可获 取第七播放列表;客户端在发出播放列表的更新信息时,通过差异比对工具发 送差异文件,不但提高了第一差异播放项的获取效率和传输效率,而且提升了 差异比对的准确性。
73.可选的,在本公开实施例中,所述根据调整前的第六播放列表以及调整后 的第七播放列表,通过差异比对工具,获取包含第一差异播放项标识的第一差 异文件,包括:通过差异比对工具,将调整前的第六播放列表与调整后的第七 播放列表进行比对,以获取包含第一差异播放项标识的第一差异文件。具体的, 通过diff工具还可以对第六播放列表和第七播放列表进行逐行比对,第一差异 文件则记录了每一行的变化,即该行为删除行、该行为新增行或者该行保持不 变,避免了上述技术方案中对标识字符串的构建及解析,进一步提高了差异文 件的获取效率。
74.s320、若所述第一播放列表标识与所述当前播放列表标识不同,则根据所 述第一播放列表标识,获取服务器存储的第一播放列表的播放项信息,以更新 当前播放列表。
75.如果第一播放列表标识与当前播放列表标识不同,表明第二客户端更新了 播放列表,此时根据第一播放列表标识,获取服务器中存储的第一播放列表的 播放项信息,例如,播放项的名称、作者、发布时间、时长等相关信息,进而 根据获取到的上述播放项信息更新播放列表,以使第一客户端的播放列表保持 与第二客户端一致。如果第一播放列表标
识与当前播放列表标识相同,表明第 二客户端与第一客户端展示相同的播放列表,第二客户端未更新播放列表,此 时放弃该列表同步消息。
76.可选的,在本公开实施例中,所述根据所述第一播放列表标识,获取服务 器存储的第一播放列表的播放项信息,以更新当前播放列表,包括:根据所述 第一播放列表标识,通过服务器获取第一播放列表的播放项标识,并根据所述 第一播放列表的播放项标识与所述当前播放列表的播放项标识,获取第二差异 播放项标识;根据所述第二差异播放项标识,获取服务器存储的第二差异播放 项信息,以更新当前播放列表。
77.具体的,客户端根据第一播放列表标识,通过服务器获取第一播放列表的 播放项标识后,根据第一播放列表的播放项标识与当前播放列表的播放项标识, 可以通过diff工具,获取新增及删除的播放项标识,即第二差异播放项标识; 进而根据第二差异播放项标识,获取服务器存储的第二差异播放项信息,并根 据第二差异播放项信息更新第一客户端的当前播放列表;客户端在获取待更新 的播放项信息时,通过向服务器发出第二差异播放项标识,减少了客户端与服 务器之间的数据传输量,提高了数据传输效率。
78.本公开实施例的技术方案,响应于获取到播放组中第二客户端发出的列表 同步消息,若第一播放列表标识与当前播放列表标识相同,则根据第一播放列 表标识,获取服务器存储的第一播放列表的播放项信息,以更新当前播放列表, 确保了播放组中各个客户端的播放列表同步更新,相比于客户端之间的播放列 表传输,客户端与服务器之间的数据传输速率较快,实现了播放列表的及时更 新,确保了共享播控的实时性。
79.实施例四
80.图4a是本公开实施例四提供的一种播放信息的同步方法,本实例在上述 实施例的基础上进行具体化,在本公开实施例中,在判断列表同步消息中的第 一播放列表标识,是否与当前播放列表标识相同前,还包括判断列表同步消息 中的第一播控动作号,是否大于当前播控动作号,该方法具体包括:
81.s410、获取播放组中一个或多个第二客户端中的任意一个发出的列表同步 消息;执行s420。
82.s420、判断所述列表同步消息中的第一播控动作号,是否大于当前播控动 作号;其中,所述第一播控动作号包括播控计数值,以及所述第二客户端在所 述播放组中的组内序号;若是,执行s430;若否,执行s450。
83.第一客户端响应于获取到用户发出的播放组的创建指令,创建播放组并记 录播放组的组标识以及第一客户端在播放组中的组内序号;其中,组标识是服 务器为播放组分配的标识信息;组内序号是由服务器根据客户端加入播放组的 先后顺序,为各个客户端分配的组内标识;当第一客户端作为播放组的创建者 时,显然第一客户端的组内序号为1,即第一个加入播放组的客户端;第一客 户端响应于获取到用户发出的播放组的分享指令,向至少一个目标客户端发出 该播放组的邀请请求,以引导目标客户端加入播放组中。
84.第一客户端响应于获取到播放组中其它客户端发出的播放组的邀请请求, 向用户展示该邀请请求,并在获取到用户发出的加入指令时,加入该播放组并 记录播放组的组标识和第一客户端在播放组内的组内序号;当第一客户端作为 播放组的非创建者时,服务器根据第一客户端加入播放组的顺序,为第一客户 端分配组内序号,例如,第一客户端是第二个加入该播放组的客户端,服务器 为第一客户端分配的组内序号则为2。
85.用户通过客户端在播放组中进行播放控制时,客户端会为每个播控操作分 配一个播控动作号;其中,播控动作号包括组内序号和播控计数值,其具体形 可以通过k=[m,n]表示;其中,k为播控动作号、m为组内序号、n为播控 计数值,组内序号即当前客户端在播放组中的组内序号,播控计数值是当前客 户端记录的播放组中所有客户端已触发的播控操作的次数,客户端获取到用户 的播控操作时,会在当前的播控计数值的基础上进行加1处理,例如,第一客 户端的当前播控动作号中播控计数值为4,第一客户端在获取到用户的播控操 作时,将播控计数值进行加1处理,即将播控计数值更新为5;在公开实施例 中,播控操作包括切换为新播放列表、播放列表中的随机播放操作,以及播放 项的添加、删除和位置调整等操作。
[0086]
两个播控动作号进行大小比较时,通过比较播控计数值的方式进行比较, 播控计数值越大,播控动作号越大,播控计数值越小,播控动作号越小;当两 个播控动作号的播控计数值相等时,则通过比较组内序号的方式比较两个播控 动作号的大小,组内序号越小,表明该客户端越早加入播放组,组内序号越大, 表明该客户端越晚加入播放组,因此,在两个播控动作号的播控计数值相等时, 加入播放组较早的客户端的播控动作号较大,以确保在播控计数值相等时,播 放组创建者(组内序号为1)以及较早加入者(组内序号较小)对播放信息的 控制,同时确保播放组中各个客户端播放信息的一致性。
[0087]
特别的,当第一客户端作为播放组的创建者加入播放组时,初始时刻的当 前播控动作号即为[1,0],其表示当前播控动作号为自身触发的播控操作动作的 播控动作号,因此组内序号为自身的组内序号即为1,同时由于播放组并没有 任何客户端触发播控操作动作,因此,播控计数值为0;当第一客户端作为播 放组的非创建者,且第k个加入播放组时,初始时刻的当前播控动作号即为[k, 0],其表示当前播控动作号为自身触发的播控操作动作的播控动作号,因此组 内序号为自身的组内序号即为k,同时由于播放组并没有任何客户端触发播控 操作动作,因此,播控计数值为0。在本公开实施例中,列表同步消息基于声 明式编程(declarative programming)实现,以通过声明式同步消息协议避免播 放信息丢失,进而导致播放信息永久不一致的问题产生。
[0088]
s430、将当前播控动作号更新为第一播控动作号;执行s440。
[0089]
如果获取到的第二客户端发出的第一播控动作号大于当前播控动作号,将 当前播控动作号更新为第一播控动作号。
[0090]
s440、判断列表同步消息中的第一播放列表标识,是否与当前播放列表标 识相同。
[0091]
s450、放弃所述列表同步消息。
[0092]
如果获取到的第二客户端发出的第一播控动作号小于当前播控动作号,则 放弃接收到的列表同步消息,确保第二客户端由弱网或断网状态恢复为正常网 络状态,且发出播放列表标识时,第一客户端不采纳该列表同步消息,避免第 一客户端对播放列表的信息回跳,导致播放不连贯的现象发生;具体的,以图 4b所示的同步播放的流程示意图为例,图4b中,播控动作号用“lt”表示, 播放列表用“v”表示,“v”的数值本身不具有实际意义,可以为任意数值, 其仅用于表示各个客户端中的播放列表是否相同,若数值相同,则表示播放列 表相同,若数值不同,则表示当前播放列表不同。
[0093]
如图4b所示,客户端a创建播放组后,客户端b和客户端c依次加入播 放组中;初始
时刻,客户端a、客户端b、客户端c的当前播控动作号分别为 [1,0]、[2,0]、[3,0],表示当前播控动作号均为客户端自身触发的播放列表 更新操作的播控动作号,且由于播放组并没有任何客户端触发播放列表更新操 作动作,上述客户端均未获取到任何播放列表更新操作动作,因此,播控计数 值均为0;此时,客户端a、客户端b、客户端c的播放列表相同,均为预先 设定的初始播放信息(例如,展示一个没有歌曲的空白目录),以v:0表示; 然后客户端b中执行了一次播放列表更新操作(即播放列表切换操作或播放列 表调整操作),客户端b将当前的播控计数值(即0)进行加1处理,当前播控 动作号变更为[2,1],播放列表变更为v:4;客户端b将lt:[2,1]、v:4, 发送给客户端a和客户端c。
[0094]
客户端a在获取到客户端b发送的列表同步消息之前,客户端a本身也执 行了一次播放列表更新操作,客户端a将当前的播控计数值(即0)进行加1 处理,此时客户端a的当前播控动作号变更为[1,1],播放列表变更为v:5; 客户端a在接收到客户端b发送的列表同步消息后,将当前播控动作号[1,1] 与接收到的播控动作号[2,1]进行比较,基于上述比较规则,确定[1,1]大于[2, 1],即当前播控动作号大于接收到的播控动作号,因此,放弃该列表同步消息 (对应图4b中以表示的节点),即保留当前播控动作号[1,1],播放列表仍 为原播放列表v:5,不按照客户端b的播放列表v:4更新;客户端c在获取 到客户端b发送的列表同步消息后,将当前操作版本号[3,0]与接收到的操作 版本号[2,1]进行比较,确定[3,0]小于[2,1],即当前播控动作号小于接收到 的播控动作号,因此,客户端c将当前播控动作号更新为lt:[2,1],播放列 表更新为v:4。
[0095]
客户端a在将当前播控动作号变更为[1,1],播放列表变更为v:5后,向 客户端b和客户端c发出lt:[1,1]、v:5;客户端b将当前播控动作号[2, 1]与接收到的播控动作号[1,1]进行比较,确定[2,1]小于[1,1],即当前播控 动作号小于接收到的播控动作号,因此,将当前播控动作号更新为lt:[1,1], 播放列表更新为v:5;客户端c将当前播控动作号[2,1]与接收到的播控动作 号[1,1]进行比较,确定[2,1]小于[1,1],即当前播控动作号小于接收到的播 控动作号,因此,也将当前播控动作号更新为lt:[1,1],播放列表更新为v: 5,确保了播放组内各个客户端的播放列表一致。
[0096]
然后客户端b中再执行一次播放列表更新操作,客户端b将当前的播控计 数值(即1)进行加1处理,当前播控动作号变更为[2,2],播放列表变更为v: 10;客户端b将lt:[2,2]、v:10,发送给客户端a和客户端c;客户端a 将当前播控动作号[1,1]与接收到的播控动作号[2,2]进行比较,确定[1,1]小 于[2,2],即当前播控动作号小于接收到的播控动作号,因此,将当前播控动作 号更新为lt:[2,2],播放列表更新为v:10;客户端c将当前播控动作号[1, 1]与接收到的播控动作号[2,2]进行比较,确定[1,1]小于[2,2],即当前播控 动作号小于接收到的播控动作号,因此,将当前播控动作号更新为lt:[2,2], 播放列表更新为v:10,再次确保了播放组内各个客户端的播放列表一致。
[0097]
接着客户端a中再执行一次播放列表更新操作,客户端a将当前的播控计 数值(即2)进行加1处理,此时客户端a的当前播控动作号变更为[1,3],播 放列表为v:20,客户端a将lt:[1,3]、v:20,发送给客户端b和客户端 c;客户端b将当前播控动作号[2,2]与接收到的播控动作号[1,3]进行比较, 确定[2,2]小于[1,3],即当前播控动作号小于接收到的播控动作号,因此,将 当前播控动作号更新为lt:[1,3],播放列表更新为v:20;客户端c由于处 于断网状态(或者弱网状态),未获取到客户端a发出的列表同步信息,因此, 客户端c中
当前播控动作号依然为[2,2],播放列表仍为原播放信息v:10。
[0098]
之后客户端a中再执行一次播放列表更新操作,客户端a将当前的播控计 数值(即3)进行加1处理,此时客户端a的当前播控动作号变更为[1,4],播 放列表为v:30,客户端a将lt:[1,4]、v:30,发送给客户端b和客户端 c;客户端b将当前播控动作号[1,3]与接收到的播控动作号[1,4]进行比较, 确定[1,3]小于[1,4],即当前播控动作号小于接收到的播控动作号,因此,将 当前播控动作号更新为lt:[1,4],播放列表更新为v:30;客户端c仍然处 于断网状态(或者弱网状态),未获取到客户端a本次发出的广播信息,因此, 客户端c中当前播控动作号依然为[2,2],播放列表仍为原播放列表v:10。
[0099]
客户端c的网络状态恢复正常后,客户端c中执行了一次播放列表更新操 作,客户端c将当前的播控计数值(即2)进行加1处理,此时客户端a的当 前播控动作号变更为[3,3],播放列表为v:11,客户端c将lt:[3,3]、v: 11,发送给客户端a和客户端b;客户端a和客户端b在接收到客户端c发送 的列表同步消息后,均将当前播控动作号[1,4]与接收到的播控动作号[3,3]进 行比较,确定[1,4]大于[3,3],即当前播控动作号大于接收到的播控动作号, 因此,放弃该列表同步消息,即保留当前播控动作号lt:[1,4],播放信息仍 为原播放列表v:30,不按照客户端c的播放列表v:11更新,确保了客户端 c由弱网或断网状态恢复为正常网络状态,且发出播放列表时,客户端a和客 户端b不采纳该列表同步信息,避免客户端a和客户端b对播放列表的回跳, 导致播放不连贯的现象发生;同时,还确保了播放组内网络状态正常的客户端 a和客户端b的播放列表一致。
[0100]
然后客户端b中又执行一次播放列表更新操作,客户端b将当前的播控计 数值(即4)进行加1处理,当前播控动作号变更为[2,5],播放列表变更为v: 35;客户端b将lt:[2,5]、v:35,发送给客户端a和客户端c;客户端a 将当前播控动作号[1,4]与接收到的播控动作号[2,5]进行比较,确定[1,4]小 于[2,5],即当前播控动作号小于接收到的播控动作号,因此,将当前播控动作 号更新为lt:[2,5],播放列表更新为v:35;客户端c将当前播控动作号[3, 3]与接收到的播控动作号[2,5]进行比较,确定[3,3]小于[2,5],即当前播控 动作号小于接收到的播控动作号,因此,将当前播控动作号更新为lt:[2,5], 播放列表更新为v:35,此时再次确保了播放组内各个客户端的播放列表一致。
[0101]
本公开实施例的技术方案,获取到播放组中其它客户端发出的列表同步消 息,并在判断列表同步消息中的第一播控动作号大于当前客户端的当前播控动 作号时,将当前播控动作号更新为第一播控动作号,且根据列表同步消息中的 播放列表标识更新当前播放列表,使得播放组中的各个用户具备相同的控制权 限,提升了用户的共享参与度,确保了播放组中播放列表一致,而在判断第一 播控动作号小于当前播控动作号时,放弃列表同步消息,避免了网络异常客户 端的播放列表更新操作,导致网络正常客户端的播放列表信息回跳,确保了播 放信息的连贯性。
[0102]
实施例五
[0103]
图5是本公开实施例五提供的一种播放信息的同步方法的流程图,本实例 在上述实施例的基础上进行具体化,在本公开实施例中,播放组中包括客户端 a和客户端b,客户端a先后获取到列表切换指令和列表调整指令,具体包括:
[0104]
客户端a获取到列表切换指令后,展示对应的第二播放列表,并将第二播 放列表划分为2个分区,即第一分区和第二分区;客户端a将第二播放列表标 识、第二播放列表的
分区信息(即第一分区标识、第二分区标识、第一分区摘 要和第二分区摘要),以及第一分区的播放项信息,通过第一列表同步消息发送 给客户端b。
[0105]
客户端a还将第二播放列表标识、第二播放列表的分区信息(即第一分区 标识、第二分区标识、第一分区摘要和第二分区摘要),以及第二分区的播放项 信息,通过第二列表同步消息发送给客户端b。
[0106]
客户端b接收第一列表同步消息后,根据第一分区的播放项信息更新当前 播放列表中的第一个分区;客户端b判断第二播放列表标识与当前播放列表标 识相同,再根据第二播放列表的分区摘要,以及当前播放列表的分区摘要,获 取差异分区(即第二分区)的分区标识;客户端b根据第二播放列表标识以及 第二分区的分区标识,向客户端a发送分区请求消息,请求获取第二分区的播 放项信息。客户端b接收到第二列表同步消息后,根据第二分区的播放项信息 更新当前播放列表中的第二个分区。
[0107]
客户端a接收分区请求消息;客户端a判断分区请求消息中的第二播放列 表标识,与当前播放列表标识相同,根据第二分区的分区标识,将第二分区的 播放项信息,通过第二列表同步消息发送给客户端b;客户端b根据第二分区 的播放项信息再次更新当前播放列表中的第二个分区。
[0108]
其中,第二列表同步消息是客户端a在获取到列表切换指令后,为了确保 发出完整的播放列表,发出的后续分区(即第二分区)的播放项信息;第三列 表同步消息是客户端a基于客户端b发出的后续分区(即第二分区)的获取请 求,发出的第二分区的播放项信息;实质上第二列表同步消息与第三列表同步 消息包含相同的播放项信息,对于客户端b而言,第三列表同步消息可以视为 冗余消息,但上述冗余消息的存在,使得客户端a在将完整的播放列表通过多 个列表同步消息连续发出时,由于网络异常等原因导致客户端b无法完整获取 上述多个列表同步消息,造成列表同步消息丢失时,同样可以通过上述冗余消 息完成播放列表更新,进一步确保了播放组中各客户端展示的播放列表一致。
[0109]
客户端a获取到列表调整指令后,第二播放列表的播放项变更,但第二播 放列表标识不变;客户端获取到与播放项变更相关的目标分区为第一分区;客 户端a将第二播放列表标识、第二播放列表的分区信息,以及第一分区的播放 项信息,通过第四列表同步消息发送给客户端b;客户端b根据第一分区的播 放项信息更新当前播放列表中的第一个分区。
[0110]
本公开实施例的技术方案,客户端响应于获取到列表切换指令,通过主动 发送多个列表同步消息,并响应其它客户端发出的分区请求消息,确保了播放 组中的其它客户端及时获取当前客户端的播放列表,避免了列表同步消息丢失 时,导致播放组各个客户端的播放列表不一致,同时,响应于获取到列表调整 指令,仅将差异分区的播放项信息发送给其它客户端,减少了客户端之间的传 输数据量,节省了数据传输占用的通信资源。
[0111]
实施例六
[0112]
图6是本公开实施例六提供的一种播放列表同步方法的流程图,本实例在 上述实施例的基础上进行具体化,在本公开实施例中,分享组中包括客户端a 和客户端b,客户端a先后获取到列表切换指令和列表调整指令,具体包括:
[0113]
客户端a获取到列表切换指令,展示对应的第二播放列表;客户端a将第 二播放列表的播放项标识发送至服务器;服务器存储第二播放列表;服务器返 回第二播放列表标
识;客户端a接收第二播放列表标识;客户端a向分享组中 的客户端b发出第一列表同步消息;客户端b接收客户端a发出的第一列表同 步消息,并判断第一列表同步消息中的第二播放列表标识与当前播放列表标识 相同;客户端b向服务器发送第二播放列表标识;服务器根据第二播放列表标 识获取第二播放列表的播放项标识;服务器将第二播放列表的播放项标识发送 给客户端b;客户端b根据第二播放列表的播放项标识与当前播放列表的播放 项标识,获取第二差异播放项标识;服务器根据第二差异播放项标识,获取第 二差异播放项信息;服务器将第二差异播放项信息,发送给客户端b;客户端b 根据第二差异播放项信息,更新当前播放列表。
[0114]
客户端a获取到列表调整指令,根据调整前的第二播放列表以及调整后的 第四播放列表,获取第一差异播放项标识;客户端a将第一差异播放项标识以 及第二播放列表标识发送至服务器;服务器根据第一差异播放项标识以及第二 播放列表标识,存储第四播放列表;服务器返回第四播放列表标识;客户端a 接收第四播放列表标识;客户端a向分享组中的客户端b发出第二列表同步消 息;客户端b接收客户端a发出的第二列表同步消息,并判断第二列表同步消 息中的第四播放列表标识与当前播放列表标识相同;客户端b向服务器发送第 四播放列表标识;服务器根据第四播放列表标识获取第四播放列表的播放项标 识;服务器将第四播放列表的播放项标识发送给客户端b;客户端b根据第四 播放列表的播放项标识与当前播放列表的播放项标识,获取第三差异播放项标 识;服务器根据第三差异播放项标识,获取第三差异播放项信息;服务器将第 三差异播放项信息,发送给客户端b;客户端b根据第三差异播放项信息,更 新当前播放列表。
[0115]
本公开实施例的技术方案,客户端响应于获取到列表切换指令或列表调整 指令,通过服务器获取更新后的播放列表标识,并发送给分享组中的其它客户 端,其它客户端根据上述更新后的播放列表标识,获取服务器存储的第一播放 列表的播放项信息,以更新当前播放列表,确保了分享组中各个客户端的播放 列表同步更新,相比于客户端之间的播放列表传输,客户端与服务器之间的数 据传输速率较快,实现了播放列表的及时更新,确保了共享播控的实时性。
[0116]
实施例七
[0117]
图7是本公开实施例七提供的一种播放信息的同步装置的结构框图,具体 包括:同步消息获取模块710和播放信息更新模块720;
[0118]
同步消息获取模块710,用于响应于获取到播放组中一个或多个第二客户 端中的任意一个发出的播放同步消息,根据所述播放同步消息,更新当前播放 信息;
[0119]
播放信息更新模块720,用于响应于获取到用户操作指令展示匹配的目标 播放信息,并将所述目标播放信息,通过播放同步消息发送给播放组中所述一 个或多个第二客户端,以使所述一个或多个第二客户端根据所述目标播放信息 更新各自播放信息。
[0120]
本公开实施例的技术方案,第一客户端在获取到播放组中第二客户端发出 的播放同步消息时,根据播放同步消息更新当前播放信息,而在获取到用户操 作指令时,则将当前播放信息通过播放同步消息,发送给播放组中的其它客户 端,以使其它客户端更新各自播放信息,确保了播放组中各客户端的播放信息 一致,同时,使得播放组中的各个用户具备相同的控制权限,提升了用户的共 享参与度。
[0121]
可选的,在上述技术方案的基础上,同步消息获取模块710,具体包括:
[0122]
列表标识判断单元,用于响应于获取到播放组中一个或多个第二客户端中 的任意一个发出的列表同步消息,判断所述列表同步消息中的第一播放列表标 识,是否与当前播放列表标识相同;
[0123]
播放列表更新单元,用于若所述第一播放列表标识与所述当前播放列表标 识相同,则根据所述列表同步消息中第一播放列表的分区摘要,以及当前播放 列表的分区摘要,通过匹配的所述第二客户端获取差异分区的播放项信息,以 更新当前播放列表。
[0124]
可选的,在上述技术方案的基础上,播放信息更新模块720,具体包括:
[0125]
第一切换指令获取单元,用于响应于获取到列表切换指令,展示对应的第 二播放列表,并获取第二播放列表标识以及所述第二播放列表的分区信息;其 中,所述分区信息包括分区标识和分区摘要;
[0126]
第一同步消息发出单元,用于向播放组中所述一个或多个第二客户端发出 列表同步消息,以使所述一个或多个第二客户端根据所述第二播放列表标识以 及所述第二播放列表的分区信息,更新各自播放列表。
[0127]
可选的,在上述技术方案的基础上,播放信息更新模块720,具体还包括:
[0128]
第一调整指令获取单元,用于响应于获取到列表调整指令,展示对应的第 三播放列表,并获取与播放项调整相关的目标分区的分区信息;
[0129]
第二同步消息发出单元,用于向播放组中所述一个或多个第二客户端发出 列表同步消息,以使所述一个或多个第二客户端根据第三播放列表标识以及所 述目标分区的分区信息,更新各自播放列表。
[0130]
可选的,在上述技术方案的基础上,所述列表同步消息还包括至少一个分 区的播放项信息。
[0131]
可选的,在上述技术方案的基础上,播放信息更新模块710,具体包括:
[0132]
分区更新执行单元,用于根据所述列表同步消息中所述至少一个分区的播 放项信息,更新当前播放列表中对应的分区;
[0133]
分区标识执行单元,用于若所述第一播放列表标识与所述当前播放列表标 识相同,则根据所述列表同步消息中第一播放列表的分区摘要,以及当前播放 列表的分区摘要,获取除所述至少一个分区之外的其它分区标识,并向匹配的 所述第二客户端发出分片请求消息,以获取所述其它分区标识对应的播放项信 息。
[0134]
可选的,在上述技术方案的基础上,播放信息更新模块710,具体还包括:
[0135]
分片请求获取单元,用于响应于获取到播放组中一个或多个第二客户端中 的任意一个发出的分片请求消息,判断所述分片请求消息中第四播放列表标识 是否与当前播放列表标识相同;
[0136]
播放项发出单元,用于若所述第四播放列表标识与当前播放列表标识相同, 则根据所述分片请求消息中的分区标识,向匹配的所述第二客户端发送播放项 信息;
[0137]
分片请求放弃单元,用于若所述第四播放列表标识与当前播放列表标识不 同,则放弃所述分片请求消息。
[0138]
可选的,在上述技术方案的基础上,播放信息更新模块710,具体还包括:
[0139]
播放项同步单元,用于将所述第二播放列表的播放项信息,通过至少一个 列表同步消息发送给所述一个或多个第二客户端,以使所述一个或多个第二客 户端根据所述第
二播放列表的播放项信息,更新各自播放列表。
[0140]
可选的,在上述技术方案的基础上,播放信息更新模块710,具体还包括:
[0141]
列表标识判断单元,用于响应于获取到播放组中一个或多个第二客户端中 的任意一个发出的列表同步消息,判断所述列表同步消息中的第一播放列表标 识,是否与当前播放列表标识相同;
[0142]
播放列表获取单元,用于若所述第一播放列表标识与所述当前播放列表标 识不同,则根据所述第一播放列表标识,获取服务器存储的第一播放列表的播 放项信息,以更新当前播放列表。
[0143]
可选的,在上述技术方案的基础上,播放信息更新模块720,具体包括:
[0144]
第二切换指令获取单元,用于响应于获取到列表切换指令,展示对应的第 五播放列表,并将所述第五播放列表的播放项标识发送至服务器,以使所述服 务器存储所述第五播放列表;
[0145]
第三同步消息发出单元,用于获取所述服务器发送的第五播放列表标识, 并向所述一个或多个第二客户端发出列表同步消息,以使所述一个或多个第二 客户端根据所述第五播放列表标识更新各自播放列表。
[0146]
可选的,在上述技术方案的基础上,播放信息更新模块720,具体包括:
[0147]
第二调整指令获取单元,用于响应于获取到列表调整指令,根据调整前的 第六播放列表以及调整后的第七播放列表,获取第一差异播放项标识;
[0148]
播放项标识发出单元,用于将所述第一差异播放项标识以及第六播放列表 标识发送至服务器,以使所述服务器根据所述第一差异播放项标识以及第六播 放列表标识,存储所述第七播放列表;
[0149]
第四同步消息发出单元,用于获取所述服务器发送的第七播放列表标识, 并向所述一个或多个第二客户端发出列表同步消息,以使所述一个或多个第二 客户端根据所述第七播放列表标识更新各自播放列表。
[0150]
可选的,在上述技术方案的基础上,第二调整指令获取单元,具体用于根 据调整前的第六播放列表以及调整后的第七播放列表,通过差异比对工具,获 取包含第一差异播放项标识的第一差异文件;
[0151]
播放项标识发出单元,具体用于将所述第一差异文件以及第六播放列表标 识发送至服务器,以使所述服务器根据所述第一差异文件以及第六播放列表标 识,存储所述第七播放列表。
[0152]
可选的,在上述技术方案的基础上,第二调整指令获取单元,具体还用于 通过差异比对工具,将调整前的第六播放列表与调整后的第七播放列表进行比 对,以获取包含第一差异播放项标识的第一差异文件。
[0153]
可选的,在上述技术方案的基础上,播放列表获取单元,具体用于根据所 述第一播放列表标识,通过服务器获取第一播放列表的播放项标识,并根据所 述第一播放列表的播放项标识与所述当前播放列表的播放项标识,获取第二差 异播放项标识;根据所述第二差异播放项标识,获取服务器存储的第二差异播 放项信息,以更新当前播放列表。
[0154]
可选的,在上述技术方案的基础上,播放信息更新模块710,具体还包括:
[0155]
播控动作号判断单元,用于判断所述列表同步消息中的第一播控动作号, 是否大
于当前播控动作号;其中,所述第一播控动作号包括播控计数值,以及 所述第二客户端在所述播放组中的组内序号;
[0156]
列表标识判断单元,具体用于若所述第一播控动作号大于当前播控动作号, 则将当前播控动作号更新为所述第一播控动作号,并判断所述列表同步消息中 的第一播放列表标识,是否与当前播放列表标识相同;
[0157]
同步消息放弃单元,用于若所述第一播控动作号小于当前播控动作号,则 放弃所述列表同步消息。
[0158]
可选的,在上述技术方案的基础上,播放信息的同步装置,具体还包括:
[0159]
语音通话指令获取模块,用于响应于获取到语音通话指令,将当前展示页 面中的语音通话按键设置为点亮状态,并将获取到的第一语音信息发送给所述 一个或多个第二客户端,以使所述一个或多个第二客户端播报所述第一语音信 息;
[0160]
播报动效发出模块,用于响应于获取到播放组中一个或多个第二客户端中 的任意一个发出的第二语音信息,播放所述第二语音信息,并通过当前展示页 面中匹配的所述第二客户端的头像信息,展示播报动效;
[0161]
业务操作标识获取模块,用于响应于获取到播放组中一个或多个第二客户 端中的任意一个发出的业务操作标识,根据所述业务操作标识,更新当前展示 页面中匹配的业务图标;其中,业务操作标识包括播放项点赞和播放项收藏;
[0162]
播放记录展示模块,用于响应于获取到播放组中一个或多个第二客户端中 的任意一个发出的播放组结束指令,展示所述播放组的播放记录。
[0163]
上述装置可执行本公开任意实施例所提供的播放信息的同步方法,具备执 行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可 参见本公开任意实施例提供的方法。
[0164]
实施例八
[0165]
图8示出了适于用来实现本公开实施例的终端设备800的结构示意图。本 公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字 广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体 播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、 台式计算机等等的固定终端。图8示出的终端设备仅仅是一个示例,不应对本 公开实施例的功能和使用范围带来任何限制。
[0166]
如图8所示,终端设备800可以包括处理装置(例如中央处理器、图形处 理器等)801,其可以根据存储在只读存储器(rom)802中的程序或者从存储 装置808加载到随机访问存储器(ram)803中的程序而执行各种适当的动作 和处理。在ram 803中,还存储有终端设备800操作所需的各种程序和数据。 处理装置801、rom 802以及ram 803通过总线804彼此相连。输入/输出(i/o) 接口805也连接至总线804。
[0167]
通常,以下装置可以连接至i/o接口805:包括例如触摸屏、触摸板、键盘、 鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置806;包括例如液晶 显示器(lcd)、扬声器、振动器等的输出装置807;包括例如磁带、硬盘等的 存储装置808;以及通信装置809。通信装置809可以允许终端设备800与其他 设备进行无线或有线通信以交换数据。虽然图8示出了具有各种装置的终端设 备800,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地 实施或具备更多或更少的装置。
[0168]
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为 计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承 载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程 图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装 置809从网络上被下载和安装,或者从存储装置808被安装,或者从rom 802 被安装。在该计算机程序被处理装置801执行时,执行本公开实施例的方法中 限定的上述功能。
[0169]
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质 或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例 如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装 置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包 括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机 访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom 或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存 储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以 是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器 件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基 带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。 这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上 述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外 的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于 由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介 质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、 rf(射频)等等,或者上述的任意合适的组合。
[0170]
在一些实施方式中,客户端、服务器可以利用诸如http(hypertext transferprotocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通 信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通 信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联 网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研 发的网络。
[0171]
上述计算机可读介质可以是上述终端设备中所包含的;也可以是单独存在, 而未装配入该终端设备中。
[0172]
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序 被该终端设备执行时,使得该终端设备:响应于获取到播放组中一个或多个第 二客户端中的任意一个发出的播放同步消息,根据所述播放同步消息,更新当 前播放信息;响应于获取到用户操作指令展示匹配的目标播放信息,并将所述 目标播放信息,通过播放同步消息发送给播放组中所述一个或多个第二客户端, 以使所述一个或多个第二客户端根据所述目标播放信息更新各自播放信息。
[0173]
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的 计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言— 诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语 言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地 在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分 在远程计算机上执行、或者完全在远程计算机
或终端设备上执行。在涉及远程 计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan) 或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利 用因特网服务提供商来通过因特网连接)。
[0174]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计 算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图 中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、 或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应 当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图 中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执 行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的 是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可 以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用 硬件与计算机指令的组合来实现。
[0175]
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以 通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本 身的限定,例如,同步消息获取模块,可以被描述为“响应于获取到播放组中 一个或多个第二客户端中的任意一个发出的播放同步消息,根据所述播放同步 消息,更新当前播放信息”。本文中以上描述的功能可以至少部分地由一个或多 个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑 部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产 品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
[0176]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存 储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地 使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机 器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或 半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质 的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、 随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器 (eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学 储存设备、磁储存设备、或上述内容的任何合适组合。
[0177]
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域 技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特 定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上 述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征 与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成 的技术方案。
[0178]
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操 作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并 行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节, 但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中 描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的 上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多 个实施例中。
[0179]
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但 是应
当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或 动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1