技术领域
[0001] 本
发明涉及电视技术领域,特别涉及一种电视信号变化检测的方法。
背景技术
[0002] 电视控制信息状态丰富多样,包括有信号无信号、加密解密、年龄级别
锁定和音频节目等等,当出现以下几种情况:用户搜台后、切换台或通道后、插拔信号线、设定年龄级别、码流播放到加密时段、检测CI状态等,电视系统在解析此时的电视
输入信号时,如捕获到信号状态的变化,电视
软件需要根据变化及时更新当前信号状态,正确显示给用户,然后用户才能很好理解,然后做出应对。
[0003] 对于上述信号状态的变化,传统电视软件的设计对应的做法是:获取到底层的信号变化的事件后,根据事件信息直接更新UI提示。这种方式虽然能及时获取信息,但忽略了几点:
[0004] 第1,电视会出现卡顿情况,比如电视打开的应用过多,或者在搜完上千个台后重新检索一遍全部节目,若电视芯片性能不够,就可能出现内存竞争或者优先级低的
进程被滞后处理,这样滞后的情况下,更新UI时仍然记录的是之前获取到的状态,就会出现信号提示错误的问题;
[0005] 第2,有些信号变化是有过程的,比如切换台或通道,这个过程信号就可能有多个中间状态,可能在更新UI提示的时候状态已经步入到下一状态了,这就让提示不够实时;
[0006] 第3,会有电视信号不稳定或是用户频繁变换信号的情况,如果一检测到信号变化就更新提示,必然会出现屏幕闪烁现象,或概率出现提示遮挡画面的现象,虽然是能合理解释,但明显对用户是不友好的,没有考虑到针对特定情况的处理。
[0007] 因此,目前一般的信号检测处理方法,虽然能及时获取信号变化并更新UI 提示,但是不能保证提示的实时有效性,对于特定情况,也无法避免出现不友好交互,此方法急需优化。
发明内容
[0008] 本发明的目的是克服上述背景技术中不足,提供一种电视信号变化检测的方法,可实现正确地显示当前信号状态并避免监测带来的UI误导、提示闪现等问题。
[0009] 为了达到上述的技术效果,本发明采取以下技术方案:
[0010] 一种电视信号变化检测的方法,具体包含以下步骤:
[0011] A.电视信号的状态改变时,底层向应用层发出事件通知;
[0012] B.应用层接收到底层发出的事件通知,读取事件信息;
[0013] C.通过读取事件信息判断当前电视信号状态是否是有图像状态;若不是则直接进入步骤D,否则等待n秒后进入步骤D;
[0014] D.调用主线程里的updateUI函数,在updateUI函数中,主动获取当前电视信号状态,得到系统反馈的当前电视信号状态a;
[0015] E.判断得到的当前电视信号状态a是否与电视显示状态一致,若不是,则将当前电视信号状态更新至获取电视信号状态a,否则则不更新;
[0016] 在本发明的电 视信号变化检测的方法中,首先通过在更新电视信号状态之前,再进行一次主动获取当前电视信号状态,根据获取到的信息再去实时更新信号提示的操作,一方面避免了不断检测消耗的内存,另一方面避免了不知何时进行状态查询的问题,且在收到事件通知后,如果系统正常,电视软件就能及时顺畅地更新到新状态;如果在电视芯片性能不够前提下,有类似电视打开应用太多或进行耗时操作,导致出现卡顿或是资源占用情况,最终还是会走到更新电视信号状态的动作,此时再主动获取一次状态信息,实时检测更新,保证了信息的准确性,从而很好的规避了对于系统操作或是卡顿导致的更新错误,即解决了UI误导的问题;
[0017] 同时,在解决了UI误导问题的
基础上,本发明的方法中对于当前是有图像的(解MUTE)信号状态,如果检测到信号变化,会进行延时处理,即等待n秒后再进行查询更新,故如果MUTE后画面仍短暂静止在屏幕上,可避免
马上出来无信号提示遮住画面;如果是快速插拔信号线或切换信号,可避免提示闪现,且不影响视觉感受。
[0018] 进一步地,所述步骤A中的电视信号的状态至少包含以下情况:当前电视有无信号、播放码流是否为加密节目、播放码流的级别限制、是否为音频节目、 CI
接口的信号状态。
[0019] 进一步地,所述应用层内设有用于监听底层发出的事件通知的监听器,所述监听器监听到底层发出的事件通知时会响应相应的函数并解析监听到的事件通知中携带的信号状态。
[0020] 进一步地,所述步骤C中若判断当前电视信号状态有图像状态,则等待2 秒后进入步骤D。
[0021] 进一步地,所述步骤D中主动获取当前电视信号状态时具体为:主动调用一次刷新当前信号函数向系统发出获取当前电视信号状态的
请求,则系统收到这个请求后,会更新当前电视信号,并向应用层反馈当前电视信号状态a。
[0022] 本发明与
现有技术相比,具有以下的有益效果:
[0023] 通过本发明的电视信号变化检测的方法可实现正确地显示当前信号状态并避免监测带来的UI误导、提示闪现等问题,从而使电视软件设计合理高效,减少了代码冗余和隐患
风险,使电视信号检测处理实时有效,且有利于更好的帮助用户体验和操作电视,为用户带来更好的使用感。
附图说明
[0024] 图1是本发明的电视信号变化检测的方法的流程示意图。
[0025] 图2是本发明的电视信号变化检测的方法中延时处理有图像状态的信号的流程示意图。
[0026] 图3是本发明的电视信号变化检测的方法中主动获取当前电视信号状态的流程示意图。
具体实施方式
[0027] 下面结合本发明的
实施例对本发明作进一步的阐述和说明。
[0028] 实施例:
[0029] 如图1所示,一种电视信号检测处理的方法,具体包含以下步骤:
[0030] A:电视信号状态改变时,底层post一个事件通知应用层。其中,此过程目前电视软件系统已经成熟,故本实施例中不再具体说明。
[0031] 具体的,步骤A中主要是对当前电视有无信号、播放码流是否为加密节目、播放码流的级别限制、是否为音频节目、CI信息等信号状态进行检测并处理。
[0032] B:应用层接收到底层post上来的事件,读取事件信息。
[0033] 在本实施例中,具体在应用层设置一个监听器ISignalListener一直监听底层传递上来的事件,当监听到事件通知时会响应onSignalStsChange函数,解析此事件中携带的信号状态,并作出判断;
[0034] C:判断当前信号状态是否是有图像状态,即解MUTE状态,若不是则直接进入步骤D,否则等待2秒后进入步骤D;
[0035] 解MUTE有解图像和解声音,本实施例中主要是指解图像状态,且具体的如图2所示,延时2s的具体做法为:利用handler发送一个定时操作 sendMessageDelayed,并设置延时时间为2s,并在handler里面设置获取当前信号状态函数,当2s时间到后,软件就会调用handler里面的处理,然后应用就会获得系统的反馈。
[0036] D:调用主线程里的updateUI函数,在updateUI函数中,主动获取得到反馈的当前电视信号状态a;
[0037] 因为UI的更新必须在主线程中进行处理,且如图3所示,主动获取电视信号状态的具体做法为:主动调用一次刷新当前信号函数,即向系统发出获取当前电视信号状态的请求,当系统收到这个请求后,会更新当前信号并反馈给出一个当前电视信号状态a,应用层直接获取此电视信号状态a。
[0038] E:判断得到的当前电视信号状态a是否与电视显示状态一致,若不是,则将当前电视信号状态更新至获取电视信号状态a,否则不更新。
[0039] 由上可知,本发明的电视信号变化检测的方法可解决如何及时正确地显示当前信号状态,及如何避免监测带来的UI误导、提示闪现的技术问题,其主要在当接收到底层post上来的一个信号变化的事件后,调用更新UI函数,在此函数中,更新动作前需再手动获取一次当前信号状态a,如果状态a与当前电视显示状态一致,则不更新UI,否则将当前电视信号状态更新至状态a。
[0040] 这样底层post事件只是作为一个更新状态的契机,而实际的更新需要软件手动去获取实时信息,得到反馈验证后,正确显示当前信号状态从而避免UI误导。
[0041] 同时,对于如果当前信号是有图像(即解MUTE状态),当收到底层传递事件后,可延长2s处理,这样就避免了提示闪烁和提示可能遮挡画面的情况。
[0042] 本发明的电视信号变化检测的方法通过上述方式,以底层post事件为契机,变被动更新为主动查询更新,能够对电视信号变化实时监控,反馈验证,使软件设计更合理高效,同时也提升了产品的智能性和用户体验感。
[0043] 可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。