播放器状态跟踪方法、存储介质、设备及系统与流程

文档序号:16520186发布日期:2019-01-05 09:54阅读:172来源:国知局
播放器状态跟踪方法、存储介质、设备及系统与流程

本发明涉及互联网移动端应用开发领域,具体涉及一种播放器状态跟踪方法、存储介质、设备及系统。



背景技术:

随着科学技术的发展,智能移动设备的功能也越发多样,导致越来越多的年轻人喜欢通过观看直播的方式来打发自己的空余时间,丰富自己的业余生活,进而也促进了直播行业的蓬勃发展。

用户在使用智能移动设备进行直播观看,实现该过程最主要的技术便是拉流,拉流即为下载服务器的视频流到本地智能移动设备的直播客户端中,然后进行播放,再整个过程中播放器显得尤为重要。播放器通常由多种语言和代码开发完成,在使用的过程中不可避免的会出现一些概率性的问题,如播放卡顿、内存突增、播放器闪退等,而当前缺少有效的手段对播放器故障进行跟踪,导致后续无法对播放器故障问题进行排查。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种播放器状态跟踪方法,能够有效了解播放器的状态,完成播放器的状态分析。

为达到以上目的,本发明采取的技术方案是,包括:

创建定时器,并设定间隔时间;

在定时器的设定间隔时间内,周期性判断播放器是否拉取服务器视频流成功,以及的cdn流量的字符串是否存在:

当播放器拉取服务器视频流成功,且cdn流量的字符串存在,获取播放器视频播放数据信息;

将获取的播放器视频播放数据信息发送至服务器。

在上述技术方案的基础上,

所述播放器位于直播客户端中;

所述直播客户端运行于智能移动设备中。

在上述技术方案的基础上,所述播放器视频播放数据信息包括视频流类型和播放器所在客户端类型。

在上述技术方案的基础上,当播放器拉取服务器视频流成功,且cdn流量的字符串存在时,进行播放器id和直播客户端当前所登录用户id的获取。

在上述技术方案的基础上,当获取了播放器视频播放数据信息、播放器id和直播客户端当前所登录用户id后,将获取的播放器视频播放数据信息、播放器id和直播客户端当前所登录用户id进行一一对应,然后发送至服务器。

在上述技术方案的基础上,所述获取播放器视频播放数据信息,具体步骤为:

获取直播客户端中播放器的实例,得到直播客户端中正在播放的播放器,进行播放器视频播放数据信息的获取。

在上述技术方案的基础上,所述创建的定时器为nstimer类型的定时器。

本发明还提供一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

创建定时器,并设定间隔时间;

在定时器的设定间隔时间内,周期性判断播放器是否拉取服务器视频流成功,以及的cdn流量的字符串是否存在:

当播放器拉取服务器视频流成功,且cdn流量的字符串存在,获取播放器视频播放数据信息;

将获取的播放器视频播放数据信息发送至服务器。

在上述技术方案的基础上,

所述播放器位于直播客户端中;

所述直播客户端运行于智能移动设备中。

在上述技术方案的基础上,所述播放器视频播放数据信息包括视频流类型和播放器所在客户端类型。

在上述技术方案的基础上,当播放器拉取服务器视频流成功,且cdn流量的字符串存在时,进行播放器id和直播客户端当前所登录用户id的获取。

在上述技术方案的基础上,当获取了播放器视频播放数据信息、播放器id和直播客户端当前所登录用户id后,将获取的播放器视频播放数据信息、播放器id和直播客户端当前所登录用户id进行一一对应,然后发送至服务器。

本发明还提供一种终端设备,所述终端设备包括:

创建单元,其用于创建定时器,并设定间隔时间;

判断单元,其用于在定时器的设定间隔时间内,周期性判断播放器是否拉取服务器视频流成功,以及的cdn流量的字符串是否存在:

获取单元,其用于当播放器拉取服务器视频流成功,且cdn流量的字符串存在,获取播放器视频播放数据信息;

数据传输单元,其用于将获取的播放器视频播放数据信息发送至服务器。

在上述技术方案的基础上,

所述播放器位于直播客户端中;

所述直播客户端运行于智能移动设备中。

在上述技术方案的基础上,所述播放器视频播放数据信息包括视频流类型和播放器所在客户端类型。

在上述技术方案的基础上,当播放器拉取服务器视频流成功,且cdn流量的字符串存在时,进行播放器id和直播客户端当前所登录用户id的获取。

