CN114491096A - 一种多媒体预加载方法、装置、设备及存储介质 - Google Patents
一种多媒体预加载方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114491096A CN114491096A CN202011270354.XA CN202011270354A CN114491096A CN 114491096 A CN114491096 A CN 114491096A CN 202011270354 A CN202011270354 A CN 202011270354A CN 114491096 A CN114491096 A CN 114491096A
- Authority
- CN
- China
- Prior art keywords
- multimedia
- file
- multimedia file
- played
- preloading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/43—Querying
- G06F16/438—Presentation of query results
- G06F16/4387—Presentation of query results by the use of playlists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提出一种多媒体预加载方法、装置、设备及存储介质,该方法包括:根据播放列表中正在播放的多媒体文件和未播放的多媒体文件,生成预加载;实时监测用户对播放列表施加的操作动作;根据操作动作和播放列表,预测下一个被播放的多媒体文件;根据预测的多媒体文件,调整预加载队列。本申请依据用户的操作动作,预测用户想要播放的多媒体文件。根据预测结果调整预加载队列,能使预加载的多媒体文件更符合用户需求,精确缓存用户想播放的多媒体文件,减少系统资源浪费,很好地平衡了预加载的准确性和系统资源的消耗,缩短了用户播放多媒体文件的等待时间。
Description
技术领域
本申请属于多媒体播放技术领域,具体涉及一种多媒体预加载方法、装置、设备及存储介质。
背景技术
随着网络技术的发展和终端设备智能化程度的提高,越来越多用户选择利用终端设备上运行的应用程序来观看音频或视频等多媒体文件。为了缩短用户从当前播放的多媒体文件切换到另一个多媒体文件的等待时间,需要对当前未播放的多媒体文件进行预加载。
目前,相关技术中提供了一种多媒体预加载方案,从播放列表中确定排在当前播放的多媒体文件之后的多个多媒体文件,按照确定的多个多媒体文件的排列顺序依次预加载每个多媒体文件。
但实际情景中用户很可能不按照播放列表中多媒体文件的排列顺序来依次播放多媒体文件,导致上述相关技术很难准确地预加载用户想看的多媒体文件,造成终端性能及数据流量的浪费。
发明内容
本申请提出一种多媒体预加载方法、装置、设备及存储介质,本申请依据用户的操作动作,预测用户想要播放的多媒体文件。根据预测结果调整预加载队列,能使预加载的多媒体文件更符合用户需求,精确缓存用户想播放的多媒体文件,减少系统资源浪费,很好地平衡了预加载的准确性和系统资源的消耗,缩短了用户播放多媒体文件的等待时间。
本申请第一方面实施例提出了一种多媒体预加载方法,包括:
根据当前的播放列表中正在播放的多媒体文件和未播放的多媒体文件,生成预加载队列;
实时监测用户对所述播放列表施加的操作动作;
根据所述操作动作和所述播放列表,预测下一个被播放的多媒体文件;
根据预测的所述多媒体文件,调整所述预加载队列。
在本申请的一些实施例中,所述操作动作包括滑动操作,所述根据所述操作动作和所述播放列表,预测下一个被播放的多媒体文件,包括:
获取所述滑动操作对应的起始坐标、终止坐标及滑动持续时长;
根据所述起始坐标、所述终止坐标和所述滑动持续时长,确定所述播放列表的滑动距离;
根据所述起始坐标、所述终止坐标和所述播放列表的排列方向,确定所述滑动操作的滑动方向;
根据所述滑动距离、所述滑动方向和滑动操作前所述播放列表中显示于所述终端屏幕内的多媒体文件,预测滑动停止时显示于所述终端屏幕内的多媒体文件;
从滑动停止时显示于所述终端屏幕内的多媒体文件中选择一个多媒体文件作为下一个被播放的多媒体文件。
在本申请的一些实施例中,所述操作动作包括点击操作,所述根据所述操作动作和所述播放列表,预测下一个被播放的多媒体文件,包括:
获取所述点击操作对应的点击坐标;
从所述播放列表中筛选出当前显示于所述终端屏幕内的每个多媒体文件;
在所述终端屏幕中,确定出所述每个多媒体文件对应的空白显示区域;
若所述点击坐标位于第一多媒体文件对应的空白显示区域内,则将所述第一多媒体文件确定为下一个被播放的多媒体文件,所述第一多媒体文件为所述每个多媒体文件中的任一多媒体文件。
在本申请的一些实施例中,所述预加载队列中包括未播放的多媒体文件对应的多媒体标识信息及优先级,所述根据预测的所述多媒体文件,调整所述预加载队列,包括:
确定预测的所述多媒体文件在所述播放列表中的第一位置;
分别确定其他每个多媒体文件在所述播放列表中的第二位置;
根据所述第一位置和所述其他每个多媒体文件对应的第二位置,分别确定所述其他每个多媒体文件对应的优先级;
根据所述其他每个多媒体文件对应的优先级,调整所述预加载队列。
在本申请的一些实施例中,所述根据所述其他每个多媒体文件对应的优先级,调整所述预加载队列,包括:
从所述播放列表中分别获取所述其他每个多媒体文件对应的多媒体标识信息;
根据所述其他每个多媒体文件对应的多媒体标识信息及优先级,对原来的预加载队列进行调整。
在本申请的一些实施例中,所述根据预测的所述多媒体文件,调整所述预加载队列之后,还包括:
监测到所述播放列表中的多媒体文件对应的播放触发事件;
确定被触发的所述多媒体文件是否与预测的所述多媒体文件相同;
如果否,则根据被触发的所述多媒体文件,再次调整所述预加载队列。
在本申请的一些实施例中,所述方法还包括:
从所述预加载队列中获取优先级最高的多媒体标识信息;
根据获取的所述多媒体标识信息,从多媒体服务器下载预设数据量的所述优先级最高的多媒体文件。
在本申请的一些实施例中,所述根据获取的所述多媒体标识信息,从多媒体服务器下载预设数据量的所述优先级最高的多媒体文件,包括:
若所述优先级最高的多媒体标识信息对应的多媒体文件为m3u8文件,则根据所述多媒体标识信息,获取所述m3u8文件的访问地址;
根据所述m3u8文件的访问地址,从多媒体服务器获取所述m3u8文件对应的切片索引列表;
根据所述m3u8文件的访问地址和所述切片索引列表中包括的每个切片的存储地址,从所述多媒体服务器下载预设数据量的切片数据。
在本申请的一些实施例中,所述方法还包括:
根据本地代理服务器的地址和所述m3u8文件对应的切片索引列表,生成所述m3u8文件对应的本地文件,所述本地文件中包括每个切片对应的本地存储路径;
将下载的所述切片数据存储在所述本地文件中所述切片数据对应的本地存储路径下;
检测到所述m3u8文件对应的播放触发事件,通过所述本地代理服务器从所述本地文件中获取所述切片数据;
通过所述本地代理服务器将所述切片数据传输给播放器,通过所述播放器播放所述切片数据。
在本申请的一些实施例中,所述方法还包括:
检测到所述m3u8文件对应的播放触发事件,将所述m3u8文件的访问地址传输给播放器,所述播放器根据所述m3u8文件的访问地址获得所述切片索引列表;
通过所述播放器解析所述切片索引列表,获得每个切片的存储地址;
根据预设的代理服务器的地址和待播放切片的存储地址,通过所述播放器发送切片获取请求给所述本地代理服务器;
所述本地代理服务器根据所述待播放切片的存储地址,从本地获取已下载的所述切片数据,将所述切片数据传输给所述播放器进行播放。
本申请第二方面的实施例提供了一种多媒体预加载装置,包括:
生成模块,用于根据当前的播放列表中正在播放的多媒体文件和未播放的多媒体文件,生成预加载队列;
监测模块,用于实时监测用户对所述播放列表施加的操作动作;
预测模块,用于根据所述操作动作和所述播放列表,预测下一个被播放的多媒体文件;
调整模块,用于根据预测的所述多媒体文件,调整所述预加载队列。
本申请第三方面的实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序以实现上述第一方面所述的方法。
本申请第四方面的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行实现上述第一方面所述的方法。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
在本申请实施例中,实时依据用户对播放列表施加的操作动作,预测用户想要播放的下一个多媒体文件。根据预测的多媒体文件调整预加载队列,按照预加载队列中各个多媒体文件的优先级从高到低的顺序依次进行预加载。如此依据用户操作预测用户想要播放的多媒体文件,进而调整预加载队列,能够使得预加载的多媒体文件更符合用户需求,精确地缓存用户想要播放的多媒体文件,减少终端系统资源的浪费,很好地平衡了多媒体预加载的准确性和系统资源的消耗,在最少的资源消耗情况下,缩短了用户播放多媒体文件的等待时间,更好的提高了用户观看多媒体文件的体验。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变的明显,或通过本申请的实践了解到。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本申请一实施例所提供的一种多媒体预加载方法的流程图;
图2示出了本申请一实施例所提供的用户对播放列表施加滑动操作的示意图;
图3示出了本申请一实施例所提供的用户对播放列表施加滑动操作的另一示意图;
图4示出了本申请一实施例所提供的多媒体文件对应的空白显示区域的示意图;
图5示出了本申请一实施例所提供的播放列表对应的滚动条的示意图;
图6示出了本申请一实施例所提供的一种多媒体预加载装置的结构示意图;
图7示出了本申请一实施例所提供的一种电子设备的结构示意图;
图8示出了本申请一实施例所提供的一种存储介质的示意图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施方式。虽然附图中显示了本申请的示例性实施方式,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。
下面结合附图来描述根据本申请实施例提出的一种多媒体预加载方法、装置、设备及存储介质。
目前用户经常通过手机或平板电脑等终端上的应用程序来播放音频或视频等多媒体文件。相关技术中,在终端播放当前的多媒体文件时,获取了播放列表中排在当前播放的多媒体文件之后的多个多媒体文件。按照排在当前播放的多媒体文件之后的多个多媒体文件的排列顺序依次预加载每个多媒体文件。但实际情景中用户很可能不按照播放列表中多媒体文件的排列顺序来依次播放多媒体文件,用户经常通过滑动播放列表等操作动作来选择自己想要播放的多媒体文件,导致依据多媒体文件的排列顺序预加载很难准确地预加载到用户想要播放的多媒体文件,造成终端性能及数据流量的浪费。
为了提高预加载的准确性,减少无效的预加载操作造成的资源消耗,本申请实施例提供了一种多媒体预加载方法,该方法依据用户对播放列表施加的操作动作,预测用户想要播放的下一个多媒体文件。根据预测的多媒体文件调整预加载队列。如此依据用户操作预测用户想要播放的多媒体文件,进而调整预加载队列,能够使得预加载的多媒体文件更符合用户需求,精确地缓存用户想要播放的多媒体文件,减少终端系统资源的浪费,很好地平衡了多媒体预加载的准确性和系统资源的消耗,在最少的资源消耗情况下,缩短了用户播放多媒体文件的等待时间,更好的提高了用户观看多媒体文件的体验。
参见图1,该方法具体包括以下步骤:
步骤101:根据当前的播放列表中正在播放的多媒体文件和未播放的多媒体文件,生成预加载队列。
上述多媒体标识信息可以为多媒体文件的名称或访问地址等。
本申请实施例的执行主体为手机或平板电脑等终端。当用户使用终端上的应用程序观看多媒体文件时,终端获取当前的播放列表,确定该播放列表中当前正在播放的多媒体文件和当前未播放的多媒体文件。分别确定该播放列表中当前未播放的每个多媒体文件与正在播放的多媒体文件之间的位置关系。根据当前未播放的每个多媒体文件对应的位置关系及预设预加载规则,分别确定当前未播放的每个多媒体文件对应的优先级。将当前未播放的每个多媒体文件的多媒体标识信息按照优先级从高到低或从低到高的顺序排列,得到预加载队列。
未播放的多媒体文件对应的位置关系表示了未播放的多媒体文件是排在正在播放的多媒体文件的前面还是后面,以及表示未播放的多媒体文件与正在播放的多媒体文件之间相隔的多媒体文件的数目。例如,假设播放列表中包括a、b、c、d、e共五个多媒体文件,b为正在播放的多媒体文件,则e对应的位置关系为位于多媒体文件b之后且与多媒体文件b之间相隔两个多媒体文件。
预设预加载规则用于规定未播放的多媒体文件的优先级的确定方式。预设预加载规则可以规定排在正在播放的多媒体文件后面的多媒体文件的优先级高于排在正在播放的多媒体文件前面的多媒体文件的优先级,以及规定与正在播放的多媒体文件之间相隔的多媒体文件的数目越少优先级越高。
例如,假设播放列表中包括a、b、c、d、e共五个多媒体文件,b为正在播放的多媒体文件,则生成的预加载队列可以为c、d、e、a。
通过本步骤的操作生成预加载队列之后,即可根据预加载队列中每个多媒体标识信息及对应的优先级,按照优先级从高到低的顺序依次预加载每个多媒体标识信息对应的多媒体文件。对于每个需要预加载的多媒体文件,本申请实施例仅预加载预设数据量的多媒体数据,预设数据量可以为100K或200K等。
在播放当前的多媒体文件以及按照当前的预加载队列缓存未播放的多媒体文件的过程中,终端还通过如下步骤102-104的操作实时依据用户对播放列表的操作,动态调整预加载队列,以使预加载的多媒体文件更符合用户的播放需求,提高预加载的准确性,减少无效的预加载造成的系统资源浪费。
步骤102:实时监测用户对播放列表施加的操作动作。
若终端的屏幕是触控屏,则终端实时监测用户是否对终端屏幕进行了触控操作,该触控操作包括点击操作或滑动操作等。若当前显示的播放列表具有滚动条,则终端实时监测用户是否对滚动条进行了点击操作、拖动操作或滚动操作等。上述用户对播放列表施加的操作动作可以包括上述对触控屏的点击操作或滑动操作,或者包括对播放列表的滚动条施加的点击操作、拖动操作或滚动操作等。
步骤103:根据用户的操作动作和播放列表,预测下一个被播放的多媒体文件。
若终端的屏幕是触控屏,用户对播放列表施加的操作动作为对播放列表进行了滑动操作。则终端获取滑动操作对应的起始坐标、终止坐标及滑动持续时长。其中,起始坐标为滑动操作过程中用户的身体部位(如手指)首次与终端屏幕接触的位置处的坐标,终止坐标为用户的身体部位抬离终端屏幕前最后所处的位置的坐标,滑动持续时长为用户的身体部位从起始坐标移动到终止坐标所用的时间。如图2所示,图2中示出的播放列表中包括a、b、c三个多媒体文件,播放列表的排列方向平行于终端的长边。用户用手指从A点滑到B点。A点为起始坐标,B点为终止坐标,滑动持续时长为用户的手指从A点滑动到B点所用的时间。
终端根据上述起始坐标、终止坐标和滑动持续时长,确定播放列表的滑动距离及滑动方向。具体地,终端根据滑动操作的起始坐标和终止坐标,计算出用户的身体部位的移动距离。根据该移动距离和滑动持续时长,计算滑动速率。终端中设置有用于依据用户的滑动操作计算页面的滑动距离的应用程序。终端调用该应用程序,根据上述计算的滑动速率及滑动持续时长,计算当前显示的播放列表的滑动距离。
终端还根据上述起始坐标、终止坐标和播放列表的排列方向,确定用户滑动操作的滑动方向。播放列表的排列方向可以为平行于终端屏幕的第一侧边,或者播放列表的排列方向可以为平行于终端屏幕的第二侧边,第一侧边垂直于第二侧边。若播放列表的排列方向为平行于终端屏幕的第一侧边,则确定从起始坐标到终止坐标投影在第一侧边上的位移方向,该位移方向即为用户滑动操作的滑动方向。若播放列表的排列方向为平行于终端屏幕的第二侧边,则确定从起始坐标到终止坐标投影在第二侧边上的位移方向,该位移方向即为用户滑动操作的滑动方向。
为了便于更直观地理解上述滑动方向的确定方式,下面结合附图进行说明。如图2所示,终端为手机,播放列表的排列方向平行于手机的长边,用户从A点滑动至B点,则在手机长边上的位移方向如图中箭头所示,该位移方向所示的滑动方向为向上滑动。如图3所示,播放列表的排列方向平行于手机的短边,用户从C点滑动至D点,则在手机短边上的位移方向如图中箭头所示,该位移方向所示的滑动方向为向右滑动。
通过上述方式确定出用户滑动的滑动方向及播放列表的滑动距离之后,终端根据该滑动距离、滑动方向和用户滑动之前播放列表中显示于终端屏幕内的多媒体文件,预测滑动停止时显示于终端屏幕内的多媒体文件。
具体地,终端可以测量出每个多媒体文件在播放列表中所占的单位长度。该单位长度为在播放列表的排列方向上的长度,如图2中所示的播放列表中多媒体文件的单位长度为多媒体文件所占的高度,而图3中所示的播放列表中多媒体文件的单位长度为多媒体文件所占的宽度。终端根据用户滑动之前播放列表中显示于终端屏幕内的多媒体文件、播放列表的滑动距离、滑动方向以及每个多媒体文件在播放列表中所占的单位长度,计算出滑动停止时显示于终端屏幕内的多媒体文件。
滑动停止时终端屏幕内可能仅显示有一个多媒体文件,则将该多媒体文件确定为用户想要下一个播放的多媒体文件。若滑动停止时终端屏幕内显示有多个多媒体文件,则可以从显示的多个多媒体文件中随机选择一个作为下一个被播放的多媒体文件。或者,从显示的多个多媒体文件中确定出位于终端屏幕预设区域内的多媒体文件作为下一个被播放的多媒体文件,预设区域可以为终端屏幕中间部位的一定区域。
在本申请的另一些实施例中,用户对播放列表施加的操作动作为点击操作,即用户点击了播放列表中的某个位置。此时终端获取点击操作对应的点击坐标,从播放列表中筛选出当前显示于终端屏幕内的每个多媒体文件。确定每个多媒体文件在终端屏幕中所覆盖的显示区域,若用户的点击操作对应的点击坐标恰落在某个多媒体文件所覆盖的显示区域内,则确定该多媒体文件被用户点击,后续播放该多媒体文件,并根据该多媒体文件调整预加载队列。具体地,从播放列表中获取除该多媒体文件以外的其他每个多媒体文件对应的多媒体标识信息,分别确定在播放列表中其他每个多媒体文件与该多媒体文件之间的位置关系。根据与该多媒体文件之间的位置关系,分别确定其他每个多媒体文件对应的优先级。根据其他每个多媒体文件对应的多媒体标识信息及优先级,生成新的预加载队列。将原来的预加载队列替换为新的预加载队列。后续根据新的预加载队列中每个多媒体标识信息及对应的优先级,按照优先级从高到低的顺序依次预加载每个多媒体标识信息对应的多媒体文件。
若终端确定出用户的点击操作对应的点击坐标未落入任何多媒体文件所覆盖的显示区域,则表明用户没有点击任何的多媒体文件。在此情况下,终端确定出当前终端屏幕显示的每个多媒体文件对应的空白显示区域。如图4所示,多媒体文件b对应的空白显示区域为多媒体文件b上下两条虚线之间处多媒体文件b所覆盖的区域以外的空白区域。
若用户点击操作对应的点击坐标位于第一多媒体文件对应的空白显示区域内,则将第一多媒体文件确定为下一个被播放的多媒体文件,第一多媒体文件为每个多媒体文件中的任一多媒体文件。
在本申请的另一些实施例中,播放列表具有滚动条,如图5所示,滚动条包括滚动框、位于滚动框内的滚动块以及位于滚动框两端的滚动箭头。终端监测到用户对滚动框或滚动箭头进行了点击操作,则统计用户连续点击次数。连续点击次数为相邻两次点击之间的间隔时间小于预设时长,预设时长可以为1秒或2秒等。若超过预设时长未再检测到用户点击,则结束统计。
若用户点击的是滚动箭头,则滚动箭头所指示的方向即为播放列表的滚动方向。若用户点击的是滚动框,则终端根据点击位置与滚动块的相对位置确定滚动方向。如图5所示,若点击位置在滚动块的上侧,则滚动方向为向上滚动。若点击位置在滚动块的下侧,则滚动方向为向下滚动。
若播放列表是按照图3所示的横向显示的,则终端将终端屏幕的宽度确定为单次点击播放列表滚动的距离。若播放列表是按照图2所示的竖向显示的,则终端将终端屏幕的高度确定为单次点击播放列表滚动的距离。终端根据播放列表的总长度、单次点击滚动的距离和连续点击次数,确定播放列表在用户的点击操作下滚动的总距离。终端根据用户点击之前播放列表中显示于终端屏幕内的多媒体文件、播放列表滚动的总距离、滚动方向以及每个多媒体文件在播放列表中所占的单位长度,计算出滚动停止时显示于终端屏幕内的多媒体文件。
用户停止点击时终端屏幕内可能仅显示有一个多媒体文件,则将该多媒体文件确定为用户想要下一个播放的多媒体文件。若用户停止点击时终端屏幕内显示有多个多媒体文件,则可以从显示的多个多媒体文件中随机选择一个作为下一个被播放的多媒体文件。或者,从显示的多个多媒体文件中确定出位于终端屏幕预设区域内的多媒体文件作为下一个被播放的多媒体文件,预设区域可以为终端屏幕中间部位的一定区域。
在本申请的另一些实施例中,终端监测到用户的操作动作为按住滚动块并进行拖动。则获取拖动前滚动块的第一坐标及拖动停止时滚动块的第二坐标。将从第一坐标至第二坐标的位移方向确定为播放列表的滚动方向。根据第一坐标和第二坐标,计算滚动块的移动距离。终端获取滚动块的长度,计算移动距离与滚动块的长度之间的比值。
若播放列表是按照图3所示的横向显示的,则终端将终端屏幕的宽度确定为滚动块移动自身的长度时播放列表滚动的单位距离。若播放列表是按照图2所示的竖向显示的,则终端将终端屏幕的高度确定为滚动块移动自身的长度时播放列表滚动的单位距离。终端计算上述移动距离与滚动块的长度之间的比值与单位距离之间的乘积,该乘积即为用户拖动播放列表滚动的总距离。终端根据用户拖动之前播放列表中显示于终端屏幕内的多媒体文件、播放列表滚动的总距离、滚动方向以及每个多媒体文件在播放列表中所占的单位长度,计算出滚动停止时显示于终端屏幕内的多媒体文件。
用户停止拖动时终端屏幕内可能仅显示有一个多媒体文件,则将该多媒体文件确定为用户想要下一个播放的多媒体文件。若用户停止拖动时终端屏幕内显示有多个多媒体文件,则可以从显示的多个多媒体文件中随机选择一个作为下一个被播放的多媒体文件。或者,从显示的多个多媒体文件中确定出位于终端屏幕预设区域内的多媒体文件作为下一个被播放的多媒体文件,预设区域可以为终端屏幕中间部位的一定区域。
在本申请的另一些实施例中,还可以根据正在播放的多媒体文件、用户的操作动作和播放列表来预测下一个被播放的多媒体文件。具体地,确定正在播放的多媒体文件在播放列表中的位置。若用户的操作动作为滑动操作,则按照上述实施例确定出播放列表的滑动距离和滑动方向。根据正在播放的多媒体文件的位置、每个多媒体文件在播放列表中所占的单位长度以及播放列表的滑动距离和滑动方向,确定滑动停止时显示于终端屏幕内的多媒体文件。从滑动停止时显示于终端屏幕内的多媒体文件中选择一个多媒体文件作为下一个被播放的多媒体文件。
若用户的操作动作为点击动作,且点击动作的点击坐标不位于任何多媒体文件对应的显示区域内。则可以根据正在播放的多媒体文件的位置及点击坐标,确定在播放列表中用户点击的位置是位于正在播放的多媒体文件之前还是之后。若点击的位置位于正在播放的多媒体文件之前,则从播放列表中位于正在播放的多媒体文件之前的一个或多个多媒体文件中选择一个多媒体文件作为下一个被播放的多媒体文件。若点击的位置位于正在播放的多媒体文件之后,则从播放列表中位于正在播放的多媒体文件之后的一个或多个多媒体文件中选择一个多媒体文件作为下一个被播放的多媒体文件。
若用户的操作动作是对播放列表的滚动条进行的操作,则按照上述实施例提供的方式确定出对滚动条操作对应的滚动的总距离和滚动方向。根据正在播放的多媒体文件的位置、每个多媒体文件在播放列表中所占的单位长度以及播放列表滚动的总距离和滚动方向,确定滚动停止时显示于终端屏幕内的多媒体文件。从滚动停止时显示于终端屏幕内的多媒体文件中选择一个多媒体文件作为下一个被播放的多媒体文件。
通过上述任一方式预测出用户下一个想要播放的多媒体文件之后,通过如下步骤104的方式,依据预测的多媒体文件来调整预加载队列。
步骤104:根据预测的多媒体文件,调整预加载队列。
终端从播放列表中确定预测的多媒体文件在播放列表中的第一位置。以及分别确定其他每个多媒体文件在播放列表中的第二位置。根据第一位置和其他每个多媒体文件对应的第二位置,分别确定其他每个多媒体文件对应的优先级。根据其他每个多媒体文件对应的优先级,调整预加载队列。
具体地,根据第一位置和其他每个多媒体文件对应的第二位置,分别确定其他每个多媒体文件与预测的多媒体文件之间的位置关系,该位置关系包括其他多媒体文件位于预测的多媒体文件的前面还是后面,以及包括其他多媒体文件与预测的多媒体文件之间间隔的多媒体文件的数目;根据与预测的多媒体文件之间的位置关系以及预设预加载规则,分别确定其他每个多媒体文件对应的优先级。预设预加载规则规定了多媒体文件的优先级的确定方式,如规定排在预测的多媒体文件后面的多媒体文件的优先级高于排在前面的多媒体文件的优先级,以及规定与预测的多媒体文件之间相隔的多媒体文件的数目越少优先级越高等。
通过上述方式确定出其他每个多媒体文件的优先级之后,从播放列表中分别获取其他每个多媒体文件对应的多媒体标识信息。根据其他每个多媒体文件对应的多媒体标识信息及优先级,对原来的预加载队列进行调整。具体按照优先级从高到低或从低到高的顺序调整预加载队列。
本申请实施例依据用户操作预测用户想要播放的多媒体文件,进而调整预加载队列,能够使得预加载的多媒体文件更符合用户需求,精确地缓存用户想要播放的多媒体文件,减少终端系统资源的浪费,很好地平衡多媒体预加载的准确性和系统资源的消耗。
通过上述方式根据预测的多媒体文件,调整预加载队列之后,若监测到播放列表中的某个多媒体文件对应的播放触发事件,则确定被触发的多媒体文件是否与上述预测的多媒体文件相同。如果相同,则按照上述调整的预加载队列缓存未播放的多媒体文件。若被触发的多媒体文件与上述预测的多媒体文件不相同,则根据被触发的多媒体文件,重新调整预加载队列。预加载队列的调整方式与上文中的调整方式相同,在此不再赘述。
上述播放触发事件可以为多媒体文件对应的点击事件,如用户点击多媒体文件。或者,播放触发事件可以为多媒体文件对应的摇一摇事件,如多媒体文件显示在屏幕中时用户对终端进行了摇一摇的操作。播放触发事件还可以为其他任意能够触发多媒体文件进行播放的事件,在此不进行一一列举。
在用户实际播放的多媒体文件与预估的不一致时,根据用户实际播放的多媒体文件调整预加载队列,使预加载的多媒体文件更贴合用户需求,精确地缓存用户想要播放的多媒体文件,减少终端系统资源的浪费,很好地平衡多媒体预加载的准确性和系统资源的消耗。
在终端播放某个多媒体文件的过程中,终端根据当下的预加载队列进行多媒体文件的预加载。具体地,从预加载队列中获取优先级最高的多媒体标识信息;根据获取的多媒体标识信息,从多媒体服务器下载预设数据量的优先级最高的多媒体文件。预设数据量可以为100K或200K等。
终端在预加载优先级最高的多媒体文件时,首先根据该多媒体文件的多媒体标识信息,判断该多媒体文件的类型。若多媒体标识信息为多媒体文件的访问地址,则可以从该访问地址中包括的文件路径确定该多媒体文件的类型。若多媒体标识信息为多媒体文件的名称,则可以根据该名称从当前提供该播放列表的应用程序的界面中获取该多媒体文件的摘要信息,该摘要信息包括多媒体文件的名称、访问地址、图片等。从摘要信息中获取该多媒体文件的访问地址,从该访问地址中包括的文件路径确定该多媒体文件的类型。
例如,假设多媒体文件的访问地址为https://videoxx.xxxxx.com/e3654bfe0c95e26ee1895028588786aa.mp4,则根据其中包括的文件路径e3654bfe0c95e26ee1895028588786aa.mp4,可以确定出该多媒体文件的类型为mp4文件。
本申请实施例将多媒体文件的类型划分为m3u8文件和非m3u8文件。m3u8文件包括多个切片文件。非m3u8文件为非流媒体形式的完整文件,如mp4文件或mp3文件等。
若通过上述方式确定出该多媒体文件的类型为非m3u8文件,则根据多媒体标识信息,获取该多媒体文件的访问地址。从本地播放器中获取预先设置的本地代理服务器的地址,通过urlencode(url编码)函数将本地代理服务器的地址拼接到该多媒体文件的访问地址中。例如,假设多媒体文件的访问地址为https://videoxx.xxxxx.com/e3654bfe0c95e26ee1895028588786aa.mp4,本地代理服务器的地址为127.0.0.1:37895,则拼接后的地址为http://127.0.0.1:37895/https%3A%2F%2Fvideoxx.xxxxx.com%2Fe3654bfe0c95e26ee1895028588786aa.mp4。
根据拼接后的地址发送多媒体获取请求给本地代理服务器,该多媒体获取请求中包括上述拼接后的地址。本地代理服务器通过urlencode函数从上述拼接后的地址中解析出多媒体文件的原始的访问地址。创建一个本地文件,存储该多媒体文件的访问地址与该本地文件的对应关系。根据该多媒体文件的访问地址,发送多媒体获取请求给多媒体服务器,该多媒体获取请求包括该多媒体文件的访问地址和终端的设备标识。多媒体服务器接收到该多媒体获取请求后,根据该多媒体文件的访问地址从数据库中获取该多媒体文件,并根据终端的设备标识,从该多媒体文件的第一帧数据开始向终端上的本地代理服务器传输多媒体文件的每一帧数据。终端的本地代理服务器接收到多媒体服务器返回的数据后,将接收的数据存储在该多媒体文件的访问地址对应的本地文件中。本地代理服务器实时判断已下载数据的数据量是否等于预设数据量,如果是,则停止下载。如果否,则继续下载该多媒体文件的数据。
通过上述方式预加载了该非m3u8类型的多媒体文件后,若后续用户点击该多媒体文件进行播放,则终端可以从本地文件中存储的该多媒体文件的第一帧开始播放,无需用户进行等待,用户体验很好。而且在开始播放该多媒体文件的同时,还可以通过本地代理服务器继续从多媒体服务器中下载该多媒体文件中未缓存的部分数据,以便播放完预加载的部分之后可以继续往后播放,无需用户等待。
若通过终端确定出当前需要预加载的多媒体文件的类型为m3u8文件,则根据该m3u8文件的多媒体标识信息,获取m3u8文件的访问地址。根据该m3u8文件的访问地址,从多媒体服务器获取m3u8文件对应的切片索引列表。该切片索引列表中包括该m3u8文件的每个切片的存储地址。
m3u8文件的访问地址的获取方式与上文中非m3u8文件的访问地址的获取方式相同。终端获取到m3u8文件的访问地址之后,发送获取请求给多媒体服务器,该多媒体获取请求中包括m3u8文件的访问地址和终端的设备标识。多媒体服务器接收该多媒体获取请求,根据m3u8文件的访问地址从数据库中获取该m3u8文件的切片索引列表,根据终端的设备标识将该切片索引列表返回给终端。
终端接收该切片索引列表,创建一个本地文件,存储该m3u8文件的访问地址与创建的本地文件之间的对应关系。终端从该切片索引列表中解析出每个切片对应的存储地址。终端通过urlencode函数在每个切片的存储地址中拼接本地代理服务器的地址,得到每个切片对应的本地存储路径。例如,拼接后切片的本地存储路径可以为“本地代理服务器地址/目录地址/seg_0.ts”、“本地代理服务器地址/目录地址/seg_1.ts”,依此类推直至最后一个切片。终端按照每个切片在m3u8文件中的时间顺序,依次将拼接后的每个切片的本地存储路径写入上述本地文件中。
若多媒体服务器对该m3u8文件进行了加密,则切片索引列表中还包括密钥的存储地址,终端还从该切片索引列表中解析出密钥的存储地址。终端通过urlencode函数在密钥的存储地址中拼接本地代理服务器的地址。并在本地文件中设置一个本地密钥文件,如该文件的名称可以为local.key。将拼接后的密钥的存储地址存储在本地文件下的该本地密钥文件中。若切片索引列表中包括密钥的存储地址,则终端还从多媒体服务器获取密钥。具体地,终端发送密钥获取请求给本地代理服务器,该密钥获取请求中包括拼接后的密钥的存储地址,本地代理服务器从该拼接的地址中解析出密钥原始的存储地址,发送获取请求给多媒体服务器。多媒体服务器根据该获取请求携带的密钥的存储地址,获取对应的密钥,将该密钥返回给终端上的本地代理服务器。本地代理服务器将该密钥传输给终端上的播放器。终端将该密钥存储在本地文件下的本地密钥文件local.key中。
终端根据m3u8文件的访问地址和切片索引列表中包括的每个切片的存储地址,从多媒体服务器下载预设数据量的切片数据。具体地,终端从第一个切片开始下载,终端发送切片获取请求给本地代理服务器,该切片获取请求中包括拼接有本地代理服务器地址的第一个切片的存储地址。本地代理服务器接收该切片获取请求,从拼接后的存储地址中解析出切片原始的存储地址,并将m3u8文件的访问地址的最后一段去除,将切片的存储地址作为最后一段拼接到m3u8文件的访问地址中,然后发送获取请求给多媒体服务器,该获取请求中包括拼接后的访问地址。多媒体服务器从接收的获取请求中的访问地址中解析出m3u8文件的访问地址及切片的存储地址,根据m3u8文件的访问地址及切片的存储地址从数据库中获取对应的切片数据,发送该切片数据给终端的本地代理服务器。本地代理服务器接收该切片数据,将该切片的数据存储在本地文件中该切片数据对应的本地存储路径下。
终端按照上述方式依次下载m3u8文件的切片数据,并实时判断已下载的切片数据的总数据量是否等于预设数据量,如果是,则停止下载。如果否,则继续下载。
通过上述方式预加载了该m3u8文件后,若后续监测到该m3u8文件对应的播放触发事件,则通过代理服务器依据被触发的m3u8文件的访问地址,找到该访问地址对应的本地文件,从本地文件中存储的该m3u8文件的第一个切片开始将切片数据传输给播放器,通过播放器播放切片数据,无需用户进行等待,用户体验很好。而且在开始播放的同时,还可以通过本地代理服务器继续从多媒体服务器中下载该m3u8文件中未缓存的部分切片数据,以便播放完预加载的部分之后可以继续往后播放,无需用户等待。
在本申请的另一些实施例中,也可以不生成m3u8文件对应的本地文件。而是在检测到m3u8文件对应的播放触发事件时,将m3u8文件的访问地址传输给播放器,播放器根据m3u8文件的访问地址获得切片索引列表;通过播放器解析切片索引列表,获得每个切片的存储地址;根据预设的代理服务器的地址和待播放切片的存储地址,通过播放器发送切片获取请求给本地代理服务器;本地代理服务器根据待播放切片的存储地址,从本地获取已下载的切片数据,将切片数据传输给播放器进行播放。
对于预加载队列中的每个多媒体标识信息,终端按照优先级从高到低的顺序,按照上述方式依次预加载每个多媒体标识信息对应的多媒体文件。
在本申请实施例中,实时依据用户对播放列表施加的操作动作,预测用户想要播放的下一个多媒体文件。根据预测的多媒体文件调整预加载队列,按照预加载队列中各个多媒体文件的优先级从高到低的顺序依次进行预加载。如此依据用户操作预测用户想要播放的多媒体文件,进而调整预加载队列,能够使得预加载的多媒体文件更符合用户需求,精确地缓存用户想要播放的多媒体文件,减少终端系统资源的浪费,很好地平衡了多媒体预加载的准确性和系统资源的消耗,在最少的资源消耗情况下,缩短了用户播放多媒体文件的等待时间,更好的提高了用户观看多媒体文件的体验。
本申请实施例还提供一种多媒体预加载装置,该装置用于执行上述任一实施例所述的多媒体预加载方法,参见图6,该装置包括:
生成模块601,用于根据当前的播放列表中正在播放的多媒体文件和未播放的多媒体文件,生成预加载队列;
监测模块602,用于实时监测对播放列表施加的操作动作;
预测模块603,用于根据操作动作和播放列表,预测下一个被播放的多媒体文件;
调整模块604,用于根据预测的多媒体文件,调整预加载队列。
上述操作动作包括滑动操作,预测模块603,具体用于获取滑动操作对应的起始坐标、终止坐标及滑动持续时长;根据起始坐标、终止坐标和滑动持续时长,确定播放列表的滑动距离;根据起始坐标、终止坐标和播放列表的排列方向,确定滑动操作的滑动方向;根据滑动距离、滑动方向和滑动操作前播放列表中显示于终端屏幕内的多媒体文件,预测滑动停止时显示于终端屏幕内的多媒体文件;从滑动停止时显示于终端屏幕内的多媒体文件中选择一个多媒体文件作为下一个被播放的多媒体文件。
上述操作动作包括点击操作,预测模块603,具体用于获取点击操作对应的点击坐标;从播放列表中筛选出当前显示于终端屏幕内的每个多媒体文件;在终端屏幕中,确定出筛选的每个多媒体文件对应的空白显示区域;若点击坐标位于第一多媒体文件对应的空白显示区域内,则将第一多媒体文件确定为下一个被播放的多媒体文件,第一多媒体文件为每个多媒体文件中的任一多媒体文件。
预加载队列中包括未播放的多媒体文件对应的多媒体标识信息及优先级,调整模块604,具体用于确定预测的多媒体文件在播放列表中的第一位置;分别确定其他每个多媒体文件在播放列表中的第二位置;根据第一位置和其他每个多媒体文件对应的第二位置,分别确定其他每个多媒体文件对应的优先级;根据其他每个多媒体文件对应的优先级,调整预加载队列。
调整模块604,具体用于从播放列表中分别获取其他每个多媒体文件对应的多媒体标识信息;根据其他每个多媒体文件对应的多媒体标识信息及优先级,对原来的预加载队列进行调整。
调整模块604,还用于监测到播放列表中的多媒体文件对应的播放触发事件;确定被触发的多媒体文件是否与预测的多媒体文件相同;如果否,则根据被触发的多媒体文件,再次调整预加载队列。
该装置还包括:下载模块,用于从预加载队列中获取优先级最高的多媒体标识信息;根据获取的多媒体标识信息,从多媒体服务器下载预设数据量的优先级最高的多媒体文件。
下载模块,具体用于若优先级最高的多媒体标识信息对应的多媒体文件为m3u8文件,则根据多媒体标识信息,获取m3u8文件的访问地址;根据m3u8文件的访问地址,从多媒体服务器获取m3u8文件对应的切片索引列表;根据m3u8文件的访问地址和切片索引列表中包括的每个切片的存储地址,从多媒体服务器下载预设数据量的切片数据。
该装置还包括:播放模块,用于根据本地代理服务器的地址和m3u8文件对应的切片索引列表,生成m3u8文件对应的本地文件,本地文件中包括每个切片对应的本地存储路径;将下载的切片数据存储在本地文件中切片数据对应的本地存储路径下;检测到m3u8文件对应的播放触发事件,通过本地代理服务器从本地文件中获取切片数据;通过本地代理服务器将切片数据传输给播放器,通过播放器播放切片数据。
播放模块,还用于检测到m3u8文件对应的播放触发事件,将m3u8文件的访问地址传输给播放器,播放器根据m3u8文件的访问地址获得切片索引列表;通过播放器解析切片索引列表,获得每个切片的存储地址;根据预设的代理服务器的地址和待播放切片的存储地址,通过播放器发送切片获取请求给本地代理服务器;本地代理服务器根据待播放切片的存储地址,从本地获取已下载的切片数据,将切片数据传输给播放器进行播放。
本申请的上述实施例提供的多媒体预加载装置与本申请实施例提供的多媒体预加载方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种电子设备,以执行上述多媒体预加载方法。请参考图7,其示出了本申请的一些实施方式所提供的一种电子设备的示意图。如图7所示,电子设备7包括:处理器700,存储器701,总线702和通信接口703,所述处理器700、通信接口703和存储器701通过总线702连接;所述存储器701中存储有可在所述处理器700上运行的计算机程序,所述处理器700运行所述计算机程序时执行本申请前述任一实施方式所提供的多媒体预加载方法。
其中,存储器701可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口703(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线702可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器701用于存储程序,所述处理器700在接收到执行指令后,执行所述程序,前述本申请实施例任一实施方式揭示的所述多媒体预加载方法可以应用于处理器700中,或者由处理器700实现。
处理器700可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器700中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器700可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器701,处理器700读取存储器701中的信息,结合其硬件完成上述方法的步骤。
本申请实施例提供的电子设备与本申请实施例提供的多媒体预加载方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的多媒体预加载方法对应的计算机可读存储介质,请参考图8,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的多媒体预加载方法。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的多媒体预加载方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
需要说明的是:
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本申请并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下示意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种多媒体预加载方法,其特征在于,包括:
根据当前的播放列表中正在播放的多媒体文件和未播放的多媒体文件,生成预加载队列;
实时监测用户对所述播放列表施加的操作动作;
根据所述操作动作和所述播放列表,预测下一个被播放的多媒体文件;
根据预测的所述多媒体文件,调整所述预加载队列。
2.根据权利要求1所述的方法,其特征在于,所述操作动作包括滑动操作,所述根据正在播放的多媒体文件、所述操作动作和所述播放列表,预测下一个被播放的多媒体文件,包括:
获取所述滑动操作对应的起始坐标、终止坐标及滑动持续时长;
根据所述起始坐标、所述终止坐标和所述滑动持续时长,确定所述播放列表的滑动距离;
根据所述起始坐标、所述终止坐标和所述播放列表的排列方向,确定所述滑动操作的滑动方向;
根据所述滑动距离、所述滑动方向和滑动操作前所述播放列表中显示于所述终端屏幕内的多媒体文件,预测滑动停止时显示于所述终端屏幕内的多媒体文件;
从滑动停止时显示于所述终端屏幕内的多媒体文件中选择一个多媒体文件作为下一个被播放的多媒体文件。
3.根据权利要求1所述的方法,其特征在于,所述操作动作包括点击操作,所述根据所述操作动作和所述播放列表,预测下一个被播放的多媒体文件,包括:
获取所述点击操作对应的点击坐标;
从所述播放列表中筛选出当前显示于所述终端屏幕内的每个多媒体文件;
在所述终端屏幕中,确定出所述每个多媒体文件对应的空白显示区域;
若所述点击坐标位于第一多媒体文件对应的空白显示区域内,则将所述第一多媒体文件确定为下一个被播放的多媒体文件,所述第一多媒体文件为所述每个多媒体文件中的任一多媒体文件。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述预加载队列中包括未播放的多媒体文件对应的多媒体标识信息及优先级,所述根据预测的所述多媒体文件,调整所述预加载队列,包括:
确定预测的所述多媒体文件在所述播放列表中的第一位置;
分别确定其他每个多媒体文件在所述播放列表中的第二位置;
根据所述第一位置和所述其他每个多媒体文件对应的第二位置,分别确定所述其他每个多媒体文件对应的优先级;
根据所述其他每个多媒体文件对应的优先级,调整所述预加载队列。
5.根据权利要求4所述的方法,其特征在于,所述根据所述其他每个多媒体文件对应的优先级,调整所述预加载队列,包括:
从所述播放列表中分别获取所述其他每个多媒体文件对应的多媒体标识信息;
根据所述其他每个多媒体文件对应的多媒体标识信息及优先级,对原来的预加载队列进行调整。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述根据预测的所述多媒体文件,调整所述预加载队列之后,还包括:
监测到所述播放列表中的多媒体文件对应的播放触发事件;
确定被触发的所述多媒体文件是否与预测的所述多媒体文件相同;
如果否,则根据被触发的所述多媒体文件,再次调整所述预加载队列。
7.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
从所述预加载队列中获取优先级最高的多媒体标识信息;
根据获取的所述多媒体标识信息,从多媒体服务器下载预设数据量的所述优先级最高的多媒体文件。
8.根据权利要求7所述的方法,其特征在于,所述根据获取的所述多媒体标识信息,从多媒体服务器下载预设数据量的所述优先级最高的多媒体文件,包括:
若所述优先级最高的多媒体标识信息对应的多媒体文件为m3u8文件,则根据所述多媒体标识信息,获取所述m3u8文件的访问地址;
根据所述m3u8文件的访问地址,从多媒体服务器获取所述m3u8文件对应的切片索引列表;
根据所述m3u8文件的访问地址和所述切片索引列表中包括的每个切片的存储地址,从所述多媒体服务器下载预设数据量的切片数据。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
根据本地代理服务器的地址和所述m3u8文件对应的切片索引列表,生成所述m3u8文件对应的本地文件,所述本地文件中包括每个切片对应的本地存储路径;
将下载的所述切片数据存储在所述本地文件中所述切片数据对应的本地存储路径下;
检测到所述m3u8文件对应的播放触发事件,通过所述本地代理服务器从所述本地文件中获取所述切片数据;
通过所述本地代理服务器将所述切片数据传输给播放器,通过所述播放器播放所述切片数据。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
检测到所述m3u8文件对应的播放触发事件,将所述m3u8文件的访问地址传输给播放器,所述播放器根据所述m3u8文件的访问地址获得所述切片索引列表;
通过所述播放器解析所述切片索引列表,获得每个切片的存储地址;
根据预设的代理服务器的地址和待播放切片的存储地址,通过所述播放器发送切片获取请求给所述本地代理服务器;
所述本地代理服务器根据所述待播放切片的存储地址,从本地获取已下载的所述切片数据,将所述切片数据传输给所述播放器进行播放。
11.一种多媒体预加载装置,其特征在于,包括:
生成模块,用于根据当前的播放列表中正在播放的多媒体文件和未播放的多媒体文件,生成预加载队列;
监测模块,用于实时监测用户对所述播放列表施加的操作动作;
预测模块,用于根据所述操作动作和所述播放列表,预测下一个被播放的多媒体文件;
调整模块,用于根据预测的所述多媒体文件,调整所述预加载队列。
12.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序以实现如权利要求1-10任一项所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行实现如权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011270354.XA CN114491096A (zh) | 2020-11-13 | 2020-11-13 | 一种多媒体预加载方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011270354.XA CN114491096A (zh) | 2020-11-13 | 2020-11-13 | 一种多媒体预加载方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114491096A true CN114491096A (zh) | 2022-05-13 |
Family
ID=81490900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011270354.XA Pending CN114491096A (zh) | 2020-11-13 | 2020-11-13 | 一种多媒体预加载方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114491096A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116017040A (zh) * | 2022-12-02 | 2023-04-25 | 北京奇艺世纪科技有限公司 | 一种多媒体内容播放方法、装置、电子设备及存储介质 |
CN116708651A (zh) * | 2023-06-08 | 2023-09-05 | 北京字跳网络技术有限公司 | 多媒体数据预加载方法、装置、电子设备及存储介质 |
CN116017040B (zh) * | 2022-12-02 | 2024-10-29 | 北京奇艺世纪科技有限公司 | 一种多媒体内容播放方法、装置、电子设备及存储介质 |
-
2020
- 2020-11-13 CN CN202011270354.XA patent/CN114491096A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116017040A (zh) * | 2022-12-02 | 2023-04-25 | 北京奇艺世纪科技有限公司 | 一种多媒体内容播放方法、装置、电子设备及存储介质 |
CN116017040B (zh) * | 2022-12-02 | 2024-10-29 | 北京奇艺世纪科技有限公司 | 一种多媒体内容播放方法、装置、电子设备及存储介质 |
CN116708651A (zh) * | 2023-06-08 | 2023-09-05 | 北京字跳网络技术有限公司 | 多媒体数据预加载方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9116999B2 (en) | Pre-fetching of network page content | |
WO2017215175A1 (zh) | 页面处理方法、装置、终端及服务器 | |
CN103299645A (zh) | 具有辅助寻找的视频播放器 | |
CN112738633B (zh) | 视频播放的方法、装置、设备及可读存储介质 | |
CN111510789B (zh) | 视频播放方法、系统、计算机设备及计算机可读存储介质 | |
CN113286197A (zh) | 信息展示方法、装置、电子设备和存储介质 | |
CN111372115B (zh) | 应用程序的访问方法及装置、通讯系统 | |
WO2014075599A1 (en) | Method, device and system for processing client environment data | |
EP3125541A1 (en) | Data acquisition and interaction method, set top box, server and multimedia system | |
CN110798701B (zh) | 视频更新的推送方法及终端 | |
CN106937173B (zh) | 视频播放方法及装置 | |
CN114491096A (zh) | 一种多媒体预加载方法、装置、设备及存储介质 | |
CN116916106A (zh) | 一种预览图显示方法、装置、电子设备及存储介质 | |
KR101525519B1 (ko) | Html5를 기반으로 하는 오프라인상에서의 웹브라우징 방법 | |
CN114302187B (zh) | 一种媒体资源播放方法、装置、电子设备及存储介质 | |
CN115019231A (zh) | 视频帧识别方法、装置、电子设备及存储介质 | |
CN111625721B (zh) | 内容推荐方法及装置 | |
CN105956050B (zh) | 一种数据收集方法、装置及设备 | |
CN112584255A (zh) | 一种流媒体数据的播放方法、装置、计算机设备和存储介质 | |
CN109948086B (zh) | 网页数据处理方法、装置、存储介质和计算机设备 | |
CN109246438B (zh) | 基于用户消费信息的视频处理方法及装置 | |
CN113297515A (zh) | 资源信息的处理方法和装置,计算机存储介质和电子设备 | |
CN115499702B (zh) | 预览图像的展示方法、装置、电子设备和存储介质 | |
CN109672901A (zh) | 一种视频展现方法和移动终端 | |
CN116193210B (zh) | 一种视频播放方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |