一种播放记录的更新方法、服务器及客户端
技术领域
本申请涉及互联网技术领域,特别涉及一种播放记录的更新方法、服务器及客户端。
背景技术
在当前的视频播放网站中,当用户在观看视频时,视频播放网站通常会记录该用户的视频播放进度。具体地,用户可以在视频播放网站中注册账号,那么在该注册的账号处于登陆状态时,视频播放网站便可以将用户观看的进度记录于该账号下。这样,用户可以根据记录的播放进度,继续播放对应的视频。
在实际应用场景中,很可能多个人使用同一个账号登陆视频播放网站。例如,两个用户在视频播放网站中使用的是同一个账号,这两个用户都在观看同一部剧集。那么根据现有的播放进度的记录方法,这两个用户使用同一个账号观看该剧集时,该账号下记录的关于该剧集的播放进度会随着剧集的播放而不断更新,从而导致这两个用户各自的播放进度相互覆盖,这两个用户便无法根据账号中记录的播放进度获知自身实际观看的进度。因此,当前需要一种更加准确的播放进度的更新方法。
发明内容
本申请实施方式的目的是提供一种播放记录的更新方法、服务器及客户端,能够区分不同用户的播放记录。
为实现上述目的,本申请实施方式提供一种播放记录的更新方法,所述方法包括:接收当前终端设备发来的进度备份请求,所述进度备份请求中包括目标视频在所述当前终端设备上的播放进度以及用于表征所述当前终端设备的标识;所述当前终端设备上登录有指定用户账号;基于所述标识,在所述指定用户账号的视频播放记录中确定所述当前终端设备的子播放记录;在所述当前终端设备的子播放记录中存储所述目标视频在所述当前终端设备上的播放进度,以更新所述指定用户账号的视频播放记录。
为实现上述目的,本申请实施方式还提供一种服务器,所述服务器包括处理器和存储器,所述存储器中存储计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:接收当前终端设备发来的进度备份请求,所述进度备份请求中包括目标视频在所述当前终端设备上的播放进度以及用于表征所述当前终端设备的标识;所述当前终端设备上登录有指定用户账号;基于所述标识,在所述指定用户账号的视频播放记录中确定所述当前终端设备的子播放记录;在所述当前终端设备的子播放记录中存储所述目标视频在所述当前终端设备上的播放进度,以更新所述指定用户账号的视频播放记录。
为实现上述目的,本申请实施方式还提供一种播放记录的更新方法,所述方法包括:通过当前终端设备播放指定视频,并记录所述指定视频在所述当前终端设备上的播放进度;其中,所述当前终端设备上登录有指定用户账号;获取用于表征所述当前终端设备的标识;将所述指定视频在所述当前终端设备上的播放进度以及获取的所述标识发送至服务器,以使得所述服务器基于所述标识,在所述指定用户账号的视频播放记录中确定所述当前终端设备的子播放记录,并在所述当前终端设备的子播放记录中存储所述指定视频在所述当前终端设备上的播放进度。
为实现上述目的,本申请实施方式还提供一种客户端,所述客户端包括处理器、存储器和显示器,所述存储器中存储计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:通过所述显示器播放指定视频,并记录所述指定视频在所述客户端中的播放进度;其中,所述客户端中登录有指定用户账号;获取用于表征所述客户端的标识;将所述指定视频在所述客户端中的播放进度以及获取的所述标识发送至服务器,以使得所述服务器基于所述标识,在所述指定用户账号的视频播放记录中确定所述客户端的子播放记录,并在所述客户端的子播放记录中存储所述指定视频在所述客户端中的播放进度。
由上可见,本申请提供的技术方案,当用户在当前终端设备中登陆指定用户账号,并且使用当前终端设备观看视频时,当前终端设备可以将该视频的播放进度以及自身的标识一并发送至服务器。这样,服务器在更新该用户的视频播放记录时,可以通过接收到的标识,确定出本次的播放进度是在哪个终端设备上产生的。在服务器中可以保存所述指定用户账号的视频播放记录,但该视频播放记录中可以按照终端设备的不同,而划分为多个子播放记录。服务器在更新上述视频的播放进度时,可以将该视频的播放进度存储至所述当前终端设备的子播放记录中,表示该视频的播放进度是在当前终端设备中产生的。对于其它的终端设备的子播放记录,则可以不做更改。这样,当登陆了上述指定用户账号的终端设备需要加载视频播放记录时,服务器便可以向其提供包含各个子播放记录的视频播放记录。终端设备在展示该视频播放记录时,可以按照终端设备的不同而分类展示。这样,就算两个用户通过同一个账号观看同一部剧集,只要这两个用户使用各自的终端设备,那么他们的观看记录便不会相互覆盖,而是会分别记录于各自的终端设备的子播放记录下。用户通过区分视频播放记录中的终端设备,便可以准确地获知自身观看视频的进度,而不会与他人的观看进度相混淆。由此可见,本申请提供的技术方案,能够区分不同用户的播放记录。
附图说明
为了更清楚地说明本申请实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施方式中播放记录的更新方法流程图;
图2为本申请实施方式中视频播放记录的存储示意图;
图3为本申请实施方式中历史记录界面的示意图;
图4为本申请实施方式中合并后的历史记录界面的示意图;
图5为本申请实施方式中合并播放记录的示意图;
图6为本申请实施方式中服务器的结构示意图;
图7为本申请实施方式中播放记录的更新方法流程图;
图8为本申请实施方式中按时段显示播放进度的示意图;
图9为本申请实施方式中客户端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都应当属于本申请保护的范围。
本实施方式提供一种播放记录的更新方法,所述方法可以应用于服务器中。所述服务器可以是视频播放网站的业务服务器,在所述服务器中可以存储视频资源,还可以存储用户在视频播放网站中的注册信息。在实际应用中,存储视频资源和注册信息可以由两个独立的服务器分别实现,也可以由同一个服务器实现,本申请对此并不做限制。
请参阅图1,本实施方式提供的播放记录的更新方法包括以下步骤。
S11:接收当前终端设备发来的进度备份请求,所述进度备份请求中包括目标视频在所述当前终端设备上的播放进度以及用于表征所述当前终端设备的标识;所述当前终端设备上登录有指定用户账号。
在本实施方式中,用户可以通过当前终端设备访问视频播放网站。所述当前终端设备可以是智能手机、平板电脑、笔记本电脑、台式电脑、智能电视、智能可穿戴设备(智能手表、虚拟现实头盔等)等电子设备。用户可以通过安装于所述当前终端设备中的软件访问所述视频播放网站。所述软件例如可以是浏览器或者所述视频播放网站的APP(Application,应用程序)。
在本实施方式中,用户通过所述当前终端设备访问视频播放网站时,可以在当前终端设备上登陆已在所述视频播放网站中注册过的指定用户账号。在所述视频播放网站的服务器中可以将所述用户的信息与所述指定用户账号进行关联存储。其中,所述用户的信息可以包括在注册时由用户输入的信息,例如昵称、性别、出生年月、兴趣爱好等;还可以包括用户在浏览视频播放网站时的行为数据,例如用户最爱观看的题材、用户的在线时长、用户的视频播放记录等。
在本实施方式中,当所述指定用户账号保持登陆状态时,若用户在观看某个视频,那么当前终端设备便可以将用户正在观看的视频的播放进度发送至服务器中,从而通过服务器备份用户的视频播放记录。具体地,在当前终端设备播放目标视频时,目标视频的播放页面或者视频播放网站的APP会按照指定周期记录所述目标视频的当前播放进度。所述指定周期可以是视频播放网站的开发者预先指定的。例如,所述指定周期可以是2秒。这样,便可以每隔2秒钟记录一次目标视频的当前播放进度。所述当前播放进度可以是所述目标视频当前的播放时长。例如,在记录当前播放进度时,目标视频播放至4分15秒,那么4分15秒便可以作为所述当前播放进度。此外,所述当前播放进度还可以是所述目标视频当前的播放时长在总时长中的占比。例如,在记录当前播放进度时,目标视频播放至4分15秒,该目标视频的总时长为10分钟,那么4分15秒与10分钟的比值42.5%便可以作为所述当前播放进度。当然,在实际应用中,视频播放网站的APP也可以在关闭或者从当前界面中退出时才记录目标视频的当前播放进度。具体地,APP在接收到关闭或者退出的指令时,可以记录APP中播放的目标视频的当前播放进度,然后可以将记录的当前播放进度以及所述目标视频的标识一并发送至服务器,以使得服务器可以备份所述目标视频的当前播放进度。
在本实施方式中,在记录所述目标视频在所述当前终端设备中的播放进度的同时,为了明确该播放进度是在当前终端设备中记录的,因此可以获取用于表征所述当前终端设备的标识。具体地,所述标识可以用于唯一表示所述当前终端设备,从而能够将所述当前终端设备与其它终端设备进行区分。在实际应用中,所述标识可以是所述当前终端设备的国际移动设备身份码(IMEI,International Mobile Equipment Identity)或者MAC地址等具备唯一性的字符串。此外,所述标识还可以是对上述的IMEI或者MAC地址进行散列映射处理之后的字符串。例如,所述标识可以是由IMEI生成的MD5码。在本实施方式中,所述标识可以在所述当前终端设备被生产或者被激活时存储于所述当前终端设备的指定目录下。这样,通过读取所述指定目录下的数据,便可以获取用于表征所述当前终端设备的标识。
在本实施方式中,在记录了所述目标视频的播放进度并获取了所述当前终端设备的标识后,当前终端设备便可以向服务器发起进度备份请求,该请求中可以携带上述记录的播放进度以及获取的标识。当然,在实际应用中,所述进度备份请求中还可以携带用于表征所述指定用户账号的标识。该表征指定用户账号的标识可以是所述指定用户账号本身,也可以是所述指定用户账号对应的后台数字编号,本申请对其实现形式并不限制,只要能保证唯一性即可。
S13:基于所述标识,在所述指定用户账号的视频播放记录中确定所述当前终端设备的子播放记录。
在本实施方式中,服务器中可以将用户账号与对应的视频播放记录进行关联存储。所述视频播放记录中可以具备多个子播放记录,这些子播放记录可以分别与不同的终端设备相绑定。具体地,可以将在同一个终端设备上产生的播放进度存储于该终端设备的子播放记录中。这样,就算登陆的用户账号相同,在不同的终端设备上产生的播放进度也不会相互干扰。举例来说,用户A和用户B共用了同一个用户账号,其中,用户A使用苹果手机观看视频,而用户B使用华为手机观看视频。此时,用户A观看视频产生的播放进度会归类于苹果手机的子播放记录中,而用户B观看视频产生的播放进度会归类于华为手机的子播放记录中。即使这两个用户在观看同一部剧集,由于各自的播放进度处于不同的子播放记录中,因此不会进行相互覆盖。
在本实施方式中,服务器在接收到所述当前终端设备发来的进度备份请求之后,便可以识别出该进度备份请求是哪个用户账号发出的。并且可以从中提取出目标视频的播放进度以及当前终端设备的标识。这样,服务器根据识别出的用户账号,可以定位至所述指定用户账号的视频播放记录。然后,根据所述当前终端设备的标识,可以在视频播放记录中确定出所述当前终端设备的子播放记录。请参阅图2,在实际应用中,可以采用树形结构来构成上述的视频播放记录。其中,所述指定用户账号可以作为父节点,与该父节点相连的各个子节点便可以分别对应不同的终端设备的子播放记录。其中,父节点可以利用指定用户账号作为索引信息,子节点则可以利用终端设备的标识作为索引信息。这样,根据相应的索引信息,可以在众多的视频播放记录中,逐层定位至所述指定用户账号下由所述当前终端设备的标识指向的子播放记录。
S15:在所述当前终端设备的子播放记录中存储所述目标视频在所述当前终端设备上的播放进度,以更新所述指定用户账号的视频播放记录。
在本实施方式中,在确定了所述当前终端设备的子播放记录之后,便可以将所述目标视频在所述当前终端设备上产生的播放进度存储至所述子播放记录中。具体地,在存储所述播放进度时,可以判断在所述当前终端设备的子播放记录中是否存在所述目标视频的播放进度。在所述子播放记录中,视频与对应的播放进度也可以关联存储,其中,可以通过视频播放网站的数字编号来表征各个视频。这样,通过查询所述子播放记录中是否存在所述目标视频的数字编号,便可以确定在所述子播放记录中是否存在所述目标视频的播放进度。若存在,表示该目标视频在当前终端设备中已经产生过播放进度,此时,可以用当前的播放进度覆盖之前的播放进度。具体地,可以用所述进度备份请求中所述目标视频的播放进度覆盖所述子播放记录中已存在的所述目标视频的播放进度。若在子播放记录中不存在所述目标视频的播放进度,表明在当前终端设备中,是首次产生该目标视频的播放进度,那么可以直接将所述进度备份请求中所述目标视频的播放进度写入所述子播放记录中。经过上述的处理,所述指定用户账号下各个终端设备的子播放记录便可以持续更新。
在一个实施方式中,在所述指定用户账号的视频播放记录中,可能不存在所述当前终端设备的子播放记录。在这种情况下,可以在所述指定用户账号的视频播放记录中创建所述当前终端设备的子播放记录。创建的所述子播放记录可以与所述当前终端设备的标识相绑定。这样,后续接收到所述当前终端设备上产生的目标视频的播放进度时,便可以将所述目标视频在所述当前终端设备上的播放进度写入创建的所述子播放记录中。
在一个实施方式中,视频播放网站可以具备用户的历史记录页面,在所述历史记录页面中可以展示用户的视频播放记录。具体地,用户可以在终端设备上登陆所述指定用户账号,这样,若终端设备的当前页面跳转至历史记录页面时,终端设备便可以自动向服务器发送指向所述指定用户账号的播放记录加载请求。其中,所述播放记录加载请求中可以携带表征所述指定用户账号的标识。该标识可以是所述指定用户账号本身,也可以是所述指定用户账号在视频播放网站中对应的数字编号。这样,服务器在接收到所述播放记录加载请求后,便可以向发送所述播放记录加载请求的请求方反馈所述指定用户账号的视频播放记录。
在本实施方式中,所述终端设备接收到服务器反馈的视频播放记录后,可以在当前的历史记录页面中展示所述视频播放记录。请参阅图3,展示的视频播放记录中可以包括多个终端设备的子播放记录,这些子播放记录中可以展示终端设备的名称,以及在终端设备中产生的各个视频的播放进度。若所述指定用户账号具备多个终端设备的子播放记录,所述多个终端设备的子播放记录均可以独立展示于所述视频播放记录中。所述视频播放记录中视频的播放进度可以与产生所述播放进度的终端设备相关联,那么在视频播放记录中,可以如图3所示,按照产生播放进度的终端设备,将所述视频播放记录中视频的播放进度归类显示,其中,在同一类中显示的播放进度与同一个终端设备相关联。在本实施方式中,由于上述的终端设备的标识具备唯一性,因此其表现形式通常比较复杂,很难被用户记住。因此,为了方便用户识别,在向用户展示时,可以采用容易被用户辨识的名称。具体地,所述容易被用户辨识的名称可以是终端设备的型号。例如,所述当前终端设备是苹果手机,那么向用户展示的名称可以是“myiphone”。如果在同一型号的终端设备有多个,那么便可以在表示型号的字符串的基础上添加相应的后缀来区分不同的终端设备。例如,用户使用了两台华为手机观看视频,那么这两台华为手机的展示名称可以分别为“muhuawei 1”和“myhuawei 2”。其中,1和2便可以是上述添加的后缀。
在本实施方式中,上述向用户展示的名称可以是用户自己设置的。例如,用户在使用某个终端设备访问视频播放网站,并且登陆了指定用户账号之后,视频播放网站的页面中可以弹出带有提示信息“请为您当前使用的设备设置名称”的文本输入框。用户在该文本输入框中输入相应的名称之后,视频播放网站的服务器便可以将输入的名称与该终端设备的标识相绑定。后续在用户的展示页面中需要展示该终端设备的名称时,便可以展示用户之前输入的名称。此外,上述向用户展示的名称也可以是视频播放网站的服务器根据终端设备的型号识别结果自动生成的。例如,在服务器中可以预先设置终端设备的命名规则,该命名规则为“型号+后缀”。其中,型号可以是识别出的型号对应的文本。例如,苹果手机对应的文本为“myiphone”,华为手机对应的文本为“myhuawei”。所述后缀可以是在型号对应的文本出现重复时添加的,从而使得添加后缀之后的名称针对同一个指定用户账号而言,具备唯一性。该后缀可以是不重复的数字。例如,添加了后缀的名称可以是“myhuawei 1”。
在一个实施方式中,为了将用户当前使用的终端设备与其它的终端设备进行区分,可以将当前终端设备的子播放记录显示于其它终端设备的子播放记录之前。例如,在图3中,用户当前使用的是手机,那么便可以将手机的子播放记录显示在首位,并且可以在表征手机的名称后注明“当前设备”的字样。
在一个实施方式中,视频播放记录中展示的各个视频的播放进度均可以在当前的终端设备上继续播放。例如,在图3中,当前的终端设备为myiphone,但是myipad对应的子播放记录中已观看至21%的天龙八部07的视频,同样可以在当前的终端设备中继续播放。具体地,当所述视频播放记录中目标视频的播放进度被触发时,可以在所述当前终端设备中按照所述目标视频的播放进度,继续播放所述目标视频。例如,上述已观看至21%的天龙八部07的视频被触发后,在当前的终端设备中便可以从21%的播放进度开始,继续播放天龙八部07的内容。当所述目标视频在播放时,可以按照步骤S11中的描述,记录所述目标视频在所述当前终端设备上的播放进度,并将所述目标视频在所述当前终端设备上的播放进度以及所述当前终端设备的标识发送至所述服务器,以使得所述服务器在所述当前终端设备的子播放记录中存储所述目标视频在所述当前终端设备上的播放进度。举例来说,在图3中,针对天龙八部这个剧集,当前设备中的播放进度为观看至第二集的31%,若此时用户点击了myipad中已观看至21%的第七集,那么在当前设备中会从第七集的21%开始播放,并且在播放时,原本在当前设备中的第二集31%的进度便会被覆盖,那么在当前设备中天龙八部这个剧集的播放进度,便会从第七集的21%开始逐步更新。当然,myipad中关于天龙八部剧集的播放进度会保持不变。
在一个实施方式中,用户有时候并不想非常细致地划分每个终端设备的播放进度,而是想将两个或者两个以上的终端设备视为同一个终端设备,在这些终端设备中播放的视频进度,可以相互覆盖。例如,用户自己具备两个终端设备,一个是手机,一个是平板电脑,用户在不同的时间段,可能会选用不同的终端设备。该用户通过这两个终端设备观看同一部剧集时,由于是同一个人在观看,那么便不希望将这两个终端设备的播放进度进行区分。在这种情况下,用户可以在历史记录的页面中,下达将至少两个终端设备的播放进度进行合并的合并指令。具体地,在历史记录的页面中,可以设置合并进度的按键,该按键上可以标明“合并进度”或者“合并历史”的示意文字。当该按键被用户触发时,便可以实现多个终端设备的播放进度的合并。在实际应用中,合并进度的实现方式也可以有多种形式。其中,如图3所示,可以在除当前设备之外的终端设备的子播放记录中,均设置合并进度的按键。其中,当某个终端设备的合并进度按键被点击时,便可以自动将该终端设备的子播放记录与当前设备的子播放记录合并,从而得到合并后的子播放记录,具体如图4所示。此外,请参阅图5,还可以在历史记录中设置统一的合并进度按键,当该按键被触发时,历史记录页面中各个终端设备的子播放记录便可以转换为可编辑的状态。如图5所示,处于可编辑状态的子播放记录上可以具备选择控件,用户可以通过触发选择控件,勾选需要合并进度的多个子播放记录。在勾选之后,用户再通过点击确定按键,便可以将勾选的多个子播放记录进行合并。
在本实施方式中,无论是通过哪种方式实现进度合并功能,用户都会在终端设备中下达进度合并指令。该进度合并指令被终端设备接收到之后,终端设备可以解析出该进度合并指令所针对的至少两个终端设备。例如,在图3中,用户触发myipad中的合并历史按键后,当前设备便可以获知需要将myipad和myiphone的子播放记录进行合并。又例如,在图5中,当用户勾选了myipad和mytv之后,当前设备便可以获知需要将myipad和mytv的子播放记录进行合并。
在本实施方式中,接收到进度合并指令的终端设备在解析出需要合并的至少两个终端设备之后,便可以向服务器发送进度合并请求,所述进度合并请求中可以包括待合并的至少两个终端设备的标识。服务器在接收到该进度合并请求后,可以从中提取出所述至少两个终端设备的标识,并可以在所述指定账号的视频播放记录中合并所述至少两个终端设备的子播放记录。在实际应用中,视频播放记录中各个视频的播放进度均可以与进度备份时间相关联。所述进度备份时间可以是服务器存储视频的播放进度的时间。例如,服务器在2017年6月14日20点08分56秒将天龙八部第二集观看至31%的播放进度存储至了所述指定用户账号下手机终端的子播放记录中,那么2017年6月14日20点08分56秒这个时间便可以作为手机终端的子播放记录中天龙八部第二集观看至31%的播放进度的进度备份时间。在本实施方式中,在合并所述至少两个终端设备的子播放记录时,服务器可以逐一合并这些子播放记录中各个视频的播放进度。具体地,服务器可以在所述至少两个终端设备的子播放记录中确定当前视频的至少一个播放进度,并将所述至少一个播放进度中进度备份时间最晚的播放进度作为所述当前视频的合并播放进度。其中,所述至少一个播放进度通常可以包含所述当前视频在需要合并的多个子播放记录中出现的所有播放进度。例如,所述当前视频为天龙八部剧集,而需要合并的多个子播放记录中,包括时间A进行备份的已观看至第二集31%的进度和时间B备份的已观看至第七集35%的进度,那么,如果时间A晚于时间B,则可以将已观看至第二集31%的进度作为天龙八部剧集的合并播放进度。这样,在得到所述当前视频的合并播放进度之后,可以将所述当前视频的合并播放进度写入合并后的子播放记录中。例如,在图4中,合并后的子播放记录中,神雕侠侣剧集和天龙八部剧集的播放进度均进行了合并,由以前的四个播放进度,合并为了两个播放进度。
在本实施方式中,在将至少两个终端设备的子播放记录进行合并之后,所述的至少两个终端设备便可以视为同一个终端设备。这样,当接收到所述至少两个终端设备中任一终端设备发来的目标进度备份请求时,都可以将所述目标进度备份请求中包含的播放进度存储至合并后的子播放记录中。在将所述目标进度备份请求中包含的播放进度存储至合并后的子播放记录中时,若所述目标进度备份请求中包含的播放进度指向的视频在合并后的子播放记录中已存在播放进度时,则可以用所述目标进度备份请求中包含的播放进度覆盖所述合并后的子播放记录中已存在的所述视频的播放进度。也就是说,经过合并的所述至少两个终端设备中产生的播放进度可以相互覆盖。例如,在手机终端和电视终端的子播放记录被合并后,如果手机终端和电视终端先后发来了针对同一视频的进度备份请求,那么在合并后的子播放记录中,只会保留最后发送的进度备份请求中包含的关于该视频的播放进度,之前的播放进度会被覆盖。
在本实施方式中,服务器在将进度合并之后,可以向终端设备反馈合并后的播放记录。这样,终端设备在接收到所述指定用户账号的合并播放记录后,可以在当前的历史记录页面中展示所述合并播放记录。所述合并播放记录中包括合并后的子播放记录,所述合并后的子播放记录中展示的视频为所述至少两个终端设备的子播放记录中视频的并集,并且所述合并后的子播放记录中展示有用于表征所述至少两个终端设备的文字信息。如图4所示,myiphone和myipad的子播放记录合并之后,在合并后的子播放记录中包括原先的天龙八部剧集和神雕侠侣剧集,并且在合并后的子播放记录中还注明了“myiphone&myipad”的字样。
在上述实施方式中,服务器中的视频播放记录会随着终端设备的合并而发生变化,在未合并之前,各个终端设备中产生的播放进度是独立记录的,而在合并之后,被合并的终端设备中产生的播放进度便会记录于同一个子播放记录中,并且针对相同视频的播放进度会相互覆盖。在这种情况下,用户还可以在终端设备中执行进度拆分指令,该进度拆分指令与进度合并指令相反,是将经过合并的多个终端设备拆分为一个个独立的终端设备。如图4所示,合并之后的子播放记录中,可以设置注明“拆分历史”或者“拆分进度”等字样的拆分控件。当该拆分控件被用户触发时,便会将合并的多个终端设备重新拆分为独立的终端设备,拆分后的终端设备便会具备各自的子播放记录,不会相互干扰。
在本实施方式中,用户在终端设备中触发进度拆分指令后,终端设备便可以解析出需要拆分的所述至少两个终端设备。这样,终端设备可以向服务器发送进度拆分请求,该请求中可以包括所述至少两个终端设备的标识,表明当前的合并子播放记录需要拆分为所述至少两个终端设备各自的子播放记录。服务器接收到该进度拆分请求后,可以将所述合并后的子播放记录拆分为多个子播放记录,其中,每个子播放记录均可以与各自的终端设备相对应。在本实施方式中,由于之前在合并子播放记录时,服务器中视频播放记录也随之改变,此时拆分后的各个子播放记录中便可以展示完全相同的播放进度。具体地,在所述合并后的子播放记录被拆分时,可以将所述合并后的子播放记录中视频的播放进度作为拆分后的所述多个子播放记录中视频的初始播放进度,这样,拆分之后的各个子播放记录中,视频的初始播放进度便完全一致,后续可以按照步骤S11中描述的方式,针对不同的终端设备进行不同的进度更新。举例来说,合并后的子播放记录中展示了观看至31%的天龙八部第二集和观看至41%的神雕侠侣第11集,该合并后的子播放记录是由myiphone和myipad共享的。那么在拆分之后,可以分别得到myiphone和myipad各自的子播放记录,只不过在这两个子播放记录中,均展示的是观看至31%的天龙八部第二集和观看至41%的神雕侠侣第11集。
在另一个实施方式中,服务器在接收到终端设备发来的进度合并请求之后,可以不对所述指定用户账号的视频播放记录进行更改,而是新建一个所述指定用户账号的合并播放记录,其中,新建的所述合并播放记录中的初始内容为所述指定用户账号的视频播放记录的复制。然后,可以按照前述实施方式中的技术方案,在所述合并播放记录中合并所述至少两个终端设备的子播放记录。也就是说,在本实施方式中,经过进度合并的指定用户账号下,存在两个播放记录,一个是仍然独立更新各个终端设备的子播放记录的视频播放记录,另一个则是将合并后的终端设备视为同一个终端设备的合并播放记录。这样,当接收到所述至少两个终端设备中目标终端设备发来的目标进度备份请求时,一方面需要将所述目标进度备份请求中包含的播放进度存储至合并后的子播放记录中,另一方面还需要将所述目标进度备份请求中包含的播放进度存储至所述视频播放记录中所述目标终端设备的子播放记录中。也就是说,在视频播放记录中,各个终端设备还保持各自的子播放记录,互不干扰,但是在所述合并播放记录中,合并后的多个终端设备之间的播放进度会相互覆盖。这样,当接收到指向所述指定用户账号的播放记录加载请求时,服务器可以仅向发送所述播放记录加载请求的请求方反馈所述指定用户账号的合并播放记录,而不反馈各个终端设备保持独立的视频播放记录。这样,客户端便可以正常显示合并后的子播放记录。
在本实施方式中,各个终端设备保持独立的视频播放记录可以在服务器接收到进度拆分请求时体现出用途。当服务器接收到进度拆分请求时,可以响应于所述进度拆分请求,删除上述的合并播放记录,而保留各个终端设备保持独立的视频播放记录。这样,后续当接收到指向所述指定用户账号的播放记录加载请求时,可以直接向发送所述播放记录加载请求的请求方反馈所述指定用户账号的视频播放记录。也就是说,按照这种处理方式,用户在将合并后的多个终端设备进行拆分后,由于加载的是各个终端设备保持独立的视频播放记录,那么得到的多个子播放记录中展示的初始视频播放进度可以不完全一致,而是按照实际的播放进度进行显示。这样,就算将多个终端设备进行合并之后再进行拆分,也不会使得这多个终端设备之间的播放进度相互干扰。
由上可见,根据不同的合并方式,最终拆分后,在终端设备中展示的拆分后的各个子播放记录的内容也可以不同。拆分得到的所述子播放记录中展示的视频的播放进度可以为拆分所述合并后的子播放记录时,所述合并后的子播放记录中视频的播放进度;或者拆分得到的所述子播放记录中展示的视频的播放进度可以为对应终端设备中播放的视频的播放进度。
请参阅图6,本申请还提供一种服务器,所述服务器包括处理器和存储器,所述存储器中存储计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:
S11:接收当前终端设备发来的进度备份请求,所述进度备份请求中包括目标视频在所述当前终端设备上的播放进度以及用于表征所述当前终端设备的标识;所述当前终端设备上登录有指定用户账号;
S13:基于所述标识,在所述指定用户账号的视频播放记录中确定所述当前终端设备的子播放记录;
S15:在所述当前终端设备的子播放记录中存储所述目标视频在所述当前终端设备上的播放进度,以更新所述指定用户账号的视频播放记录。
在本实施方式中,所述存储器可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方法的媒体加以存储。本实施方式所述的存储器又可以包括:利用电能方式存储信息的装置,如RAM、ROM等;利用磁能方式存储信息的装置,如硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置,如CD或DVD。当然,还有其他方式的存储器,例如量子存储器、石墨烯存储器等等。
在本实施方式中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
本说明书实施方式提供的服务器,其存储器和处理器实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。
本申请还提供一种播放记录的更新方法,所述方法可以应用于客户端中。所述客户端可以是用户使用的终端设备,还可以是运行于上述终端设备中的软件。请参阅图7,所述方法包括以下步骤。
S21:通过当前终端设备播放指定视频,并记录所述指定视频在所述当前终端设备上的播放进度;其中,所述当前终端设备上登录有指定用户账号。
在本实施方式中,用户通过所述当前终端设备访问视频播放网站时,可以在当前终端设备上登陆已在所述视频播放网站中注册过的指定用户账号。在所述视频播放网站的服务器中可以将所述用户的信息与所述指定用户账号进行关联存储。其中,所述用户的信息可以包括在注册时由用户输入的信息,例如昵称、性别、出生年月、兴趣爱好等;还可以包括用户在浏览视频播放网站时的行为数据,例如用户最爱观看的题材、用户的在线时长、用户的视频播放记录等。
在本实施方式中,当所述指定用户账号保持登陆状态时,若用户在观看某个视频,那么当前终端设备便可以将用户正在观看的视频的播放进度发送至服务器中,从而通过服务器备份用户的视频播放记录。具体地,在当前终端设备播放目标视频时,目标视频的播放页面或者视频播放网站的APP会按照指定周期记录所述目标视频的当前播放进度。所述指定周期可以是视频播放网站的开发者预先指定的。例如,所述指定周期可以是2秒。这样,便可以每隔2秒钟记录一次目标视频的当前播放进度。所述当前播放进度可以是所述目标视频当前的播放时长。例如,在记录当前播放进度时,目标视频播放至4分15秒,那么4分15秒便可以作为所述当前播放进度。此外,所述当前播放进度还可以是所述目标视频当前的播放时长在总时长中的占比。例如,在记录当前播放进度时,目标视频播放至4分15秒,该目标视频的总时长为10分钟,那么4分15秒与10分钟的比值42.5%便可以作为所述当前播放进度。当然,在实际应用中,视频播放网站的APP也可以在关闭或者从当前界面中退出时才记录目标视频的当前播放进度。具体地,APP在接收到关闭或者退出的指令时,可以记录APP中播放的目标视频的当前播放进度,然后可以将记录的当前播放进度以及所述目标视频的标识一并发送至服务器,以使得服务器可以备份所述目标视频的当前播放进度。
S23:获取用于表征所述当前终端设备的标识。
在本实施方式中,在记录所述目标视频在所述当前终端设备中的播放进度的同时,为了明确该播放进度是在当前终端设备中记录的,因此可以获取用于表征所述当前终端设备的标识。具体地,所述标识可以用于唯一表示所述当前终端设备,从而能够将所述当前终端设备与其它终端设备进行区分。在实际应用中,所述标识可以是所述当前终端设备的国际移动设备身份码(IMEI,International Mobile Equipment Identity)或者MAC地址等具备唯一性的字符串。此外,所述标识还可以是对上述的IMEI或者MAC地址进行散列映射处理之后的字符串。例如,所述标识可以是由IMEI生成的MD5码。在本实施方式中,所述标识可以在所述当前终端设备被生产或者被激活时存储于所述当前终端设备的指定目录下。这样,通过读取所述指定目录下的数据,便可以获取用于表征所述当前终端设备的标识。
S25:将所述指定视频在所述当前终端设备上的播放进度以及获取的所述标识发送至服务器,以使得所述服务器基于所述标识,在所述指定用户账号的视频播放记录中确定所述当前终端设备的子播放记录,并在所述当前终端设备的子播放记录中存储所述指定视频在所述当前终端设备上的播放进度。
在本实施方式中,在记录了所述目标视频的播放进度并获取了所述当前终端设备的标识后,当前终端设备便可以向服务器发起进度备份请求,该请求中可以携带上述记录的播放进度以及获取的标识。当然,在实际应用中,所述进度备份请求中还可以携带用于表征所述指定用户账号的标识。该表征指定用户账号的标识可以是所述指定用户账号本身,也可以是所述指定用户账号对应的后台数字编号,本申请对其实现形式并不限制,只要能保证唯一性即可。
在本实施方式中,服务器可以按照前述实施方式中步骤S13和S15中描述的技术方案,对所述目标视频在当前终端设备上产生的播放进度进行更新。
在一个实施方式中,视频播放网站可以具备用户的历史记录页面,在所述历史记录页面中可以展示用户的视频播放记录。具体地,用户可以在终端设备上登陆所述指定用户账号,这样,若终端设备的当前页面跳转至历史记录页面时,终端设备便可以自动向服务器发送指向所述指定用户账号的播放记录加载请求。其中,所述播放记录加载请求中可以携带表征所述指定用户账号的标识。该标识可以是所述指定用户账号本身,也可以是所述指定用户账号在视频播放网站中对应的数字编号。这样,服务器在接收到所述播放记录加载请求后,便可以向发送所述播放记录加载请求的请求方反馈所述指定用户账号的视频播放记录。
在本实施方式中,所述终端设备接收到服务器反馈的视频播放记录后,可以在当前的历史记录页面中展示所述视频播放记录。请参阅图3,展示的视频播放记录中可以包括多个终端设备的子播放记录,这些子播放记录中可以展示终端设备的名称,以及在终端设备中产生的各个视频的播放进度。在本实施方式中,由于上述的终端设备的标识具备唯一性,因此其表现形式通常比较复杂,很难被用户记住。因此,为了方便用户识别,在向用户展示时,可以采用前述实施方式中描述的容易被用户辨识的名称。
在一个实施方式中,为了将用户当前使用的终端设备与其它的终端设备进行区分,可以将当前终端设备的子播放记录显示于其它终端设备的子播放记录之前。例如,在图3中,用户当前使用的是手机,那么便可以将手机的子播放记录显示在首位,并且可以在表征手机的名称后注明“当前设备”的字样。
在一个实施方式中,可以采用前述实施方式中描述的技术方案,对至少两个终端设备的子播放记录进行合并或者拆分。根据不同的合并方式,最终拆分后,在终端设备中展示的拆分后的各个子播放记录的内容也可以不同。拆分得到的所述子播放记录中展示的视频的播放进度可以为拆分所述合并后的子播放记录时,所述合并后的子播放记录中视频的播放进度;或者拆分得到的所述子播放记录中展示的视频的播放进度可以为对应终端设备中播放的视频的播放进度。
在一个实施方式中,所述指定用户账号下的视频播放记录中视频的播放进度可以与进度备份时间相关联。这样,在终端设备的历史记录页面中,还可以按照时段来展示各个视频的播放进度。具体地,可以按照进度备份时间所属的时段,将所述视频播放记录中视频的播放进度归类显示,其中,归类显示的视频的播放进度中标注出所述视频的播放进度对应的终端设备。请参阅图8,历史记录中展示的视频播放进度可以按照日期进行显示,其中,在“今天”展示的播放进度中,各个视频的播放进度对应的进度备份时间均可以处于“今天”的时段。这样,通过按照进度备份时间进行时段的划分,从而可以将不同子播放记录中的视频播放进度,显示于同一个时段分类下。为了区分不同的终端设备,可以如图8中所示的,在各个视频的播放进度中标注出所述视频的播放进度对应的终端设备的名称。
请参阅图9,本申请还提供一种客户端,所述客户端包括处理器、存储器和显示器,所述存储器中存储计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:
S21:通过所述显示器播放指定视频,并记录所述指定视频在所述客户端中的播放进度;其中,所述客户端中登录有指定用户账号;
S23:获取用于表征所述客户端的标识;
S25:将所述指定视频在所述客户端中的播放进度以及获取的所述标识发送至服务器,以使得所述服务器基于所述标识,在所述指定用户账号的视频播放记录中确定所述客户端的子播放记录,并在所述客户端的子播放记录中存储所述指定视频在所述客户端中的播放进度。
在本实施方式中,所述存储器可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方法的媒体加以存储。本实施方式所述的存储器又可以包括:利用电能方式存储信息的装置,如RAM、ROM等;利用磁能方式存储信息的装置,如硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置,如CD或DVD。当然,还有其他方式的存储器,例如量子存储器、石墨烯存储器等等。
在本实施方式中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
在本实施方式中,所述显示器可以是将一定的电子文件通过特定的传输设备显示到屏幕上再反射到人眼的显示工具。所述显示器可以包括液晶LCD显示屏、阴极射线管CRT显示屏、发光二极管LED显示屏等。
本说明书实施方式提供的客户端,其存储器、处理器和显示器实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。
由上可见,本申请提供的技术方案,当用户在当前终端设备中登陆指定用户账号,并且使用当前终端设备观看视频时,当前终端设备可以将该视频的播放进度以及自身的标识一并发送至服务器。这样,服务器在更新该用户的视频播放记录时,可以通过接收到的标识,确定出本次的播放进度是在哪个终端设备上产生的。在服务器中可以保存所述指定用户账号的视频播放记录,但该视频播放记录中可以按照终端设备的不同,而划分为多个子播放记录。服务器在更新上述视频的播放进度时,可以将该视频的播放进度存储至所述当前终端设备的子播放记录中,表示该视频的播放进度是在当前终端设备中产生的。对于其它的终端设备的子播放记录,则可以不做更改。这样,当登陆了上述指定用户账号的终端设备需要加载视频播放记录时,服务器便可以向其提供包含各个子播放记录的视频播放记录。终端设备在展示该视频播放记录时,可以按照终端设备的不同而分类展示。这样,就算两个用户通过同一个账号观看同一部剧集,只要这两个用户使用各自的终端设备,那么他们的观看记录便不会相互覆盖,而是会分别记录于各自的终端设备的子播放记录下。用户通过区分视频播放记录中的终端设备,便可以准确地获知自身观看视频的进度,而不会与他人的观看进度相混淆。由此可见,本申请提供的技术方案,能够区分不同用户的播放记录。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field ProgrammableGateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现客户端和服务器以外,完全可以通过将方法步骤进行逻辑编程来使得客户端和服务器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种客户端和服务器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。
本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,针对客户端和服务器的实施方式来说,均可以参照前述方法的实施方式的介绍对照解释。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施方式描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。