在上述技术方案的基础上,当获取了播放器视频播放数据信息、播放器id和直播客户端当前所登录用户id后,将获取的播放器视频播放数据信息、播放器id和直播客户端当前所登录用户id进行一一对应,然后发送至服务器。

本发明还提供一种播放器状态跟踪系统,包括:

创建模块,其用于创建定时器,并设定间隔时间;

判断模块,其用于在定时器的设定间隔时间内,周期性判断播放器是否拉取服务器视频流成功,以及的cdn流量的字符串是否存在:

获取模块,其用于当播放器拉取服务器视频流成功,且cdn流量的字符串存在,获取播放器视频播放数据信息;

数据传输模块,其用于将获取的播放器视频播放数据信息发送至服务器。

在上述技术方案的基础上,

所述播放器位于直播客户端中;

所述直播客户端运行于智能移动设备中;

所述播放器视频播放数据信息包括视频流类型和播放器所在客户端类型。

在上述技术方案的基础上,所述获取模块还用于获取播放器id和直播客户端当前所登录用户id。

与现有技术相比,本发明的优点在于:通过创建定时器,在定时器的设定间隔时间内,周期性进行播放器相关状态信息的获取,然后将获取的数据信心发送至服务器,服务器则可以对上报的信息进行统计,了解播放器的状态,完成播放器的状态分析,以便于后续开发人员对直播服务器的故障问题的排查以及对直播服务器的维护,同时本发明的服务器状态跟踪方法中加入了状态判断,当播放器拉取服务器视频流成功,且cdn流量的字符串存在,获取播放器视频播放数据信息,有效避免一些无效数据的上报,提升直播客户端性能,同时减少智能移动设备的内存占用。

附图说明

图1为本发明实施例中一种播放器状态跟踪方法的流程图;

图2为本发明实施例中一种终端设备的结构示意图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

参见图1所示,本发明实施例提供一种播放器状态跟踪方法,用于对ios系统中直播客户端的播放器状态进行获取。本发明实施例的播放器状态跟踪方法,具体包括以下步骤:

s1:创建定时器,并设定间隔时间。当用户使用直播客户端进行直播观看时,从直播列表页进入直播间,进行直播的观看,此时进行定时器的创建。当进入直播间后,会调用viewdidload方法,viewdidload方法用于进行操作的初始化,且在新的任务加载情况下也会被使用。具体的在viewdidload方法内通过方法startstreamreporttimer进行定时器的创建。方法startstreamreporttimer用于创建定时器变量streamreporttimer,对于定时器的创建,具体过程为:

s101:定义一个nstimer类型的定时器,该定时器的变量为streamreporttimer,变量streamreporttimer的属性为原子属性,原子属性用于表示线程安全,是针对多线程进行设计,且该变量为强引用类型。nstimer是ios系统中一种常用的定时器工具。

s102:当使用变量streamreporttimer,相当于创建了一个定时器对象,创建的定时器对象即为定时器变量streamreporttimer,拿到变量streamreporttimer之后执行invalidate操作,invalidate操作是指取消定时器,即让一个定时器停止定时功能。

s103:取消定时器之后,再将定时器对象streamreporttimer设为nil,设为将nil表示将定时器对象streamreporttimer从内存中清除。

s104:重新创建一个定时器,引用该定时器的还是变量streamreporttimer,即此时变量streamreporttimer所在的内存指针指向的是新创建的定时器。

对于该新创建的定时器,创建方法如下:

使用弱引用定时器类hwweaktimer,hwweaktimer常用于防止nstimer的强引用引起的内存泄露,然后调用用于创建定时器的方法scheduledtimerwithtimeinterval,该用于创建定时器的方法中含有5个参数,分别为:参数1,这个参数代表设置定时器多长时间动作一次,一般设置为60秒动作一次;参数2,target,target表示目标,target的目标对象是self(自己),对象self表示监听这个定时器动作的对象是当前的控制器;参数3,定时器动作的回调是selector(选择器),这个selector的回调是定时器每次动作的时候需要执行的函数,执行的函数为streamreport,streamreport表示重复执行,即streamreport会每间隔60秒回动作一次;其他3个参数分别为userinfo,repeats,inmodel,此处无具体的意义,使用默认参数即可,userinfo表示用户信息,repeats表示重复执行次数。

至此,便创建了定时器,同时完成了定时器间隔时间的设定,对于定时器的间隔时间一般设为60秒。

