一种预约消息为非单次预约模式的PVR预约方法及装置
技术领域
本申请涉及电视技术领域,尤其涉及一种预约消息为非单次预约模式的PVR预约方法及装置。
背景技术
PVR(Personal video recorder,个人视频录像)是智能电视或者机顶盒等设备的一项重要功能,预约录制则是PVR功能不可或缺的一部分。预约录制指由用户提前设置预约时间,PVR根据该预约时间自动启动和结束视频录制。用户通过UI(User Interface,用户界面)设置的预约信息被保存于预约记录中,定时器会根据预约记录在预约启动时间到期前触发处理器,由处理器根据预约记录生成预约消息,或者由定时器根据预约记录在预约启动时间到期前向处理器发送预约消息。所述预约消息包括录制的频道号、接收方式、节目名称、预约启动时间、录制时长(或录制停止时间)、重复模式等字段。处理器根据所述预约消息完成启动录制前的准备工作,例如停止其他应用、切换通道和切换频道等,然后在预约启动时间启动PVR,并在录制完成时停止PVR。其中,重复模式分为单次预约和周期性预约,周期性预约一般包括每周一次预约、每周多次预约和每天重复预约,重复模式还可以为隔时预约,例如录制周一、周二、周五、周六的节目且只录一周。如果非单次预约(包括周期性预约和隔时预约),在一次录制完成后会自动计算下一次录制的预约启动时间,并根据该预约启动时间对定时器进行。
通常PVR只按照预约消息的内容进行处理,并不考虑当前时间。在PVR测试或者用户使用过程中,可能遇到系统时间发生跳变的场景,例如切换测试码流、长时间不开机、或者修改系统时间等,这种情况可能会产生大量过期的预约消息,而处理过期的预约消息不仅仅是做无用功,当过期预约消息过多时,还可能导致按键长时间不响应,甚至是短暂的死机现象,影响整机的性能。
例如:2017-5-1 7:00用户设置了一个重复模式为每天8:00-9:00重复的预约时间,然后电视断电了,直到2017-5-10 8:00再开机。目前对包含这种重复模式的预约消息的处理方式是:处理器先得到2017-5-1 8:00-9:00录制的预约消息,判断该预约消息已经过期,则忽略该预约消息,并设置下一次预约消息的录制时间为2017-5-2 8:00-9:00,根据下一次预约消息更新定时器;一段时间后,会得到2017-5-2 8:00-9:00的预约消息,判断该预约也过期了,则继续忽略该预约消息,并设置下一次预约消息的录制时间为2017-5-3 8:00-9:00,根据下一次预约消息更新定时器;依此类推,当收到2017-5-98:00-9:00的预约消息时,判断该预约已经过期,忽略该预约消息,并设置下一次预约消息的录制时间为2017-5-10 8:00-9:00;收到2017-5-10 8:00-9:00的预约消息后,判断该预约没有过期,根据该预约消息将频道切换到指定频道,在指定的时间启动(8:00启动)和结束录制(9:00结束),并设置下一次预约消息的录制时间为2017-5-118:00-9:00。
上述例子中,从2017-5-1到2017-5-9对应的9次预约消息都是无效的,但依然会被处理,如果用户设置了多个预约,预约消息就会成倍的增加,当大量的预约消息集中处理时,就会严重影响系统性能,导致按键不响应和死机。
发明内容
本申请提供了一种预约消息为周期性预约模式的PVR预约方法及装置,以减少无效预约消息,提高系统性能。
第一方面,本申请提供了一种预约消息为非单次预约模式的PVR预约方法,所述方法包括:
若检测到在PVR设备启动后收到的第一预约消息已过期,则根据所述预约消息的重复模式确定有效预约消息,所述有效预约消息的预约启动时间晚于当前时间且最接近所述当前时间;
用所述有效预约消息的前一次预约消息替换所述第一预约消息,以基于所述当前时间对所述前一次预约消息进行处理后,对所述有效预约消息进行处理。
其中,所述基于所述当前时间对所述前一次预约消息进行处理可以包括:若当前时间在所述前一次预约消息的时间范围以内,启动PVR录制功能执行所述前一次预约消息,否则忽略所述前一次预约消息对应的预约请求。所述前一次预约消息的时间范围可以为录制时间段也可以为有效预约时间段,其中,录制时间段指预约启动时间至录制结束时间之间的时间段,所述有效预约时间段的起始时间等于所述预约启动时间减去预约消息提前发送时长,所述有效预约时间段的结束时间等于所述录制结束时间,若为设定预约消息提前发送时长,则所述有效预约时间段和录制时间段相同。
采用该实现方式,可以减少不必要的无效预约消息的产生,提高系统性能,避免系统死机。
结合第一方面,在第一方面第一种可能的实施方式中,所述方法,在用所述有效预约消息的前一次预约消息替换所述第一预约消息之前,还包括:
根据所述第一预约消息得到第一节目名称;
根据所述第一节目名称的节目ID从电子节目指南EPG中获取最新的第二节目名称;
判断所述第一节目名称与所述第二节目名称是否相同;
若所述第一节目名称与所述第二节目名称不同,用所述第二节目名称替换预约消息中的所述第一节目名称。
第二方面,本申请提供了另一种预约消息为非单次预约模式的PVR预约方法,所述方法包括:
若检测到在PVR设备启动后收到的第一预约消息已过期,则根据所述预约消息的重复模式,确定有效预约消息,所述有效预约消息的预约启动时间晚于当前时间,且所述有效预约消息的预约启动时间最接近所述当前时间;
若当前时间在所述有效预约消息的前一次预约消息的录制结束时间之后,用所述有效预约消息替换所述第一预约消息,以对所述有效预约消息进行处理;
否则,用所述有效预约消息的前一次预约消息替换所述第一预约消息,以基于所述当前时间对所述前一次预约消息进行处理后,对所述有效预约消息进行处理。
其中,所述基于所述当前时间对所述前一次预约消息进行处理可以包括:若当前时间在所述前一次预约消息的时间范围以内,启动PVR录制功能执行所述前一次预约消息,否则忽略所述前一次预约消息对应的预约请求。所述前一次预约消息的时间范围可以为录制时间段也可以为有效预约时间段,其中,录制时间段指预约启动时间至录制结束时间之间的时间段,所述有效预约时间段的起始时间等于所述预约启动时间减去预约消息提前发送时长,所述有效预约时间段的结束时间等于所述录制结束时间,若为设定预约消息提前发送时长,则所述有效预约时间段和录制时间段相同。
采用该实现方式,也可以在当前时间在所述有效预约消息的前一次预约消息的录制结束时间之后的情况下,进一步减少无效预约消息的产生。
第三方面,本申请还提供了一种预约消息为非单次预约模式的PVR预约装置,用于实现第一方面所述的PVR预约方法,所述装置包括:
有效预约消息确定单元,用于若检测到在PVR设备启动后收到的第一预约消息已过期,则根据所述预约消息的重复模式确定有效预约消息,所述有效预约消息的预约启动时间晚于当前时间且最接近所述当前时间;
替换单元,用于用所述有效预约消息的前一次预约消息替换所述第一预约消息,以基于所述当前时间对所述前一次预约消息进行处理后,对所述有效预约消息进行处理。
其中,所述基于所述当前时间对所述前一次预约消息进行处理可以包括:若当前时间在所述前一次预约消息的时间范围以内,启动PVR录制功能执行所述前一次预约消息,否则忽略所述前一次预约消息对应的预约请求。所述前一次预约消息的时间范围可以为录制时间段也可以为有效预约时间段,其中,录制时间段指预约启动时间至录制结束时间之间的时间段,所述有效预约时间段的起始时间等于所述预约启动时间减去预约消息提前发送时长,所述有效预约时间段的结束时间等于所述录制结束时间,若为设定预约消息提前发送时长,则所述有效预约时间段和录制时间段相同。
结合第三方面,在第三方面第一种可能的实施方式中,所述装置还包括节目名称更新单元,所述节目名称更新单元,用于:
在用所述有效预约消息的前一次预约消息替换所述第一预约消息之前,根据所述第一预约消息得到第一节目名称;
根据所述第一节目名称的节目ID从电子节目指南EPG中获取最新的第二节目名称;
判断所述第一节目名称与所述第二节目名称是否相同;
若所述第一节目名称与所述第二节目名称不同,用所述第二节目名称替换预约消息中的所述第一节目名称。
第四方面,本申请还提供了另一种预约消息为非单次预约模式的PVR预约装置,用于实现第二方面所述的PVR预约方法,所述装置包括:
有效预约消息确定单元,用于若检测到在PVR设备启动后收到的第一预约消息已过期,则根据所述预约消息的重复模式确定有效预约消息,所述有效预约消息的预约启动时间晚于当前时间且最接近所述当前时间;
替换单元,用于若当前时间在所述有效预约消息的前一次预约消息的录制结束时间之后,用所述有效预约消息替换所述第一预约消息,以对所述有效预约消息进行处理;否则,用所述有效预约消息的前一次预约消息替换所述第一预约消息,以基于所述当前时间对所述前一次预约消息进行处理后,对所述有效预约消息进行处理。
其中,所述基于所述当前时间对所述前一次预约消息进行处理可以包括:若当前时间在所述前一次预约消息的时间范围以内,启动PVR录制功能执行所述前一次预约消息,否则忽略所述前一次预约消息对应的预约请求。所述前一次预约消息的时间范围可以为录制时间段也可以为有效预约时间段,其中,录制时间段指预约启动时间至录制结束时间之间的时间段,所述有效预约时间段的起始时间等于所述预约启动时间减去预约消息提前发送时长,所述有效预约时间段的结束时间等于所述录制结束时间,若为设定预约消息提前发送时长,则所述有效预约时间段和录制时间段相同。
本申请实施例所提供的预约消息为非单次预约模式的PVR预约技术方案,若检测到第一预约消息已过期且非单次预约,则根据重复模式确定有效预约消息,用所述有效预约消息的前一次预约消息替换所述第一预约消息,若当前时间在所述有效预约消息的前一次预约消息的录制结束时间之后,还可以用所述有效预约消息替换所述第一预约消息,所述有效预约消息为预约启动时间在当前时间之后,且距离所述当前时间最近的预约消息,从而减少无效预约消息的产生,提高系统性能,避免系统死机。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一种预约消息为非单次预约模式的PVR预约方法的流程示意图;
图2为当前时间和预约消息在时间轴上的示意图;
图3为本申请另一种预约消息为非单次预约模式的PVR预约方法的流程示意图;
图4为本申请又一种预约消息为非单次预约模式的PVR预约方法的流程示意图;
图5为本申请一种预约消息为非单次预约模式的PVR预约装置的框图;
图6为本申请另一种预约消息为非单次预约模式的PVR预约装置的框图;
具体实施方式
为便于理解本申请,对PVR预约过程作简要介绍。用户通过UI设置预约录制相关信息,包括:预约的节目名称或节目标识(例如节目ID)、节目所在的频道、预约启动时间(也就是录制开始的时间)、录制时长或者录制结束时间和重复模式等,其中预约启动时间和录制结束时间通常为一天中的某个时间,不包括日期,例如预约启动时间为8:00,录制结束时间为9:00。其中重复模式包括单次预约或者非单次预约,非单次预约包括周期性预约和隔时预约,若为非单次预约,用户还可以设置预约开始的日期,或者默认用户设置预约录制相关信息的日期为预约开始的日期。UI获取到用户设置的录制相关信息后将这些信息存储于存储器的预约记录中,所述预约记录还包括用户设置录制相关信息的时间。
定时器根据预约记录定时向处理器发送预约消息(预约消息由定时器生成),处理器对预约消息进行处理;或者所述定时器根据预约记录定时触发第一处理器,由第一处理器根据预约记录生成预约消息,将预约消息发送给第二处理器,由第二处理器对预约消息进行处理;或者定时器根据预约记录定时触发处理器,处理器根据预约记录生成预约消息并对预约消息进行处理。其中,定时器根据预约记录定时触发处理器或者发送预约消息,指重复模式为周期性预约时,定时器根据重复模式,和用户设置的非单次预约开始的日期或者用户设置预约录制相关信息的日期(默认为非单次预约开始的日期),按照设定的预约消息发送时长,在每个需要录制的日期的预约启动时间前的一定时间触发处理器或者发送预约消息,所述一定时间为预约启动时间减去预约消息发送时长。例如,2017-5-1 7:00用户设置了一个重复模式为每天8:00-9:00录制的预约,默认用户进行设置的日期为预约开始的日期,则预约开始的日期为2017-5-1,预约启动时间为8:00,录制结束时间为9:00,设定预约消息提前发送时长为2min,则定时器在2017-5-17:58-8:00间第一次发送预约消息或者触发处理器,预约消息的录制时间为2017-5-18:00-9:00,发送或触发完毕后,定时器自动更新设置第二次发送预约消息或者触发处理器的时间为2017-5-2 7:58-8:00之间,或者由处理器设置定时器第二次发送预约消息或触发处理器的时间为2017-5-5 7:58-8:00之间,依此类推,定时器会在每天的7:58-8:00发送预约消息或触发处理器。处理器根据预约消息在预约启动时间启动PVR开始节目的录制,在录制结束时间停止节目的录制。也可以不设定预约消息提前发送时长,定时器在预约启动时间发送预约消息或触发处理器。
现有技术中,如果用户设置预约相关信息完毕后,或者在几次预约消息处理后,智能电视或机顶盒等设备停机或发生故障,一段时间后才开机或故障消除,便会产生无效的预约消息,影响系统性能,为了减少无效预约消息,本申请提供一种预约消息为非单次预约模式的PVR预约方法。参见图1,为所述方法的流程示意图,如图1所示,所述方法包括:
步骤S101,若检测到在PVR设备启动后收到的第一预约消息已过期,则根据所述预约消息的重复模式确定有效预约消息,所述有效预约消息的预约启动时间晚于当前时间且最接近所述当前时间;
步骤S102,用所述有效预约消息的前一次预约消息替换所述第一预约消息,以基于所述当前时间对所述前一次预约消息进行处理后,对所述有效预约消息进行处理。
其中,所述基于所述当前时间对所述前一次预约消息进行处理可以包括:若当前时间在所述前一次预约消息的时间范围以内,启动PVR录制功能执行所述前一次预约消息,否则忽略所述前一次预约消息对应的预约请求。所述前一次预约消息的时间范围可以为录制时间段也可以为有效预约时间段,其中,录制时间段指预约启动时间至录制结束时间之间的时间段,所述有效预约时间段的起始时间等于所述预约启动时间减去预约消息提前发送时长,所述有效预约时间段的结束时间等于所述录制结束时间,若为设定预约消息提前发送时长,则所述有效预约时间段和录制时间段相同。
智能电视或机顶盒等具有PVR功能的设备开机或故障消除后,会收到定时器或另一处理器发送的原本应发送但之前未发送的初始预约消息,或者会被定时器触发生成原本应生但之前未生成的初始预约消息,该预约消息即所述第一预约消息。例如,2017-5-17:00用户设置了一个重复模式为每天8:00-9:00录制的预约,默认用户进行设置的日期为预约开始的日期,则预约开始的日期为2017-5-1,但是智能电视等设备随后停机,2017-5-10 6:00才开机,则所述第一预约消息为录制时间为2017-5-1 8:00-9:00的预约消息。
获取到第一预约消息即接收到定时器或另一处理器发送的第一预约消息,或者被定时器触发生成第一预约消息后,读取所述第一预约消息中包含的重复模式、预约启动时间,以及读取所述第一预约消息中包含的录制结束时间。若所述第一预约消息中包含录制结束时间,则可以直接读取到录制结束时间,若所述第一预约消息中包含的是录制时长,则将预约启动时间与录制时长相加得到录制结束时间。
根据当前时间和所述第一预约消息的录制结束时间判断所述预约消息是否过期,若当前时间在所述录制结束时间之后,则所述第一预约消息过期。一般来讲,若当前时间的日期在所述第一预约消息的日期之后,便可确定所述第一预约消息已过期。特殊的情况是,预约启动时间在零点以前而录制结束时间在零点之后,这种情况下,若当前时间(24小时时间)在零点之后但在录制结束时间之前,便不能仅依日期判断是否过期,还需判断当前时间是否在录制结束时间之后。例如,若第一预约消息的录制时间为2017-5-18:00-9:00,其中预约启动时间和录制结束时间未跨零点,当前时间为2017-5-10 7:00,则根据日期便可判断所述第一预约消息已过期;若第一预约消息的录制时间为2017-5-123:00至2017-5-201:00,若当前时间为2017-5-2 00:30,则虽然当前时间的日期在第一预约消息的日期之后,但由于当前时间的小时时间在录制结束时间之前,因此所述第一预约消息不能视为已过期;若当前时间为2017-5-2 02:00,当前时间的日期在所述第一预约消息的日期之后,且当前时间的小时在所述录制结束时间之后,则所述第一预约消息是已过期的。
若所述第一预约消息未过期,则根据第一预约消息在预约启动时间启动PVR进行节目录制,还可以在启动PVR后删除所述第一预约消息,以减少预约消息的累积。若所述第一预约消息已过期,则可以根据读取到的重复模式判断是单次预约还是非单次预约。若第一预约消息已过期且为单次预约,则忽略所述第一预约消息不做处理。
若非单次预约,则可以用的有效预约消息的前一次预约消息替换所述第一预约消息,所述有效预约消息的预约启动时间晚于当前时间,且所述有效预约消息的预约启动时间最接近所述当前时间。
具体地,可以先计算有效预约消息,例如,第一预约消息为录制时间为2017-5-18:00-9:00的预约消息,当前时间为2017-5-10 7:00,则有效预约消息为录制时间为2017-5-10 8:00-9:00的预约消息;若当前时间为2017-5-10 8:30,或者当前时间为2017-5-10 23:00,则有效预约消息为录制时间为2017-5-11 8:00-9:00的预约消息。又例如,第一预约消息为录制时间为2017-5-1 23:00至2017-5-2 1:00的预约消息,当前时间为2017-5-10 0:30,或者当前时间为2017-5-10 9:00,则有效预约消息为录制时间为2017-5-10 23:00至2017-5-10 1:00的预约消息;若当前时间为2017-5-10 23:30,则有效预约消息为录制时间为2017-5-11 23:00至2017-5-12 1:00的预约消息。
若非单次预约,可以用所述有效预约消息的前一次预约消息替换所述第一预约消息,以下举例说明。需要说明的是,所述设定预约消息提取发送时长,则有效预约时间段以内定时器都可以发送预约消息或者触发处理器生成预约消息,所述有效预约时间段的起始时间等于所述预约启动时间减去预约消息提前发送时长,所述有效预约时间段的结束时间等于所述录制结束时间,所述预约消息提前发送时长预先设定。例如预约启动时间为8:00,录制结束时间为9:00,预约消息提前发送时长为2min,则7:58-9:00为有效预约时间段。定时器也可以只在预约启动时间发送预约消息或者触发处理器生成预约消息,若未设定预约消息提取发送时长,则有效预约时间段和录制时间段相同。为方便描述,以下举例皆以定时器发送预约消息的应用场景为例进行说明,本领域技术人员应当能够轻易地了解到定时器触发处理器生成预约消息的应用场景下,预约消息的处理过程与定时器发送预约消息的应用场景下的预约消息处理过程是类同的。另外,以下举例中重复模式为每天录制。
若非单次预约,可以用所述有效预约消息的前一次预约消息替换所述第一预约消息。例如,如图2a所示,当前时间为6:00,或者如图2b所示,当前时间为7:59,当前时间的日期为2017-5-10,第一预约消息为录制时间为2017-5-1 8:00-9:00的预约消息,预约消息提前发送时长为2min,有效预约时间段为7:58-9:00。则可以计算得到有效预约消息为录制时间为2017-5-10 8:00-9:00的预约消息,那么可以用录制时间为2017-5-98:00-9:00的预约消息替换所述第一预约消息,这样定时器会再发送一次2017-5-9的预约消息,也就是再发送一次无效的预约消息,并设置下一次预约消息为2017-5-10的预约消息,并在2017-5-107:58-8:00间(当前时间为6:00的情况下)或者7:59(当前时间为7:59的情况下)发送2017-5-10的预约消息,处理器根据该预约消息启动录制,定时器也可以对替换后的第一预约消息(2017-5-9的预约消息)进行判断,判断得到该第一预约消息为过期的无效消息而不发送,直接在2017-5-10发送2017-5-10的预约消息。这种方式可能会再产生一次无效的过期消息,但可以防止在未到有效预约时间段的时候智能电视或机顶盒等具有PVR功能的设备再次停机或故障而导致录制时间为2017-5-10 8:00-9:00的预约消息不会被发送而丢失。需要说明的是,若未设定预约消息提取发送时长,则有效预约时间段为8:00-9:00,若但当前时间为7:59,录制时间为2017-5-9 8:00-9:00的预约消息将会在8:00发送。
当前时间在所述有效预约消息的前一次预约消息的录制时间段以内时,例如,如图2c所示,当前时间为8:10,当前时间的日期为2017-5-10,第一预约消息为录制时间为2017-5-1 8:00-9:00的预约消息,则可以计算得到有效预约消息为录制时间为2017-5-118:00-9:00的预约消息,那么以录制时间为2017-5-10 8:00-9:00的预约消息替换录制时间为2017-5-1 8:00-9:00的第一预约消息,由于当前时间在有效预约时间段以内,定时器会马上发送该2017-5-10的预约消息,并设置下一次预约消息为2017-5-11的预约消息,这样不会产生无效的过期消息,由于定时器会马上发送2017-5-10的预约消息,即使智能电视或机顶盒等设备随即突然停机或故障,录制时间为2017-5-10 8:00-9:00的预约消息也不会丢失。
若录制时间段跨零点,例如当前时间为0:30,当前时间的日期为2017-5-10,第一预约消息为录制时间为2017-5-1 23:00至2017-5-2 1:00的预约消息,有效预约时间段为22:58至次日1:00。则可以计算得到有效预约消息为录制时间为2017-5-10 23:00至2017-5-11 1:00的预约消息,则可以用录制时间为2017-5-9 23:00至2017-5-10 1:00的预约消息替换所述第一预约消息,并设置下一次预约消息为录制时间为2017-5-1023:00至2017-5-11 1:00的预约消息。由于当前时间在有效预约时间段以内,则录制时间为2017-5-9 23:00至2017-5-10 1:00的预约消息会马上发送,处理器根据该预约消息启动录制(只录制半小时)。若当前时间为23:30,当前时间的日期为2017-5-10,第一预约消息为录制时间为2017-5-1 23:00至2017-5-2 1:00的预约消息,则可以计算得到有效预约消息为录制时间为2017-5-11 23:00至2017-5-12 1:00的预约消息,则可以用录制时间为2017-5-10 23:00至2017-5-11 1:00的预约消息替换所述第一预约消息,并设置下一次预约消息为录制时间为2017-5-11 23:00至2017-5-12 1:00的预约消息。由于当前时间在有效预约时间段以内,则录制时间为2017-5-10 23:00至2017-5-11 1:00的预约消息会马上发送,处理器根据该预约消息启动录制。需要说明的是,当前时间在与有效预约时间段比较时,是以小时时间进行比较,而不考虑当前时间的日期。
又例如,如图2d所示,当前时间为23:00,当前时间的日期为2017-5-10,第一预约消息为录制时间为2017-5-1 8:00-9:00的预约消息,则可以计算得到有效预约消息为录制时间为2017-5-11 8:00-9:00的预约消息,那么可以用录制时间为2017-5-108:00-9:00的预约消息替换所述第一预约消息,并设置下一次预约消息为2017-5-11的预约消息。这样定时器会再发送一次2017-5-10的预约消息,也就是再发送一次无效的预约消息,并设置下一次预约消息为2017-5-11的预约消息,定时器也可以对替换后的第一预约消息(2017-5-10的预约消息)进行判断,判断得到该第一预约消息为过期的预约消息而不发送,直接在2017-5-11发送2017-5-11的预约消息。这种情况下会再产生一次无效的过期消息。
由上述例子可以看出,若当前时间在所述有效预约消息的前一次预约消息的录制结束时间之后,也可以用所述有效预约消息替换所述第一预约消息。图3为本申请提供的另一种预约消息为非单次预约模式的PVR预约方法,如图3,所述方法包括:
步骤S301,若检测到在PVR设备启动后收到的第一预约消息已过期,则根据所述预约消息的重复模式确定有效预约消息,所述有效预约消息的预约启动时间晚于当前时间且最接近所述当前时间;
步骤S302,若当前时间在所述有效预约消息的前一次预约消息的录制结束时间之后,用所述有效预约消息替换所述第一预约消息,以对所述有效预约消息进行处理;
步骤S303,否则,用所述有效预约消息的前一次预约消息替换所述第一预约消息,以基于所述当前时间对所述前一次预约消息进行处理后,对所述有效预约消息进行处理。
其中,所述基于所述当前时间对所述前一次预约消息进行处理可以包括:若当前时间在所述前一次预约消息的时间范围以内,启动PVR录制功能执行所述前一次预约消息,否则忽略所述前一次预约消息对应的预约请求。所述前一次预约消息的时间范围可以为录制时间段也可以为有效预约时间段,其中,录制时间段指预约启动时间至录制结束时间之间的时间段,所述有效预约时间段的起始时间等于所述预约启动时间减去预约消息提前发送时长,所述有效预约时间段的结束时间等于所述录制结束时间,若为设定预约消息提前发送时长,则所述有效预约时间段和录制时间段相同。
其中,步骤S201与步骤S101相同。若当前时间在所述有效预约消息的前一次预约消息的录制结束时间之后,也可以用所述有效预约消息替换所述第一预约消息,例如,当前时间为6:00,当前时间的日期为2017-5-10,有效预约消息为录制时间为2017-5-108:00-9:00的预约消息,以该有效预约消息直接替换录制时间为2017-5-1 8:00-9:00的第一预约消息,定时器会在7:58-8:00间发送该2017-5-10的预约消息,并设置下一次预约消息为2017-5-11的预约消息,这样不会产生无效的过期消息,但是若未到有效预约时间段(6:00之后到7:58之前)的时候智能电视或机顶盒等具有PVR功能的设备再次停机或故障,录制时间为2017-5-10 8:00-9:00的预约消息会丢失而不会被发送。但若当前时间为7:59,由于7:59在有效预约时间段以内,则录制时间为2017-5-108:00-9:00的预约消息会马上发送而不会丢失。
又例如,当前时间为23:00,当前时间的日期为2017-5-10,第一预约消息为录制时间为2017-5-1 8:00-9:00的预约消息,则可以计算得到有效预约消息为录制时间为2017-5-11 8:00-9:00的预约消息,那么可以用录制时间为2017-5-11 8:00-9:00的预约消息替换所述第一预约消息,并设置下一次预约消息为2017-5-12的预约消息。定时器判断替换后的第一预约消息(2017-5-11的预约消息)尚未到发送时间,则暂不发送,而在2017-5-11发送。这种情况不会产生无效预约消息。
若录制时间段跨零点,例如当前时间为6:00,当前时间的日期为2017-5-10,第一预约消息为录制时间为2017-5-1 23:00至2017-5-2 1:00的预约消息,则可以计算得到有效预约消息为录制时间为2017-5-10 23:00至2017-5-11 1:00的预约消息,则可以按图1所示方法,用录制时间为2017-5-9 23:00至2017-5-10 1:00的预约消息替换所述第一预约消息,并设置下一次预约消息为录制时间为2017-5-10 23:00至2017-5-11 1:00的预约消息,这种方式下可能会产生一条无效预约消息(即录制时间为2017-5-9 23:00至2017-5-10 1:00的预约消息);也可以按图2所述方法,用录制时间为2017-5-10 23:00至2017-5-11 1:00的预约消息来替换所述第一预约消息,这种方式不会产生无效预约消息。
若所述重复模式非每天录制,例如为隔日录制或者每周的周二、周四和周六录制,那么当前时间与有效预约消息或者当前时间与有效预约消息的前一次预约消息可能是时间相隔很长的。例如:重复模式是周二、周四和周六的8:00-9:00录制,若当前时间为周一的7:00,则有效预约消息为录制时间为周二的8:00-9:00的预约消息,其前一次预约消息为录制时间为上周六的8:00-9:00的预约消息。无论重复模式为何种,具体非单次预约的过期预约消息的处理过程可参见上述重复模式为每天录制时的举例。
本申请实施例所提供的预约消息为非单次预约模式的PVR预约方法,若检测到第一预约消息已过期且非单次预约,则根据重复模式确定有效预约消息,用所述有效预约消息的前一次预约消息替换所述第一预约消息,若当前时间在所述有效预约消息的前一次预约消息的录制结束时间之后,还可以用所述有效预约消息替换所述第一预约消息,所述有效预约消息为预约启动时间在当前时间之后,且距离所述当前时间最近的预约消息。这样可以减少无效预约消息的产生,提高系统性能,避免按键失灵或系统死机。
由于智能电视或机顶盒等PVR设备重启时之前预约的节目名称可能发生了变化,因此定时时间更改后,节目名称也必须同步更新。参见图4,为本申请一种PVR预约方法的另一个实施例的流程示意图,如图4所示,所述方法包括:
步骤S401,若检测到在PVR设备启动后收到的第一预约消息已过期,则根据所述预约消息的重复模式确定有效预约消息,所述有效预约消息的预约启动时间晚于当前时间且最接近所述当前时间;
步骤S402,根据所述第一预约消息得到第一节目名称;
步骤S403,根据所述第一节目名称的节目ID(Identification,身份标识)从电子节目指南EPG中获取最新的第二节目名称;
步骤S404,判断所述第一节目名称与所述第二节目名称是否相同;
步骤S405,若所述第一节目名称与所述第二节目名称不同,用所述第二节目名称替换预约消息中的所述第一节目名称;
步骤S406,用所述有效预约消息的前一次预约消息替换所述第一预约消息,以基于所述当前时间对所述前一次预约消息进行处理后,对所述有效预约消息进行处理。
图3所示实施例与图1所示实施例的区别在于在用所述有效预约消息的前一次预约消息替换所述第一预约消息之前,还更新节目名称,以保证预约消息中节目名称的准确性,避免录制出错。节目名称的更新也可以在用所述有效预约消息的前一次预约消息替换所述第一预约消息之后,且在录制启动之前进行。对一个节目而言,其节目ID是唯一的。用户在设置预约相关信息的时候,可以输入节目名称也可以输入节目ID,若用户输入的是节目名称,在UI将预约相关信息存储在预约记录中时,自动根据节目名称获取唯一的节目ID并将其与节目名称对应。图3中的步骤S302至S305也可以在图2所示实施例的步骤S302之前执行,在用所述有效预约消息替换所述第一预约消息之前更新节目名称。
本申请还提供预约消息为非单次预约模式的PVR预约装置,用于实现本申提供的PVR预约消息为非单次预约模式的PVR预约方法。参见图5,为本申请一种预约消息为非单次预约模式的PVR预约装置的框图,如图5所示,所述装置包括:
U501,有效预约消息确定单元,用于若检测到在PVR设备启动后收到的第一预约消息已过期,则根据所述预约消息的重复模式确定有效预约消息,所述有效预约消息的预约启动时间晚于当前时间且最接近所述当前时间;
U502,替换单元,用于用所述有效预约消息的前一次预约消息替换所述第一预约消息,以基于所述当前时间对所述前一次预约消息进行处理后,对所述有效预约消息进行处理。
其中,所述基于所述当前时间对所述前一次预约消息进行处理可以包括:若当前时间在所述前一次预约消息的时间范围以内,启动PVR录制功能执行所述前一次预约消息,否则忽略所述前一次预约消息对应的预约请求。所述前一次预约消息的时间范围可以为录制时间段也可以为有效预约时间段,其中,录制时间段指预约启动时间至录制结束时间之间的时间段,所述有效预约时间段的起始时间等于所述预约启动时间减去预约消息提前发送时长,所述有效预约时间段的结束时间等于所述录制结束时间,若为设定预约消息提前发送时长,则所述有效预约时间段和录制时间段相同。
其中,所述替换单元也可以用于若当前时间在所述有效预约消息的前一次预约消息的录制结束时间之后,用所述有效预约消息替换所述第一预约消息,以对所述有效预约消息进行处理;否则,用所述有效预约消息的前一次预约消息替换所述第一预约消息,以使得系统基于所述当前时间对所述前一次预约消息进行处理后,对所述有效预约消息进行预约处理。
参见图6,为本申请另一种预约消息为非单次预约模式的PVR预约装置的框图,如图6所示,所述装置包括:
有效预约消息确定单元U601,用于若检测到在PVR设备启动后收到的第一预约消息已过期,则根据所述预约消息的重复模式确定有效预约消息,所述有效预约消息的预约启动时间晚于当前时间且最接近所述当前时间;
节目名称更新单元U602,所述节目名称更新单元,用于:
在用所述有效预约消息的前一次预约消息替换所述第一预约消息之前,根据所述第一预约消息得到第一节目名称;
根据所述第一节目名称的节目ID从电子节目指南EPG中获取最新的第二节目名称;
判断所述第一节目名称与所述第二节目名称是否相同;
若所述第一节目名称与所述第二节目名称不同,用所述第二节目名称替换预约消息中的所述第一节目名称;
替换单元U603,用于用所述有效预约消息的前一次预约消息替换所述第一预约消息,以基于所述当前时间对所述前一次预约消息进行处理后,对所述有效预约消息进行处理。
其中,所述基于所述当前时间对所述前一次预约消息进行处理可以包括:若当前时间在所述前一次预约消息的时间范围以内,启动PVR录制功能执行所述前一次预约消息,否则忽略所述前一次预约消息对应的预约请求。所述前一次预约消息的时间范围可以为录制时间段也可以为有效预约时间段,其中,录制时间段指预约启动时间至录制结束时间之间的时间段,所述有效预约时间段的起始时间等于所述预约启动时间减去预约消息提前发送时长,所述有效预约时间段的结束时间等于所述录制结束时间,若为设定预约消息提前发送时长,则所述有效预约时间段和录制时间段相同。
本申请实施例所提供的预约消息为非单次预约模式的PVR预约装置,若检测到第一预约消息已过期且非单次预约,则根据重复模式确定有效预约消息,所述有效预约消息的预约启动时间晚于当前时间,且所述有效预约消息的预约启动时间最接近所述当前时间,然后用所述有效预约消息的前一次预约消息替换所述第一预约消息,若当前时间在所述有效预约消息的前一次预约消息的录制结束时间之后,还可以用所述有效预约消息替换所述第一预约消息,从而减少无效预约消息的产生,提高系统性能,避免按键失灵或系统死机。
本文中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或终端实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者逆序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素过程、方法或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者装置中还存在另外的相同要素。
以上所述的本申请的实施方式并不构成对本申请保护范围的限定。