发明内容
鉴于上述问题,本发明提供克服上述问题或者至少部分地解决上述问题的一种视频数据动态加载方法、装置、电子设备及存储介质。
为解决上述技术问题,本发明提供了一种视频数据动态加载方法,所述方法包括步骤:
获取用于加载视频数据的视频数据加载指令;
获取预设置的用于计算剩余的所述视频数据的数据量的视频数据剩余量检测规则;
根据所述视频数据剩余量检测规则计算剩余的所述视频数据的视频数据剩余量;
获取预设置的用于管理剩余的所述视频数据的数据切割管理器;
根据所述视频数据剩余量和所述数据切割管理器对剩余的所述视频数据进行动态切割处理并得到动态切割数据;
根据所述视频数据加载指令将所述动态切割数据动态加载。
优选地,所述根据所述视频数据剩余量检测规则计算剩余的所述视频数据的视频数据剩余量包括步骤:
获取所述视频数据剩余量检测规则中的数据过滤器和性能检测器;
使用所述数据过滤器对剩余的所述视频数据进行过滤并得到加载数据;
使用所述性能检测器计算设备内CPU和内存加载所述加载数据的最佳视频数据剩余量;
将所述最佳视频数据剩余量作为所述视频数据的所述视频数据剩余量。
优选地,所述使用所述性能检测器计算设备内CPU和内存加载所述加载数据的最佳视频数据剩余量包括步骤:
获取所述CPU和所述内存的若干消耗量数据采集样本;
从所有所述消耗量数据采集样本中选取一个第一最大值和一个第一最小值;
求取所述第一最大值和第一最小值的平均值并得到第一平均值;
从所有所述加载数据中选取一个第二最大值和一个第二最小值;
求取所述第二最大值和第二最小值的平均值并得到第二平均值;
获取所述设备的可容纳比例;
根据所述第一平均值、所述第二平均值和所述可容纳比例计算所述最佳视频数据剩余量。
优选地,所述最佳视频数据剩余量的表达式为:
其中,Fm表示最佳视频数据剩余量,k1..kn表示所述加载数据,max表示所有所述加载数据的最大值,min表示所有所述加载数据的最小值;cm1..cmn表示所述CPU以及所述内存的消耗量数据采集样本,max表示所有所述消耗量数据采集样本的最大值,min表示所有所述消耗量数据采集样本的最小值,T表示环境常量。
优选地,所述根据所述视频数据剩余量和所述数据切割管理器对剩余的所述视频数据进行动态切割处理并得到动态切割数据包括步骤:
通过所述数据切割管理器定义单例管理者;
通过所述数据切割管理器定义数据切割管理;
启动所述数据切割管理操作;
实时获取所述视频数据的进度时间片;
对所述进度时间片进行时间片比对;
当所述视频数据的播放时间大于等于结束时间时根据当前时间片再次请求弹幕切片协议,将所述当前时间片传入所述视频数据剩余量检测规则并得到所述视频数据剩余量,设置所述播放时间为开始时间,设置所述结束时间为-1;
根据所述视频数据剩余量检测规则返回的切割数据得到所述开始时间至所述结束时间时间段内的最佳显示数据。
优选地,所述对所述进度时间片进行时间片比对包括步骤:
获取弹幕接口协议中对应的时间片的结束时间单位;
比对所述进度时间片的单位是否与所述结束时间单位一致。
优选地,所述对所述进度时间片进行时间片比对包括步骤:
获取Long型的进度条时间片;
将所述进度条时间片与弹幕协议中的时间片进行真值比对。
本发明还提供了一种视频数据动态加载装置,所述装置包括:
视频数据加载指令获取模块,用于获取用于加载视频数据的视频数据加载指令;
视频数据剩余量检测规则获取模块,用于获取预设置的用于计算剩余的所述视频数据的数据量的视频数据剩余量检测规则;
视频数据的视频数据剩余量计算模块,用于根据所述视频数据剩余量检测规则计算剩余的所述视频数据的视频数据剩余量;
数据切割管理器获取模块,用于获取预设置的用于管理剩余的所述视频数据的数据切割管理器;
动态切割处理模块,用于根据所述视频数据剩余量和所述数据切割管理器对剩余的所述视频数据进行动态切割处理并得到动态切割数据;
动态加载模块,用于根据所述视频数据加载指令将所述动态切割数据动态加载。
本发明还提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述中任一所述的视频数据动态加载方法。
本发明还提供了一种存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时能够实现如上述中任一所述的视频数据动态加载方法。
本申请提供的一种视频数据动态加载方法、装置、电子设备及存储介质能够有效解决传统方案中大量数据时视频播放卡顿、UI卡顿和弹幕大量重叠的问题。
具体实施方式
下文将结合具体实施方式和实施例,具体阐述本发明,本发明的优点和各种效果将由此更加清楚地呈现。本领域技术人员应理解,这些具体实施方式和实施例是用于说明本发明,而非限制本发明。
在整个说明书中,除非另有特别说明,本文使用的术语应理解为如本领域中通常所使用的含义。因此,除非另有定义,本文使用的所有技术和科学术语具有与本发明所属领域技术人员的一般理解相同的含义。若存在矛盾,本说明书优先。
除非另有特别说明,本发明中用到的各种原材料、试剂、仪器和设备等,均可通过市场购买得到或者可通过现有方法制备得到。
如图1,在本申请实施例中,本发明提供了一种视频数据动态加载方法,所述方法包括步骤:
S1:获取用于加载视频数据的视频数据加载指令;
在本申请实施例中,具体地,可以通过获取用户的操作而判断用户是否发出了加载视频数据的视频数据加载指令,比如用户点击了“播放视频”按钮,则可以认为是开启了加载视频数据的视频数据加载指令。
S2:获取预设置的用于计算剩余的所述视频数据的数据量的视频数据剩余量检测规则;
在本申请实施例中,具体地,视频数据剩余量检测规则可以由用户自行定义,也可以为根据硬件或者软件的出厂设置而决定,可以根据视频数据剩余量检测规则而计算剩余的视频数据的数据量。具体计算步骤在后续实施例中进一步阐述。
S3:根据所述视频数据剩余量检测规则计算剩余的所述视频数据的视频数据剩余量;
在本申请实施例中,步骤S3中的根据所述视频数据剩余量检测规则计算剩余的所述视频数据的视频数据剩余量包括步骤:
获取所述视频数据剩余量检测规则中的数据过滤器和性能检测器;
使用所述数据过滤器对剩余的所述视频数据进行过滤并得到加载数据;
使用所述性能检测器计算设备内CPU和内存加载所述加载数据的最佳视频数据剩余量;
将所述最佳视频数据剩余量作为所述视频数据的所述视频数据剩余量。
在本申请实施例中,当根据所述视频数据剩余量检测规则计算剩余的所述视频数据的视频数据剩余量时,具体地,首先获取所述视频数据剩余量检测规则中的数据过滤器和性能检测器,数据过滤器可以按照预设标准对数据进行过滤,从而留下符合预设标准的数据,性能检测器可以检测视频播放设备的性能。然后使用所述数据过滤器对剩余的所述视频数据进行过滤并得到加载数据,同时使用所述性能检测器计算设备内CPU和内存加载所述加载数据的最佳视频数据剩余量,最后将所述最佳视频数据剩余量作为所述视频数据的所述视频数据剩余量。
本申请提供的一种视频数据动态加载方法通过使用数据过滤器对剩余的视频数据进行过滤并得到加载数据,可以得到符合预设标准的加载数据,此时只需要播放这些加载数据即可;通过性能检测器计算设备内CPU和内存加载所述加载数据的最佳视频数据剩余量,可以得到当前设备内CPU和内存所能承载的最佳视频数据剩余量,然后将此最佳视频数据剩余量作为视频数据的所述视频数据剩余量。此步骤一方面可以对剩余视频数据进行筛选,去掉不符合预设标准的视频数据,同时还可以实时检测设备性能,防止设备因为过载而损坏宕机等,提高设备安全性能。
在本申请实施例中,视频数据剩余量检测规则定义方法如下:
fun checkQuality(filter:XFilter,nature:Nature):Int
具体地,在上述定义中,filter表示过滤器,可以理解为过滤规则,规则由外部传入,也就是可以自由定义数据过滤规则;nature表示性能检测器,可以理解为当前设备的硬件性能检测方式,一般由系统定义,也可以通过人为参数控制来定义;由上述的2个值得到一个数据的显示量Int值,根据该值设定显示到屏幕上的数据量。使用此定义可以根据硬件环境和人为控制而灵活调整数据显示数量,灵活度高。
该规则返回的是一个Int型的剩余量值,余量值按照下面的规则定义返回:
余量值定义注释已描述,可根据余量值去控制视频数据动态加载到在surfaceView上,动态控制数据加载具体实现如下:
具体地,在动态控制数据加载显示时,会根据showMode的值在数据展示的时候根据人为操作来改变其值,然后通过不同的值显示不同的数据比例,根据人为操作来改变数据显示比例可以增强对数据显示的控制。使用此定义可以根据人为控制而灵活调整数据显示数量,灵活度高。
在本申请实施例中,本申请提供的一种视频数据动态加载方法通过控制一个标志位showFlag,并采用动态取反的方式,可以有效地在新老方式中动态切换,以保证线上容错率。
在本申请实施例中,所述使用所述性能检测器计算设备内CPU和内存加载所述加载数据的最佳视频数据剩余量包括步骤:
获取所述CPU和所述内存的若干消耗量数据采集样本;
从所有所述消耗量数据采集样本中选取一个第一最大值和一个第一最小值;
求取所述第一最大值和第一最小值的平均值并得到第一平均值;
从所有所述加载数据中选取一个第二最大值和一个第二最小值;
求取所述第二最大值和第二最小值的平均值并得到第二平均值;
获取所述设备的可容纳比例;
根据所述第一平均值、所述第二平均值和所述可容纳比例计算所述最佳视频数据剩余量。
在本申请实施例中,当使用所述性能检测器计算设备内CPU和内存加载所述加载数据的最佳视频数据剩余量时,具体地,首先获取所述CPU和所述内存的若干消耗量数据采集样本,然后从所有所述消耗量数据采集样本中选取一个第一最大值和一个第一最小值,并求取所述第一最大值和第一最小值的平均值并得到第一平均值,此第一平均值可视为CPU和内存的消耗量数据平均值;然后从所有所述加载数据中选取一个第二最大值和一个第二最小值,并求取所述第二最大值和第二最小值的平均值并得到第二平均值,此第二平均值可视为加载数据平均值;接着获取所述设备的可容纳比例,可容纳比例为设备对预设数量的加载数据所能承担播放的消耗量数据的数量的比值,对设备来说为恒定值;最后根据所述第一平均值、所述第二平均值和所述可容纳比例计算所述最佳视频数据剩余量。
具体地,当使用所述性能检测器计算设备内CPU和内存加载所述加载数据的最佳视频数据剩余量时,通过对加载数据和内存的消耗量数据采集样本多次取样取其平均值,从而减少因硬件环境运行波动导致的出错率。
在本申请实施例中,视频数据剩余量检测规则checkQuality()有2个入参,第一个是数据过滤器XFilter,数据过滤器可以由外部动态传入,这样做的好处是可以自由定义过滤规则,可以适应各种不同类型的业务场景,同时可以解决在使用过程中动态风险控制,保证了上线后也能有效的降低故障。第二个是性能检测器Nature,为了保证数据动态加载到视频上的稳定性和流畅性,需要判断当前数据加载时设备中CPU和内存的消耗是否过大。可以通过Android系统的AMS来实时检测CPU与内存消耗量,再通过一组比例计算公式来判断当前性能消耗比值,从而得到一个最佳视频数据剩余量。
在本申请实施例中,所述最佳视频数据剩余量的表达式为:
其中,Fm表示最佳视频数据剩余量,k1..kn表示所述加载数据,max表示所有所述加载数据的最大值,min表示所有所述加载数据的最小值;cm1..cmn表示所述CPU以及所述内存的消耗量数据采集样本,max表示所有所述消耗量数据采集样本的最大值,min表示所有所述消耗量数据采集样本的最小值,T表示环境常量。
在本申请实施例中,T表示环境常量,不同机型下具有不同的数据比例,取值为浮点数0-1。最佳视频数据剩余量的表达式的原理是取多次CPU和内存消耗量数据采集样本,从中得到一个最大值和一个最小值,取它们的平均值,同时取多种类型的加载数据,并取最大值和最小值的平均值,2个平均值按照比例相乘再乘以当前机型下的可容纳比例即得到最后的最佳剩余数据量。
经过上述公式得出比例表格如下:
CPU内存消耗 |
数据量 |
最佳剩余量 |
0% |
NONE |
无 |
13% |
LOWER |
100~150 |
50% |
NORMAL |
300~450 |
60%-85% |
HIGH |
600+ |
具体地,当使用所述性能检测器计算设备内CPU和内存加载所述加载数据的最佳视频数据剩余量时,通过最佳视频数据剩余量的表达式可以对加载数据和内存的消耗量数据采集样本多次取样并求取其平均值,从而减少因硬件环境运行波动导致的出错率。
本申请提供的一种视频数据动态加载方法通过计算CPU和内存的消耗量数据平均值和计算加载数据平均值,并根据设备的可容纳比例来选择播放视频数据的最佳视频数据剩余量,此最佳视频数据剩余量不会给设备带来过载的危险,极大地提高了设备的运行安全。
S4:获取预设置的用于管理剩余的所述视频数据的数据切割管理器;
在本申请实施例中,具体地,数据切割管理器可以由用户自行定义,也可以为硬件或者软件的出厂设置而决定,可以根据数据切割管理器而管理剩余的视频数据。数据切割管理器的具体管理步骤在后续实施例中进一步阐述。
S5:根据所述视频数据剩余量和所述数据切割管理器对剩余的所述视频数据进行动态切割处理并得到动态切割数据;
在本申请实施例中,步骤S5中的根据所述视频数据剩余量和所述数据切割管理器对剩余的所述视频数据进行动态切割处理并得到动态切割数据包括步骤:
通过所述数据切割管理器定义单例管理者;
通过所述数据切割管理器定义数据切割管理;
启动所述数据切割管理操作;
实时获取所述视频数据的进度时间片;
对所述进度时间片进行时间片比对;
当所述视频数据的播放时间大于等于结束时间时根据当前时间片再次请求弹幕切片协议,将所述当前时间片传入所述视频数据剩余量检测规则并得到所述视频数据剩余量,设置所述播放时间为开始时间,设置所述结束时间为-1;
根据所述视频数据剩余量检测规则返回的切割数据得到所述开始时间至所述结束时间时间段内的最佳显示数据。
在本申请实施例中,当根据所述视频数据剩余量和所述数据切割管理器对剩余的所述视频数据进行动态切割处理并得到动态切割数据时,具体地,首先通过所述数据切割管理器定义单例管理者,然后通过所述数据切割管理器定义数据切割管理,接着启动所述数据切割管理操作,并实时获取所述视频数据的进度时间片,然后对所述进度时间片进行时间片比对,接着当所述视频数据的播放时间大于等于结束时间时根据当前时间片再次请求弹幕切片协议,将所述当前时间片传入所述视频数据剩余量检测规则并得到所述视频数据剩余量,设置所述播放时间为开始时间,设置所述结束时间为-1;最后根据所述视频数据剩余量检测规则返回的切割数据得到所述开始时间至所述结束时间时间段内的最佳显示数据。
本申请提供的一种视频数据动态加载方法通过数据切割管理器定义单例管理者和数据切割管理,可以规范和统一数据切割操作,降低由于数据切割随意性而带来的标准不统一而产生的问题。
在本申请实施例中,当有了具体的数据过滤器时,接下来可以根据算法对数据做动态切割了,具体的切割方式如下:
首先通过容器管理定义一个单例管理者,具体如下:
该管理者的名称是InitHolderManager,它包含了一个初始化方法onInit(),该方法的作用是在数据处理之前做好逻辑控制器的初始化,以保证后续实现能有效进行。
接下来定义具体的数据切割管理,实现如下:
上方协议中VodDanmuSliceManager继承了MZBaseManager,这样做的用处是MZBaseManager带有Activity的生命周期函数,通过继它可以有效的hook到onActivityCreate函数,从而在Activity启动之前获取到配置文件,保证了视频首帧加载时就能显示弹幕数据。
具体地,数据切割管理器中的onRequestStart()函数用于监听到视频首帧加载,从而依据协议时间切片开始显示弹幕数据;数据切割管理器中的onSeekComplete()函数属于播放器手势操作桥接函数,用来处理用户手动操作视频时,动态切换数据展示;数据切割管理器中的seekSliceDanmu()函数用于更新缓存容器中的内存数据;数据切割管理器中的requestSliceDanmu()用于获取弹幕接口协议中下一个时间片,时间片取值为endTime,记录并缓存到SliceBean中。
当得到最佳视频数据剩余量和数据切割管理器之后,接下来通过最佳视频数据剩余量的值来对数据进行时间比切割,具体切割方式如下:首先要监听播放器返回的视频进度,同时保证客户端能实时获取到进度时间片,并做时间片比对。当有了监听器与切片时间做为基准数据,当视频播放时,调用seekSliceDanmu函数实时监听视频进度,等到onSeek回调中的playTime与接口返回的endTime相等或大于endTime时,根据当前时间片再次请求弹幕切片协议,传入checkQuality协议得到Fm值,传值startTime当前时间片,即playTime,传值endTime为-1,这里传值-1的好处是,保证了对与弹幕协议的兼容性处理。最后根据协议返回的SliceData得到startTime-endTime时间段内的最佳显示数据,通过surface渲染,即完成了视频数据实时动态展示。
在本申请实施例中,所述对所述进度时间片进行时间片比对包括步骤:
获取弹幕接口协议中对应的时间片的结束时间单位;
比对所述进度时间片的单位是否与所述结束时间单位一致。
在本申请实施例中,当对所述进度时间片进行时间片比对时,首先获取弹幕接口协议中对应的时间片的结束时间单位,然后比对所述进度时间片的单位是否与所述结束时间单位一致。具体地,此方法实现函数为:override fun onSeek(playTime:Long?),该函数返回的时间片单位是毫秒,与弹幕接口协议中对应的时间片end_time单位保持一致,以毫秒来控制的好处是,可以减小时间粒度,降低单次秒级内数据丢失率。
本申请提供的一种视频数据动态加载方法通过比对进度时间片的单位是否与结束时间单位一致来对进度时间片进行时间片比对,可以提高时间片比对在进度时间片时间上的准确率,降低由于进度时间片的单位与结束时间单位不一致而带来的误判断操作,提高判断准确性。
在本申请实施例中,所述对所述进度时间片进行时间片比对包括步骤:
获取Long型的进度条时间片;
将所述进度条时间片与弹幕协议中的时间片进行真值比对。
在本申请实施例中,当对所述进度时间片进行时间片比对时,首先获取Long型的进度条时间片,然后将所述进度条时间片与弹幕协议中的时间片进行真值比对。具体地,具体地,此方法实现函数为:fun seekSliceDanmu(currentPlayTime:Long,isSeek:Boolean),该方法的参数是Long型的进度条时间片currentPlayTime,作用是比对弹幕协议中的时间片并进行Boolean型的进度操作,作用是监听用户操作行为,该方法主要用于裁剪视频弹幕数据。
本申请提供的一种视频数据动态加载方法通过将所述进度条时间片与弹幕协议中的时间片进行真值比对来对进度时间片进行时间片比对,可以提高时间片比对在进度时间片类型上的准确率,降低由于进度时间片的类型与弹幕协议中的时间片的类型不一致而带来的误判断操作,提高判断准确性。
S6:根据所述视频数据加载指令将所述动态切割数据动态加载。
在本申请实施例中,具体地,可以通过获取用户的操作而判断用户是否发出了加载视频数据的视频数据加载指令,比如用户点击了“播放视频”按钮,则可以认为是开启了加载视频数据的视频数据加载指令。当开启视频数据加载指令后,软件或者硬件将步骤S5中的动态切割数据结果动态加载即可。
具体而言,当使用本申请提供的一种视频数据动态加载方法进行视频数据动态加载时,可以首先获取用于加载视频数据的视频数据加载指令,然后获取预设置的用于计算剩余的所述视频数据的数据量的视频数据剩余量检测规则,根据所述视频数据剩余量检测规则可以计算剩余的所述视频数据的视频数据剩余量,然后获取预设置的用于管理剩余的所述视频数据的数据切割管理器,并根据所述视频数据剩余量和所述数据切割管理器对剩余的所述视频数据进行动态切割处理并得到动态切割数据,最后根据所述视频数据加载指令将所述动态切割数据动态加载。
本申请提供的一种视频数据动态加载方法不需要一次性加载所有的视频数据,只需要动态地加载剩余视频数据中部分的动态切割数据,视频加载量大大降低,最终使得能够有效解决传统方案中大量数据时视频播放卡顿、UI卡顿和弹幕大量重叠的问题。
如图2,在本申请实施例中,本发明还提供了一种视频数据动态加载装置,所述装置包括:
视频数据加载指令获取模块10,用于获取用于加载视频数据的视频数据加载指令;
视频数据剩余量检测规则获取模块20,用于获取预设置的用于计算剩余的所述视频数据的数据量的视频数据剩余量检测规则;
视频数据的视频数据剩余量计算模块30,用于根据所述视频数据剩余量检测规则计算剩余的所述视频数据的视频数据剩余量;
数据切割管理器获取模块40,用于获取预设置的用于管理剩余的所述视频数据的数据切割管理器;
动态切割处理模块50,用于根据所述视频数据剩余量和所述数据切割管理器对剩余的所述视频数据进行动态切割处理并得到动态切割数据;
动态加载模块60,用于根据所述视频数据加载指令将所述动态切割数据动态加载。
本申请提供的一种视频数据动态加载装置可以执行上述所述的一种视频数据动态加载方法。
下面参考图3,其示出了适于用来实现本公开实施例的电子设备100的结构示意图,所述电子设备100能够实现如上述中任一所述的视频数据动态加载方法。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图3示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图3所示,电子设备100可以包括处理装置(例如中央处理器、图形处理器等)101,其可以根据存储在只读存储器(ROM)102中的程序或者从存储装置108加载到随机访问存储器(RAM)103中的程序而执行各种适当的动作和处理。在RAM 103中,还存储有电子设备100操作所需的各种程序和数据。处理装置101、ROM 102以及RAM 103通过总线104彼此相连。输入/输出(I/O)接口105也连接至总线104。
通常,以下系统可以连接至I/O接口105:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置106;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置107;包括例如磁带、硬盘等的存储装置108;以及通信装置1010。通信装置1010可以允许电子设备100与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种装置的电子设备100,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1010从网络上被下载和安装,或者从存储装置108被安装,或者从ROM 102被安装。在该计算机程序被处理装置101执行时,执行本公开实施例的方法中限定的上述功能。
下面参考图4,其示出了适于用来实现本公开实施例的计算机可读存储介质的结构示意图,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时能够实现如上述中任一所述的视频数据动态加载方法。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的装置、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行装置、系统或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行装置、系统或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取至少两个网际协议地址;向节点评价设备发送包括所述至少两个网际协议地址的节点评价请求,其中,所述节点评价设备从所述至少两个网际协议地址中,选取网际协议地址并返回;接收所述节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。
或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从所述至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;其中,接收到的网际协议地址指示内容分发网络中的边缘节点。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、步骤Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。
本申请提供的一种视频数据动态加载方法、装置、电子设备及存储介质能够有效解决传统方案中大量数据时视频播放卡顿、UI卡顿和弹幕大量重叠的问题。
最后,还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。本申请中的“第一”、“第二”可以理解为名词。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。