s2:在定时器的设定间隔时间内,周期性判断播放器是否拉取服务器视频流成功,以及的cdn(contentdeliverynetwork,内容分发网络)流量的字符串是否存在。定时器每隔60秒动作一次,每次动作的时候会调用函数streamreport,当函数streamreport被调用的时候,便会进行播放器是否拉取服务器视频流成功、以及的cdn流量的字符串是否存在的判断,函数streamreport用于表示重复执行,即当每次函数streamreport被调用的时候,均会进行播放器是否拉取服务器视频流成功、以及客户端中cdn流量的字符串是否存在的判断,当视频流拉取成功,才进行跟踪上报播放器的一些信息,这样可以减少不必要的上报,提高直播客户端性能,同时节约流量,同时cdn流量的字符串存在,说明cdn线路获取成功,cdn线路获取成功才进行播放器信息的上报。对于播放器是否拉取服务器视频流成功的判断,当客户端获取了服务器发送的视频流地址,且客户端开始接收服务器发送的视频流数据,且客户端的播放器已开始使用接收的服务器发送的视频流数据进行视频的播放,则表明播放器拉取服务器视频流成功。对于客户端中cdn流量的字符串是否存在的判断,对于客户端获取的视频流进行判断,若获取的视频流为不同的节点服务器所发送,则表明当前视频流的获取是使用内容分发网络的,则此时表明客户端已获取到cdn流量,则cdn流量的字符串必然存在于客户端中。

播放器位于直播客户端中,直播客户端运行于智能移动设备中。

s3:当播放器拉取服务器视频流成功,且cdn流量的字符串存在,获取播放器视频播放数据信息。播放器视频播放数据信息包括视频流类型和播放器所在客户端类型,视频流类型为视频流对应视频的格式,客户端类型为播放器所在直播客户端的版本号。当播放器拉取服务器视频流成功,且cdn流量的字符串存在时,还用于获取播放器id和直播客户端当前所登录用户id。

对于播放器视频播放数据信息的获取:获取直播客户端中播放器的实例,然后获取正在播放的播放器,进行播放器视频播放数据信息的获取。具体为:

拿到播放器的单例,这个播放器的单例是dyijkplayermanager,dyijkplayermanager用于表示客户端中的播放器,对于播放器单例的获取具体通过shareinstant方法进行播放器单例的拿取,shareinstant方法用户进行调用和获取,客户端中的播放器可能有多个,故需要通过operationplayerby方法拿到当前正在进行的播放器,该播放器为ijkplayer,ijkplayer即表示当前正在播放的播放器,若拿到的ijkplayer播放器存在,则通过一个c语言的函数拿到播放器的基本信息,这个播放器的基本信息为ijkmedia_player_qos_info,拿到这个信息之后使用强制转换的方法,将ijkmedia_player_qos_info转换为播放器的状态qosinfo,ijkmedia_player_qos_info在ios系统中表示播放器的播放相关信息,如支持格式等,拿到播放器的状态qosinfo之后,在这个播放器的状态qosinfo中取出播放器的结果,结果用result表示,若result为0,则说明播放器的播放状态是成功的,如果成功则将播放器的状态qosinfo构造为一个item,这个item就是dyeventtrackijkinfoitem,item表示一个模型,该模型里面包含有播放器相关的一些关键信息,如视频流类型、播放器所在客户端类型、播放器id和直播客户端当前所登录用户id等。

s4:将获取的播放器视频播放数据信息发送至服务器。具体的,当获取了播放器视频播放数据信息、播放器id和直播客户端当前所登录用户id后,将获取的播放器视频播放数据信息、播放器id和直播客户端当前所登录用户id进行一一对应,然后发送至服务器。服务器则可以对上报的信息进行统计,了解播放器的状态,完成播放器的状态分析。

通过定时器的设置,相当于创建了一个心跳机制,在定时器的定时周期内,即保证心跳每隔一段时间动作一次,间隔性的将播放器的数据上报至服务器,完成服务器对于客户端中播放器数据的采集,间隔的机制也能保证数据的重复上报,减少数据上报时对网络通道的过多占用。

本发明实施例的播放器状态跟踪方法,通过创建定时器,在定时器的设定间隔时间内,周期性进行播放器相关状态信息的获取,然后将获取的数据信心发送至服务器,服务器则可以对上报的信息进行统计,了解播放器的状态,完成播放器的状态分析,以便于后续开发人员对直播服务器的故障问题的排查以及对直播服务器的维护,同时本发明的服务器状态跟踪方法中加入了状态判断,当播放器拉取服务器视频流成功,且cdn流量的字符串存在,获取播放器视频播放数据信息,有效避免一些无效数据的上报,提升直播客户端性能,同时减少智能移动设备的内存占用。

本发明实施例还提供一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

创建定时器,并设定间隔时间;

在定时器的设定间隔时间内,周期性判断播放器是否拉取服务器视频流成功,以及的cdn流量的字符串是否存在:

当播放器拉取服务器视频流成功,且cdn流量的字符串存在,获取播放器视频播放数据信息;

将获取的播放器视频播放数据信息发送至服务器。

所述播放器位于直播客户端中;所述直播客户端运行于智能移动设备中。所述播放器视频播放数据信息包括视频流类型和播放器所在客户端类型。当播放器拉取服务器视频流成功,且cdn流量的字符串存在时,进行播放器id和直播客户端当前所登录用户id的获取。获取了播放器视频播放数据信息、播放器id和直播客户端当前所登录用户id后,将获取的播放器视频播放数据信息、播放器id和直播客户端当前所登录用户id进行一一对应,然后发送至服务器。

参见图2所示,本发明实施例还提供一种终端设备,所述终端设备包括创建单元501、判断单元502、获取单元503和数据传输单元504。

创建单元501用于创建定时器,并设定间隔时间;判断单元502用于在定时器的设定间隔时间内,周期性判断播放器是否拉取服务器视频流成功,以及的cdn流量的字符串是否存在:获取单元503用于当播放器拉取服务器视频流成功,且cdn流量的字符串存在,获取播放器视频播放数据信息;数据传输单元504用于将获取的播放器视频播放数据信息发送至服务器。

所述播放器位于直播客户端中;所述直播客户端运行于智能移动设备中。所述播放器视频播放数据信息包括视频流类型和播放器所在客户端类型。当播放器拉取服务器视频流成功,且cdn流量的字符串存在时,进行播放器id和直播客户端当前所登录用户id的获取。获取了播放器视频播放数据信息、播放器id和直播客户端当前所登录用户id后,将获取的播放器视频播放数据信息、播放器id和直播客户端当前所登录用户id进行一一对应,然后发送至服务器。

本发明实施例的电子设备,通过创建定时器,在定时器的设定间隔时间内,周期性进行播放器相关状态信息的获取,然后将获取的数据信心发送至服务器,服务器则可以对上报的信息进行统计,了解播放器的状态,完成播放器的状态分析,以便于后续开发人员对直播服务器的故障问题的排查以及对直播服务器的维护,同时本发明的服务器状态跟踪方法中加入了状态判断,当播放器拉取服务器视频流成功,且cdn流量的字符串存在,获取播放器视频播放数据信息,有效避免一些无效数据的上报,提升直播客户端性能,同时减少智能移动设备的内存占用

本发明实施例还提供一种播放器状态跟踪系统,包括创建模块、判断模块、获取模块和数据传输模块。

创建模块用于创建定时器,并设定间隔时间;判断模块用于在定时器的设定间隔时间内,周期性判断播放器是否拉取服务器视频流成功,以及的cdn流量的字符串是否存在:获取模块用于当播放器拉取服务器视频流成功,且cdn流量的字符串存在,获取播放器视频播放数据信息;数据传输模块用于将获取的播放器视频播放数据信息发送至服务器。

播放器位于直播客户端中,直播客户端运行于智能移动设备中。播放器视频播放数据信息包括视频流类型和播放器所在客户端类型。所述获取模块还用于获取播放器id和直播客户端当前所登录用户id。

本发明实施例的播放器状态跟踪系统,通过创建定时器,在定时器的设定间隔时间内,周期性进行播放器相关状态信息的获取,然后将获取的数据信心发送至服务器,服务器则可以对上报的信息进行统计,了解播放器的状态,完成播放器的状态分析,以便于后续开发人员对直播服务器的故障问题的排查以及对直播服务器的维护,同时本发明的服务器状态跟踪方法中加入了状态判断,当播放器拉取服务器视频流成功,且cdn流量的字符串存在,获取播放器视频播放数据信息,有效避免一些无效数据的上报,提升直播客户端性能,同时减少智能移动设备的内存占用。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1