CN113825014B - 多媒体内容播放方法、装置、计算机设备和存储介质 - Google Patents
多媒体内容播放方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113825014B CN113825014B CN202111062147.XA CN202111062147A CN113825014B CN 113825014 B CN113825014 B CN 113825014B CN 202111062147 A CN202111062147 A CN 202111062147A CN 113825014 B CN113825014 B CN 113825014B
- Authority
- CN
- China
- Prior art keywords
- multimedia content
- target
- data
- playing
- decoding
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000004044 response Effects 0.000 claims abstract description 25
- 238000009877 rendering Methods 0.000 claims description 131
- 239000012634 fragment Substances 0.000 claims description 33
- 230000036316 preload Effects 0.000 claims description 28
- 230000003139 buffering effect Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 description 13
- 230000008520 organization Effects 0.000 description 10
- 230000006399 behavior Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 240000007651 Rubus glaucus Species 0.000 description 4
- 235000011034 Rubus glaucus Nutrition 0.000 description 4
- 235000009122 Rubus idaeus Nutrition 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
本申请实施例公开了多媒体内容播放方法、装置、计算机设备和存储介质;获取多个多媒体内容,所述多个多媒体内容包括视频或音频中的至少一个;获取所述多个多媒体内容之后,针对每个所述多媒体内容,创建与所述多媒体内容对应的解码线程;在所述多媒体内容对应的解码线程中,将所述多媒体内容进行解码和缓存,得到每个所述多媒体内容的预加载数据;响应于播放指令,从所述多个多媒体内容中确定目标多媒体内容;根据所述目标多媒体内容的所述预加载数据播放所述目标多媒体内容。在本申请实施例中在收到多媒体内容播放指令前,对多个本地多媒体内容进行预加载,避免多媒体内容播放开始前,解码加载占用时间,实现多媒体内容秒开。
Description
技术领域
本申请涉及多媒体内容播放技术领域,具体涉及多媒体内容播放方法、装置、计算机设备和存储介质。
背景技术
近年来,密室逃脱类沉浸式实景游戏兴起,在密室中布置各种场景,玩家通过获取信息,思考解密获取道具来触发机关,逃出密室。为了给玩家提供更好的沉浸式体验,密室逃脱会通过播放声音、影像等多媒体内容,展示更真实的场景体验和互动体验,让玩家沉入其中,丰富玩家的游戏体验。
然而,在一个密室逃脱场景中通常配备了多个的多媒体内容以供玩家触发播放,且通常是由玩家随机触发播放其中某一个多媒体内容,由于多媒体内容的数量多,在由玩家触发播放多媒体内容时,常常会产生播放前的卡顿,因此,如何避免在多媒体内容开始播放时的卡顿,是当前面临的重大技术问题。
发明内容
本申请实施例提供多媒体内容播放方法、装置、计算机设备和计算机可读存储介质,在收到多媒体内容播放指令前,对多个本地多媒体内容进行预加载,避免多媒体内容播放开始前,解码加载占用时间,实现多媒体内容秒开。
本申请实施例提供一种多媒体内容播放方法,包括:获取多个多媒体内容,所述多个多媒体内容包括视频或音频中的至少一个;获取所述多个多媒体内容之后,针对每个所述多媒体内容,创建与所述多媒体内容对应的解码线程;在所述多媒体内容对应的解码线程中,将所述多媒体内容进行解码和缓存,得到每个所述多媒体内容的预加载数据;响应于播放指令,从所述多个多媒体内容中确定目标多媒体内容;根据所述目标多媒体内容的所述预加载数据播放所述目标多媒体内容。
本申请实施例还提供一种多媒体内容播放装置,包括:获取单元,用于获取多个多媒体内容,所述多个多媒体内容包括视频或音频中的至少一个;第一预加载单元,用于获取所述多个多媒体内容之后,针对每个所述多媒体内容,创建与所述多媒体内容对应的解码线程;第二预加载单元,用于在所述多媒体内容对应的解码线程中,将所述多媒体内容进行解码和缓存,得到每个所述多媒体内容的预加载数据;响应单元,用于响应于播放指令,在所述多个多媒体内容中确定目标多媒体内容;播放单元,用于根据所述目标多媒体内容的所述预加载数据播放所述目标多媒体内容。
本申请实施例还提供一种计算机设备,包括存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行本申请实施例所提供的任一种多媒体内容播放方法中的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例所提供的任一种多媒体内容播放方法中的步骤。
本申请实施例可以获取多个多媒体内容,所述多个多媒体内容包括视频或音频中的至少一个;获取所述多个多媒体内容之后,针对每个所述多媒体内容,创建与所述多媒体内容对应的解码线程;在所述多媒体内容对应的解码线程中,将所述多媒体内容进行解码和缓存,得到每个所述多媒体内容的预加载数据;响应于播放指令,从所述多个多媒体内容中确定目标多媒体内容;根据所述目标多媒体内容的所述预加载数据播放所述目标多媒体内容。在本申请中,通过在获取多媒体内容后,创建与多媒体内容对应的解码线程,在收到多媒体内容播放指令前,对多个本地多媒体内容进行预加载,通过解码和缓存得到每个所述多媒体内容的预加载数据,可以避免多媒体内容播放开始前,解码加载占用时间,实现多媒体内容秒开。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的多媒体内容播放系统的场景示意图;
图1b是本申请实施例提供的多媒体内容播放方法的流程示意图;
图2是本申请实施例另一个实施例提供的多媒体内容播放方法的流程示意图;
图3是本申请图2中根据目标视频的预加载数据播放目标视频的流程示意图;
图4是本申请实施例提供的多媒体内容播放装置的示意图;
图5是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供多媒体内容播放方法、装置、计算机设备和存储介质。
其中,该多媒体内容播放装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、或者个人电脑(Personal Computer,PC)等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
在一些实施例中,该多媒体内容播放装置还可以集成在多个电子设备中,比如,多媒体内容播放装置可以集成在多个服务器中,由多个服务器来实现本申请的多媒体内容播放方法。
在一些实施例中,服务器也可以以终端的形式来实现。
参考图1a,在一些实施方式中,提供了一种多媒体内容播放系统,该多媒体内容播放系统可以包括终端1000、服务器2000以及网络3000,其中,在终端1000中集成有多媒体内容播放装置,服务器2000中存储有多个多媒体内容,服务器2000与终端1000可通过网络3000进行数据交互。
其中,终端1000可以通过网络3000从服务器2000获取多个多媒体内容,并将多个多媒体内容存储在终端1000,所述多个多媒体内容包括视频或音频中的至少一个;获取所述多个多媒体内容之后,针对每个所述多媒体内容,创建与所述多媒体内容对应的解码线程;在所述多媒体内容对应的解码线程中,将所述多媒体内容进行解码和缓存,得到每个所述多媒体内容的预加载数据;响应于播放指令,在所述多个多媒体内容中确定目标多媒体内容;根据所述目标多媒体内容的所述预加载数据播放所述目标多媒体内容。网络3000用于服务器2000与终端1000之间的数据传输,网络3000可以是无线网络或者有线网络,比如无线网络为无线局域网(WLAN)、局域网(LAN)、蜂窝网络、2G网络、3G网络、4G网络、5G网络等。
以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
在本实施例中,提供了一种多媒体内容播放方法,如图1b所示,该多媒体内容播放方法的具体流程可以如下:
110、获取多个多媒体内容,所述多个多媒体内容包括视频或音频中的至少一个。
其中,多媒体内容是指人机交互信息交流和传播媒体,可以包括视频、音频,等等。例如,每个多媒体内容可以包括视频或音频中的任意一种,也可以包括视频和音频,等等。
在一些实施方式中,获取多个多媒体内容,可以为从服务器获取多个多媒体内容,也可以为从本地存储区域获取多个多媒体内容,等等。
在一些实施方式中,在步骤110之前还包括:获取预加载指令。步骤110包括,响应于预加载指令,获取多个多媒体内容。其中,预加载指令可以来自于服务器,也可以来自于外部终端系统,等等。例如,当外部终端接收到用户的操作时,生成预加载指令。
在一些实施方式中,每个多媒体内容可以包括视频或音频中的任意一个,多个多媒体内容可以包括视频和音频。在一些实施方式中,多个多媒体内容可以包括视频或音频,例如多个多媒体内容包括视频,即每个多媒体内容均只包括视频。
120、获取所述多个多媒体内容之后,针对每个所述多媒体内容,创建与所述多媒体内容对应的解码线程。
其中,获取所述多个多媒体内容之后可以表明在步骤110中多个多媒体内容已被获取到了本地。在获取多个多媒体内容后,为每个多媒体内容创建对应的解码线程,多个解码线程可以并行对多个多媒体内容进行解码。
在一些实施方式中,从服务器获取多个多媒体内容之可以包括将获取到的多个多媒体内容存储在本地存储区域。在一些实施方式中,从本地存储区域获取多个多媒体内容可以包括获取多个多媒体内容的存储路径。
在一些实施方式中,多个多媒体内容与多个解码线程个数相同,多个多媒体内容与多个解码线程一一对应。
130、在所述多媒体内容对应的解码线程中,将所述多媒体内容进行解码和缓存,得到每个所述多媒体内容的预加载数据。
其中,预加载数据是指对多媒体内容进行解码和缓存后得到的数据,当多媒体内容为视频时,预加载数据可以为预加载的视频数据,当多媒体内容为音频时,预加载数据可以为预加载的音频数据,等等。预加载数据可以为对多媒体内容全部或部分数据解码和缓存后得到的数据。
在将多个多媒体内容进行解码和缓存时,可以同时对多个多媒体内容进行解码和缓存,也可以对部分多媒体内容先进行解码缓存再对其他多媒体内容进行解码和缓存,等等。
在一些实施方式中,对多个多媒体内容同时进行解码和缓存。
在一些实施方式中,所述多媒体内容包括多媒体片段,步骤130可以包括步骤A1和A2,如下:
A1、获取所述多个多媒体内容之后,针对每个所述多媒体内容,从所述多媒体内容中提取所述多媒体内容的多媒体片段。
其中,多媒体片段是指多媒体内容中的部分数据或部分片段。当多媒体内容为视频或音频时,在播放时,可以从目标多媒体内容中已预加载的多媒体片段开始播放。
在一些实施方式中,当所述多个多媒体内容包括视频或音频中的至少一个时,所述多媒体内容由多个帧构成,步骤A1可以包括步骤(1.1),如下:
(1.1)获取所述多个多媒体内容之后,针对每个所述多媒体内容,提取所述多媒体内容中从起始帧至目标帧的所有帧,得到所述多媒体内容的多媒体片段,所述多媒体内容的多媒体片段时长小于所述多媒体内容时长。
其中,当所述多个多媒体内容包括视频或音频中的至少一个时,多媒体内容可以为视频或音频,此时提取视频或音频从起始帧至目标帧的所有帧,即提取了视频或音频开始的一段内容,且由于多媒体片段时长小于多媒体内容时长,得到的多媒体片段只是多媒体内容的一部分。其中,目标帧是指在多媒体内容中与起始帧间隔预设时长的帧,目标帧可以由系统自定义设置,也可以由人工设置。
A2、针对每个所述多媒体内容,在所述多媒体内容对应的解码线程中,对所述多媒体内容的多媒体片段进行解码和缓存,得到每个所述多媒体内容的预加载数据。
在对多媒体内容解码的过程中,只对提取的多媒体片段进行解码和缓存,使要处理的数据量小于解码全部多媒体内容的数据量,加快解码的速度,同时只对多媒体内容的部分数据进行缓存,缓存需要的空间也较小,避免资源耗尽。其中,预加载数据是指对多媒体内容进行解码,并对解码数据进行缓存后的数据。
在一些实施方式中,步骤A2可以包括步骤(2.1),如下:
(2.1)在所述多媒体内容对应的解码线程中,对所述多媒体内容的多媒体片段进行解码,得到所述多媒体内容的预解码数据,并针对每个所述多媒体内容,创建与所述多媒体内容对应的解码缓冲队列,将所述多媒体内容的预解码数据加载在所述多媒体内容对应的解码缓冲队列中,得到所述多媒体内容的预加载数据。
其中,预解码数据是指通过对多媒体内容的多媒体片段解码后得到的解码数据,预加载数据是指缓存在解码缓冲队列中的预解码数据。
创建与所述多媒体内容对应的解码缓冲队列,使在解码后都能将解码得到的预解码存储在每个多媒体内容对应的解码缓冲队列中,在整个解码和缓存过程,每个多媒体内容都有与其单独对应的解码线程和解码缓冲队列,一方面实现了多个多媒体内容解码过程的并行,另一方面将每个多媒体内容的预解码数据单独存储,便于在播放任一多媒体内容时能直接调用其对应的预解码数据,并在该多媒体内容对应的解码线程中对其进行继续解码。其中,每个多媒体内容可以与一个或多个解码缓冲队列对应。
在一些实施方式中,每个多媒体内容与一个解码缓冲队列对应。
140、响应于播放指令,从所述多个多媒体内容中确定目标多媒体内容。
其中,播放指令可以包括控制播放目标多媒体内容的指令。播放指令可以来自于服务器,也可以来自于外部终端系统,也可以来自于本地,等等。确定多个多媒体内容中哪一个多媒体内容为目标多媒体内容,由播放指令携带的信息确定,外部终端系统可以生成多个多媒体内容中任一个多媒体内容的播放指令。例如,在获取多个多媒体内容,并对多个多媒体内容解码和缓存获得预加载数据后,获取播放指令,并播放播放指令对应的目标多媒体内容。播放指令可以为预设的指令,也可以为随机的指令,等等。
在一些实施方式中,在步骤140之前还包括获取播放指令。获取播放指令可以在步骤110~140中任一个步骤之前,在一些实施方式中,获取播放指令在步骤130和140之间。当获取播放指令在步骤130和140之间时,即是在对多个多媒体内容完成解码和缓存后,在任意时间获取到播放指令,根据播放指令对多个多媒体内容中的一个进行播放。
在一些实施方式中,播放指令可以包括控制播放目标多媒体内容的指令以及包含多媒体内容播放顺序的播放指令,在播放目标多媒体内容后,根据多媒体内容播放顺序的播放指令,继续根据多媒体内容播放顺序播放多媒体内容播放顺序中位于目标多媒体内容后的多媒体内容。
在一些实施方式中,步骤140可以包括步骤B1~B3,如下:
B1、获取所述多个多媒体内容的多媒体内容播放顺序。
B2、根据所述多媒体内容播放顺序生成多个多媒体内容的播放指令,所述多个多媒体内容的播放指令包括目标多媒体内容的播放指令。
B3、响应于所述目标多媒体内容的播放指令,根据所述目标多媒体内容的播放指令从所述多个多媒体内容中确定目标多媒体内容。
其中,多媒体内容播放顺序包含了已获取的全部或部分多媒体内容播放的先后次序。多媒体内容播放顺序可以来自于服务器,也可以来自于外部终端系统,也可以来自于本地。步骤B1~B3可以在步骤110~140中任一个步骤之前,在一些实施方式中,步骤B1~B3在步骤130和140之间。多个多媒体内容的播放指令包括目标多媒体内容的播放指令,还可以包括多个多媒体内容中除目标多媒体内容外,其他多媒体内容的播放指令,以及多个多媒体内容的播放顺序。当目标多媒体内容播放完后,可以根据多个多媒体内容的播放顺序播放多媒体内容。其中播放顺序可以为预设的顺序,也可以为随机顺序,等等。
150、根据所述目标多媒体内容的所述预加载数据播放所述目标多媒体内容。
其中,根据所述目标多媒体内容的所述预加载数据播放所述目标多媒体内容可以为播放预加载数据对应的内容,也可以先播放预加载内容对应的内容,当预加载数据对应的内容播完后,播放目标多媒体内容中除预加载内容以外的内容。播放可以为使用电子屏幕播放,也可以通过投影形式播放,等等。
在一些实施方式中,所述多个多媒体内容包括视频,步骤150可以包括步骤C1~C3,如下:
C1、创建渲染线程和渲染缓冲队列,所述渲染线程对应至少一个所述渲染缓冲队列。
C2、在所述渲染线程中,从所述目标多媒体内容对应的所述解码缓冲队列中获取所述目标多媒体内容的所述预加载数据,并将获取到的所述目标多媒体内容的预加载数据加载在所述渲染缓冲队列,并从所述渲染缓冲队列中获取所述目标多媒体内容的所述预加载数据,对获取到的所述目标多媒体内容的所述预加载数据进行渲染,得到渲染后的第一视频片段。
C3、播放所述渲染后的第一视频片段。
其中,步骤C2中获取是指从解码缓冲队列或渲染缓冲队列中取走数据。建立渲染线程和渲染缓冲队列,在接收到播放指令后,将解码缓冲队列中缓存的预加载数据获取到渲染缓冲队列中,使渲染缓冲队列中缓存有解码后的数据,便于渲染线程调用和渲染。在渲染过程中,当渲染缓冲队列中数据被取走渲染时,渲染缓冲队列不断从解码缓冲队列中取走数据,使解码缓冲队列中的数据尽可能的放入渲染缓冲队列,减少读取文件进行解码的时间。
在一些实施方式中,创建一个渲染线程和一个渲染缓冲队列。
在一些实施方式中,所述多个多媒体内容包括视频,步骤150还可以包括步骤C4~C6,如下:
C4、当将获取到的所述目标多媒体内容的预加载数据加载在所述渲染缓冲队列时,在所述目标多媒体内容对应的所述解码线程中,对所述目标多媒体内容中位于所述目标帧后的帧进行解码和缓存,得到所述目标多媒体内容的再加载数据。
其中,再加载数据是指对目标多媒体内容中位于所述目标帧后的帧进行解码,并对解码数据进行缓存后的数据。在预加载数据加载在渲染缓冲队列时,渲染线程同时对从渲染缓冲队列中取走的数据进行渲染,此时解码线程对未解码数据进行解码,使渲染线程和解码线程并行。
在一些实施方式中,步骤C4中在所述解码线程中,对所述目标多媒体内容中位于所述目标帧后的帧进行解码和缓存,得到所述目标多媒体内容的再加载数据可以包括步骤(3.1),如下:
(3.1)在所述目标多媒体内容对应的所述解码线程中,对所述目标多媒体内容中位于所述目标帧后的帧进行解码,得到所述目标多媒体内容的再解码数据,并将所述目标多媒体内容的再解码数据加载在所述目标多媒体内容对应的所述解码缓冲队列中,得到所述目标多媒体内容的再加载数据。
其中,再解码数据是指对目标多媒体内容中位于所述目标帧后的帧进行解码得到的数据。在将预加载数据加载在渲染缓冲队列的过程中,解码缓冲队列中的数据被取走,解码缓冲队列中数据减少,此时对目标多媒体内容中未解码的数据进行解码,并将解码后的数据加载在解码缓冲队列中。
C5、在所述渲染线程中,获取所述目标多媒体内容的再加载数据,并对获取到的所述目标多媒体内容的再加载数据进行渲染,得到渲染后的第二视频片段。
在一些实施方式中,步骤C5可以包括步骤(4.1)和(4.2),如下:
(4.1)当对获取到的所述目标多媒体内容的预加载数据进行渲染时,在所述渲染线程中,从所述目标多媒体内容对应的所述解码缓冲队列中获取所述目标多媒体内容的再加载数据,并将获取到的所述目标多媒体内容的再加载数据加载在所述渲染缓冲队列中。
(4.2)当对获取到的所述目标多媒体内容的预加载数据全部渲染完成时,在所述渲染线程中,从所述渲染缓冲队列中获取所述目标多媒体内容的再加载数据,对获取到的所述目标多媒体内容的再加载数据进行渲染,得到渲染后的第二视频片段。
当在对预加载数据进行渲染时,渲染缓冲队列中的预加载数据被取走渲染,此时渲染缓冲队列持续从解码缓冲队列获取数据,当渲染缓冲队列将解码缓冲队列中预加载数据获取完后,继续从解码缓冲队列中获取再加载数据,并在渲染线程中对再加载数据进行渲染,得到与第一视频片段连续的第二视频片段。
在一些实施方式中,在步骤(4.1)中,当有获取到的所述目标多媒体内容的再加载数据加载在所述渲染缓冲队列中时,渲染缓冲队列为满队列。
C6、当所述渲染后的第一视频片段播放完成时,播放所述渲染后的第二视频片段。
在渲染过程中,依序对目标多媒体内容的预加载数据和再加载数据进行渲染,当第一视频片段在播放且预加载数据渲染完成时,会开始对再加载数据进行渲染,得到第二视频片段,并接续第一视频片段播放,实现对目标多媒体内容的连续播放。
在一些实施方式中,所述多个多媒体内容包括音频,所述预加载数据包括预加载音频数据,步骤150可以包括步骤(5.1)~(5.3),如下:
(5.1)、播放所述目标多媒体内容的预加载音频数据;
(5.2)、当播放所述目标多媒体内容的预加载音频数据时,在所述目标多媒体内容对应的所述解码线程中,对所述目标多媒体内容中位于所述目标帧后的帧进行解码,得到所述目标多媒体内容的再解码数据,并将所述目标多媒体内容的再解码数据加载在所述目标多媒体内容对应的所述解码缓冲队列中,得到所述目标多媒体内容的再加载数据,所述再加载数据包括再加载音频数据;
(5.3)当所述目标多媒体内容的预加载音频数据播放完成时,从所述目标多媒体内容对应的所述解码缓冲队列中获取所述目标多媒体内容的再加载数据,播放所述目标多媒体内容的再加载音频数据。
在将预加载数据加载在渲染缓冲队列的过程中,解码缓冲队列中的数据被取走,解码缓冲队列中数据减少,此时对目标多媒体内容中未解码的数据进行解码,并将解码后的数据加载在解码缓冲队列中。在播放完预加载音频数据后,播放再加载音频数据,实现对目标多媒体内容的连续播放。
在一些实施方式中,上述所有步骤中,渲染缓冲队列和解码缓冲队列在加载满时,都会停止获取数据,当有数据被取出后,可以继续获取数据。且在上述步骤中,步骤之间没有固定的顺序。
在一些实施方式中,在步骤150之后还可以包括步骤160,如下:
160、响应于切换播放指令,从所述多个多媒体内容中重新确定新的目标多媒体内容,根据所述新的目标多媒体内容的所述预加载数据播放所述新的目标多媒体内容。
在一些实施方式中,步骤160还可以包括步骤D1~D3,如下:
D1、在播放所述目标多媒体内容时,响应于切换播放指令,停止播放所述目标多媒体内容;
D2、根据所述切换播放指令从所述多个多媒体内容中重新确定新的目标多媒体内容;
D3、根据所述新的目标多媒体内容的所述预加载数据播放所述新的目标多媒体内容。
在播放目标多媒体内容时,当接收到切换播放指令时,根据切换播放指令确定新的目标多媒体内容并播放。切换播放指令可以包括控制播放新的目标多媒体内容的指令。切换播放指令可以来自于服务器,也可以来自于外部终端系统,也可以来自于本地,等等。确定多个多媒体内容中哪一个多媒体内容为新的目标多媒体内容,由切换播放指令携带的信息确定,外部终端系统可以生成多个多媒体内容中播放任一个多媒体内容的切换播放指令。切换播放指令可以为预设的指令,也可以为随机的指令,等等。步骤160中新的目标多媒体内容的解码、缓冲和播放方法可以采用与目标多媒体内容的解码、缓冲和播放方法。
在一些实施方式中,步骤D1还包括:在播放所述目标多媒体内容时,获取切换播放指令,响应于切换播放指令,停止播放所述目标多媒体内容。
本申请实施例提供的多媒体内容播放方案可以应用在各种密室逃脱场景中。比如,以多人闯关密室为例,在密室内设计了要播放多个与密室剧情相关的多媒体内容,当多名玩家在推门进入密室时,玩家的推门行为触发预加载指令,响应于预加载指令,获取多个多媒体内容,获取所述多个多媒体内容之后,针对每个所述多媒体内容,创建与所述多媒体内容对应的解码线程,在所述多媒体内容对应的解码线程中,将所述多媒体内容进行解码和缓存,得到每个所述多媒体内容的预加载数据,响应于播放指令,在所述多个多媒体内容中确定目标多媒体内容,根据所述目标多媒体内容的所述预加载数据播放所述目标多媒体内容。采用本申请实施例提供的方案能够在玩家进入密室时,对多个本地多媒体内容进行预加载,当要开始播放目标多媒体内容时,能够获取预加载数据进行播放,实现目标多媒体内容的秒开。
由上可知,本申请实施例可以在收到多媒体内容播放指令前,对多个本地多媒体内容进行预加载,避免多媒体内容播放开始前,解码加载占用时间,实现多媒体内容秒开。
根据上述实施例所描述的方法,以下将作进一步详细说明。
在本实施例中,将以在密室逃脱场景中,以树莓派作为载体播放多个视频为例,其中在树莓派上集成有多媒体内容播放装置,对本申请实施例的方法进行详细说明。
如图2和图3所示,一种多媒体内容播放方法具体流程如下:
210、获取预加载指令。
在密室逃脱场景中,在密室内设计了以树莓派作为载体播放多个视频,当玩家进入密室时,玩家行为触发预加载指令,例如玩家的推门行为触发预加载指令。树莓派上的多媒体内容播放装置获取预加载指令。玩家行为包括但不限于在密室内的操作行为,进入密室的行为,等等。也可以通过后台工作人员触发预加载指令。
220、响应于预加载指令,获取多个视频。
在获取预加载指令后,多媒体内容播放装置获取存储在本地或服务器上的多个视频,多个视频可以包括故事背景、场景介绍、场景展示等等。例如,获取存储在服务器上的多个视频,并将获取到的多个视频存储在本地。
230、获取所述多个视频之后,针对每个所述视频,创建与所述视频对应的解码线程。
多媒体内容播放装置创建多个解码线程,分别对多个视频解码。在一些实施方式中,多个视频与多个解码线程个数相同。例如,在获取到多个视频后,建立与多个视频个数相同的解码线程,且视频和解码线程一一对应。
240、所述视频包括子视频片段,所述视频由多个帧构成,针对每个所述视频,提取所述视频中从起始帧至目标帧的所有帧,得到所述视频的子视频片段,所述视频的子视频片段时长小于所述视频时长。
多媒体内容播放装置通过提取每个视频中从起始帧至目标帧的所有帧,分别获得每个视频的子视频片段,得到的多媒体片段只是每个视频的一部分,大大减少要解码和缓存的数据量。例如,在一段5min的视频中,以第60s的帧为目标帧,提取从起始帧至第60s的所有帧,即提取了前60s的视频片段作为子视频片段。
250、针对每个所述视频,在所述视频对应的解码线程中,对所述视频的所述子视频片段进行解码和缓存,得到所述视频的预加载数据。
在一些实施方式中,步骤260可以包括:在所述视频对应的解码线程中,对所述视频的所述子视频片段进行解码,得到所述视频的预解码数据,并针对每个所述视频,创建与所述视频对应的解码缓冲队列,将所述视频的预解码数据加载在所述视频对应的所述解码缓冲队列中,得到所述视频的预加载数据。
在一些实施方式中,对多个视频同时进行解码和缓存。多媒体内容播放装置通过建立的多个解码线程,对获得的多个子视频片段同时进行解码,得到每个视频的子视频片段的预解码数据,并将每个视频的预解码数据分别加载在其对应的解码缓冲队列中。例如,针对某个视频建立先进先出的解码缓冲队列,在对子视频片段解码时,依照解码的先后顺序将得到的预解码数据存储在解码缓冲队列中,得到预加载数据。其中针对每个视频,创建与视频对应的解码缓冲队列可以与步骤230创建解码线程的过程同时进行。
260、获取播放指令,响应于所述播放指令,从所述多个视频中确定目标视频。
播放指令可以来自于服务器,也可以来自于外部终端系统,也可以来自于本地,等等。外部终端系统可以为设置在密室中的机关对应的系统。多个视频可以与密室中的多个机关对应。例如,玩家在密室中触发某个机关后,该机关对应一个视频,此时该机关对应的系统生成播放其对应视频的播放指令,并将播放指令发送至多媒体内容播放装置,多媒体内容播放装置获取到播放指令。
在前一步骤中玩家触发机关后,多媒体内容播放装置获取到播放指令后,根据播放指令从多个视频中确定与玩家所触发机关对应的视频为目标视频。
270、根据所述目标视频的所述预加载数据播放所述目标视频。
在一些实施方式中,步骤270可以包括步骤271~279,如下:
271、创建渲染线程和渲染缓冲队列,所述渲染线程对应至少一个所述渲染缓冲队列。
272、在所述渲染线程中,从所述视频对应所述解码缓冲队列中获取所述目标视频的预加载数据。
273、将获取到的所述目标视频的预加载数据加载在所述渲染缓冲队列中。
274、从所述渲染缓冲队列中获取所述目标视频的预加载数据,对获取到的所述目标视频的预加载数据进行渲染,得到渲染后的第一视频片段。
在一些实施方式中,创建一个渲染线程和一个渲染缓冲队列。
在接收到播放指令后,在渲染线程中,按照先进先出规则将预加载数据从解码缓冲队列预加载到渲染缓冲队列中,并从渲染缓冲队列中获取数据进行渲染,得到渲染后的第一视频片段。例如,获取到了多个视频,包括:视频1、视频2以及视频3,其中视频2为一段5min的视频,分别提取视频1、视频2以及视频3前60s的片段作为每个视频对应的子视频片段,在分别对视频1、视频2以及视频3的子视频片段进行解码和缓存后得到预加载数据1,预加载数据2以及预加载数据3,在获取到播放视频3的播放指令后,获取缓存在视频3对应的解码缓冲队列中的预加载数据,并将获取到的视频3的预加载数据存储在渲染缓冲队列中,同时从渲染缓冲队列中获取视频3的预加载数据,并对其渲染后得到视频3前60s的片段。
275、当将获取到的所述目标视频的预加载数据加载在所述渲染缓冲队列时,在所述目标视频对应的解码线程中,对所述目标视频中位于所述目标帧后的帧进行解码,得到所述目标视频的再解码数据,并将所述目标视频的再解码数据加载在所述解码缓冲队列中,得到所述目标视频的再加载数据。
当将目标视频前60s的预加载数据加载在渲染缓冲队列时,对目标视频第61s至第5min的片段进行解码和缓存,得到再加载数据。
276、当对获取到的所述目标视频的预加载数据进行渲染时,在所述渲染线程中,从所述目标视频对应的解码缓冲队列中获取所述目标视频的再加载数据,并将获取到的所述目标视频的再加载数据加载在所述渲染缓冲队列中。
在目标视频前60s的预加载数据加载在渲染缓冲队列时,渲染线程同时对从渲染缓冲队列中取走的数据进行渲染,此时解码线程对第61s至第5min的片段进行解码,使渲染线程和解码线程并行。在队列中,当在把队首的第一个元素出队时,把另一个元素加入到队尾。
277、播放所述渲染后的第一视频片段。
278、当对获取到的所述目标视频的预加载数据全部渲染完成时,在所述渲染线程中,从所述渲染缓冲队列中获取所述目标视频的再加载数据,对获取到的所述目标视频的再加载数据进行渲染,得到渲染后的第二视频片段。
当在对视频前60s的预加载数据进行渲染时,渲染缓冲队列中的前一步骤中预加载数据被取走渲染,此时渲染缓冲队列持续从解码缓冲队列获取数据,当渲染缓冲队列将解码缓冲队列中视频前60s的预加载数据获取完后,继续从解码缓冲队列中获取再加载数据,并在渲染线程中第61s至第5min的再加载数据进行渲染,得到第61s至第5min的渲染片段。
279、当所述渲染后的第一视频片段播放完成时,播放所述渲染后的第二视频片段。
在渲染过程中,依序对视频前60s的预加载数据和第61s至第5min的再加载数据进行渲染,当第一视频片段在播放且前60s的预加载数据渲染完成时,会开始对第61s至第5min的再加载数据进行渲染,得到第61s至第5min的渲染片段,并接续前60s的渲染片段播放,实现对视频的连续播放。
需要说明的是,上述步骤271~279没有固定的顺序。上述解码缓冲队列和渲染缓冲队列均为先进先出队列。
280、获取切换播放指令,响应于切换播放指令,播放新的目标多媒体内容。
在一些实施方式中,在步骤280可以包括步骤E1~E3,如下:
E1、在播放所述目标视频时,响应于切换播放指令,停止播放所述目标视频。
E2、根据所述切换播放指令从所述多个视频中重新确定新的目标视频。
E3、根据所述新的目标视频的所述预加载数据播放所述新的目标视频。
在一些实施方式中,切换播放指令来自于外部终端系统,外部终端系统可以为设置在密室中的机关对应的系统。多个视频可以与密室中的多个机关对应。例如,在当前有视频播放时,玩家在密室中触发某个机关后,该机关对应另一个视频,此时该机关对应的系统生成播放其对应视频的切换播放指令,并将切换播放指令发送至多媒体内容播放装置,多媒体内容播放装置获取到切换播放指令,并根据切换播放指令确定下一播放视频并播放。
本申请实施例提供的多媒体内容播放方案结合密室逃脱中的机关设置和玩家在密室逃脱中的行为,以玩家行为作为触发预加载指令的条件,并将玩家在密室中与机关的互动作为触发播放指令和切换播放指令的条件,将本申请实施例提供的多媒体内容播放方案与密室逃脱场景紧密结合。且通过在视频播放前,针对每个所述视频,创建与所述视频对应的解码线程和解码缓冲队列,将所述视频的预解码数据加载在所述解码缓冲队列中,得到所述视频的预加载数据,避免目标视频播放开始前,解码加载占用时间,实现目标视频秒开。此外,在获取到播放指令后,可以在已有解码线程和解码缓冲队列基础上对目标视频继续解码和缓存,同时通过建立渲染线程和渲染缓冲队列,一方面渲染线程和解码线程能够并行对目标视频的预加载数据和其他数据进行处理,另一方面利用解码缓冲队列尽可能多的保存解码数据,利用渲染缓冲队列尽可能多的将数据存入渲染缓冲队列,以减少读取视频文件进行解码的时间,也能大大提高视频播放的流畅性。
为了更好地实施以上方法,本申请实施例还提供一种多媒体内容播放装置,该多媒体内容播放装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
比如,在本实施例中,将以多媒体内容播放装置具体集成在终端为例,对本申请实施例的方法进行详细说明。
例如,如图4所示,该多媒体内容播放装置可以包括获取单元310、第一预加载单元320、第二预加载单元330、响应单元340以及播放单元350。其中:
(一)获取单元310:
用于获取多个多媒体内容,所述多个多媒体内容包括视频或音频中的至少一个。
(二)第一预加载单元320:
用于获取所述多个多媒体内容之后,针对每个所述多媒体内容,创建与所述多媒体内容对应的解码线程。
(三)第二预加载单元330:
用于在所述多媒体内容对应的解码线程中,将所述多媒体内容进行解码和缓存,得到每个所述多媒体内容的预加载数据。
在一些实施方式中,所述多媒体内容包括多媒体片段,第二预加载单元330可以用于步骤a1和a2,如下:
a1、获取所述多个多媒体内容之后,针对每个所述多媒体内容,从所述多媒体内容中提取所述多媒体内容的多媒体片段;
在一些实施方式中,当所述多个多媒体内容包括视频或音频中的至少一个时,所述多媒体内容由多个帧构成,步骤a1可以包括步骤(6.1),如下:
(6.1)获取所述多个多媒体内容之后,针对每个所述多媒体内容,提取所述多媒体内容中从起始帧至目标帧的所有帧,得到所述多媒体内容的多媒体片段,所述多媒体内容的多媒体片段时长小于所述多媒体内容时长;
a2、在所述多媒体内容对应的解码线程中,对所述多媒体片段进行解码和缓存,得到每个所述多媒体内容的预加载数据。
在一些实施方式中,步骤a2可以包括步骤(7.1),如下:
(7.1)在所述多媒体内容对应的解码线程中,对所述多媒体内容的多媒体片段进行解码,得到所述多媒体内容的预解码数据,并针对每个所述多媒体内容,创建与所述多媒体内容对应的解码缓冲队列,将所述多媒体内容的预解码数据加载在所述多媒体内容对应的解码缓冲队列中,得到所述多媒体内容的预加载数据。
(四)响应单元340:
用于响应于播放指令,从所述多个多媒体内容中确定目标多媒体内容。
在一些实施方式中,响应单元340可以用于步骤b1~b3,如下:
b1、获取所述多个多媒体内容的多媒体内容播放顺序;
b2、根据所述多媒体内容播放顺序生成多个多媒体内容的播放指令,所述多个多媒体内容的播放指令包括目标多媒体内容的播放指令;
b3、响应于所述目标多媒体内容的播放指令,根据所述目标多媒体内容的播放指令从所述多个多媒体内容中确定目标多媒体内容。
(五)播放单元350:
用于根据所述目标多媒体内容的所述预加载数据播放所述目标多媒体内容。
在一些实施方式中,所述多个多媒体内容包括视频,播放单元350可以用于步骤c1~c3,如下:
c1、创建渲染线程和渲染缓冲队列,所述渲染线程对应至少一个所述渲染缓冲队列。
c2、在所述渲染线程中,从所述目标多媒体内容对应所述解码缓冲队列中获取所述目标多媒体内容的预加载数据,并将获取到的所述目标多媒体内容的所述预加载数据加载在所述渲染缓冲队列,并从所述渲染缓冲队列中获取所述目标多媒体内容对应预加载数据,对获取到的所述目标多媒体内容对应所述预加载数据进行渲染,得到渲染后的第一视频片段。
c3、播放所述渲染后的第一视频片段。
在一些实施方式中,所述多个多媒体内容包括视频,播放单元350还可以用于步骤c4~c6,如下:
c4、当将获取到的所述目标多媒体内容的预加载数据加载在所述渲染缓冲队列时,在所述目标多媒体内容对应的所述解码线程中,对所述目标多媒体内容中位于所述目标帧后的帧进行解码和缓存,得到所述目标多媒体内容的再加载数据。
在一些实施方式中,步骤c4中在所述解码线程中,对所述目标多媒体内容中位于所述目标帧后的帧进行解码和缓存,得到所述目标多媒体内容的再加载数据可以包括步骤(8.1),如下:
(8.1)在所述目标多媒体内容对应的所述解码线程中,对所述目标多媒体内容中位于所述目标帧后的帧进行解码,得到所述目标多媒体内容的再解码数据,并将所述目标多媒体内容的再解码数据加载在所述目标多媒体内容对应的所述解码缓冲队列中,得到所述目标多媒体内容的再加载数据。
c5、在所述渲染线程中,获取所述目标多媒体内容的再加载数据,并对获取到的所述目标多媒体内容的再加载数据进行渲染,得到渲染后的第二视频片段。
在一些实施方式中,步骤c5可以包括步骤(9.1)和(9.2),如下:
(9.1)当对获取到的所述目标多媒体内容的预加载数据进行渲染时,在所述渲染线程中,从所述目标多媒体内容对应的所述解码缓冲队列中获取所述目标多媒体内容的再加载数据,并将获取到的所述目标多媒体内容的再加载数据加载在所述渲染缓冲队列中;
(9.2)当对获取到的所述目标多媒体内容的预加载数据全部渲染完成时,在所述渲染线程中,从所述渲染缓冲队列中获取所述目标多媒体内容的再加载数据,对获取到的所述目标多媒体内容的再加载数据进行渲染,得到渲染后的第二视频片段。
c6、当所述渲染后的第一视频片段播放完成时,播放所述渲染后的第二视频片段。
在一些实施方式中,所述多个多媒体内容包括音频,所述预加载数据包括预加载音频数据,播放单元350可以用于步骤(10.1)~(10.3),如下:
(10.1)、播放所述目标多媒体内容的预加载音频数据;
(10.2)、当播放所述目标多媒体内容的预加载音频数据时,在所述目标多媒体内容对应的所述解码线程中,对所述目标多媒体内容中位于所述目标帧后的帧进行解码,得到所述目标多媒体内容的再解码数据,并将所述目标多媒体内容的再解码数据加载在所述目标多媒体内容对应的所述解码缓冲队列中,得到所述目标多媒体内容的再加载数据,所述再加载数据包括再加载音频数据;
(10.3)当所述目标多媒体内容的预加载音频数据播放完成时,从所述解码缓冲队列中获取所述目标多媒体内容的再加载数据,播放所述目标多媒体内容的再加载音频数据。
在一些实施方式中,在响应于目标播放指令,根据所述目标播放指令从所述多个多媒体内容中确定目标多媒体内容之后,播放单元350还可以用于步骤d1~d3,如下:
d1、在播放所述目标多媒体内容时,响应于切换播放指令,停止播放所述目标多媒体内容;
d2、根据所述切换播放指令从所述多个多媒体内容中重新确定新的目标多媒体内容;
d3、根据所述新的目标多媒体内容的所述预加载数据播放所述新的目标多媒体内容。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本实施例的多媒体内容播放装置可以获取多个多媒体内容,所述多个多媒体内容包括视频或音频中的至少一个;获取所述多个多媒体内容之后,针对每个所述多媒体内容,创建与所述多媒体内容对应的解码线程;在所述多媒体内容对应的解码线程中,将所述多媒体内容进行解码和缓存,得到每个所述多媒体内容的预加载数据;响应于播放指令,从所述多个多媒体内容中确定目标多媒体内容;根据所述目标多媒体内容的所述预加载数据播放所述目标多媒体内容。从而,本申请实施例可以在收到多媒体内容播放指令前,对多个本地多媒体内容进行预加载,避免多媒体内容播放开始前,解码加载占用时间,实现多媒体内容秒开。
相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端或服务器,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机、个人数字助理(Personal Digital Assistant,PDA)等终端设备。
如图5所示,图5为本申请实施例提供的计算机设备的结构示意图,该计算机设备400包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器401是计算机设备400的控制中心,利用各种接口和线路连接整个计算机设备400的各个部分,通过运行或加载存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备400的各种功能和处理数据,从而对计算机设备400进行整体监控。
在本申请实施例中,计算机设备400中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能:
获取多个多媒体内容,所述多个多媒体内容包括视频或音频中的至少一个;获取所述多个多媒体内容之后,针对每个所述多媒体内容,创建与所述多媒体内容对应的解码线程;在所述多媒体内容对应的解码线程中,将所述多媒体内容进行解码和缓存,得到每个所述多媒体内容的预加载数据;响应于播放指令,从所述多个多媒体内容中确定目标多媒体内容;根据所述目标多媒体内容的所述预加载数据播放所述目标多媒体内容。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图5所示,计算机设备400还包括:触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407。其中,处理器401分别与触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407电性连接。本领域技术人员可以理解,图5中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏403可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏403可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、多媒体内容和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器401,并能接收处理器401发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器401以确定触摸事件的类型,随后处理器401根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏403而实现输入和输出功能。但是在某些实施例中,触控面板与显示面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏403也可以作为输入单元406的一部分实现输入功能。
射频电路404可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路405可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路405可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路405接收后转换为音频数据,再将音频数据输出处理器401处理后,经射频电路404以发送给比如另一计算机设备,或者将音频数据输出至存储器402以便进一步处理。音频电路405还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源407用于给计算机设备400的各个部件供电。可选的,电源407可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源407还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图5中未示出,计算机设备400还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的计算机设备可以获取多个多媒体内容,所述多个多媒体内容包括视频或音频中的至少一个;获取所述多个多媒体内容之后,针对每个所述多媒体内容,创建与所述多媒体内容对应的解码线程;在所述多媒体内容对应的解码线程中,将所述多媒体内容进行解码和缓存,得到每个所述多媒体内容的预加载数据;响应于播放指令,从所述多个多媒体内容中确定目标多媒体内容;根据所述目标多媒体内容的所述预加载数据播放所述目标多媒体内容。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种多媒体内容播放方法中的步骤。例如,该计算机程序可以执行如下步骤:
获取多个多媒体内容,所述多个多媒体内容包括视频或音频中的至少一个;获取所述多个多媒体内容之后,针对每个所述多媒体内容,创建与所述多媒体内容对应的解码线程;在所述多媒体内容对应的解码线程中,将所述多媒体内容进行解码和缓存,得到每个所述多媒体内容的预加载数据;响应于播放指令,从所述多个多媒体内容中确定目标多媒体内容;根据所述目标多媒体内容的所述预加载数据播放所述目标多媒体内容。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种多媒体内容播放方法中的步骤,因此,可以实现本申请实施例所提供的任一种多媒体内容播放方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种多媒体内容播放方法、装置、存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种多媒体内容播放方法,其特征在于,包括:
获取多个多媒体内容,所述多个多媒体内容包括视频或音频中的至少一个;
获取所述多个多媒体内容之后,针对每个所述多媒体内容,创建与所述多媒体内容对应的解码线程,其中,每个多媒体内容对应一解码缓冲队列;
并行地在每个所述多媒体内容对应的解码线程中,将所述多媒体内容进行解码,得到每个所述多媒体内容的预解码数据;
将每个所述多媒体内容的预解码数据,存储至每个多媒体内容对应的解码缓冲队列中,得到每个所述多媒体内容的预加载数据;
响应于播放指令,从所述多个多媒体内容中确定目标多媒体内容;
在渲染线程中,将所述目标多媒体内容对应的缓存队列中的预加载数据,加载至所述渲染线程的渲染缓冲队列中;
通过所述渲染线程从所述渲染缓冲队列中获取预加载数据,并根据获取的预加载数据播放所述目标多媒体内容的第一视频片段。
2.如权利要求1所述的多媒体内容播放方法,其特征在于,所述多媒体内容包括多媒体片段,在所述多媒体内容对应的解码线程中,将所述多媒体内容进行解码和缓存,得到每个所述多媒体内容的预加载数据,包括:
获取所述多个多媒体内容之后,针对每个所述多媒体内容,从所述多媒体内容中提取所述多媒体内容的多媒体片段;
针对每个所述多媒体内容,在所述多媒体内容对应的解码线程中,对所述多媒体内容的多媒体片段进行解码和缓存,得到每个所述多媒体内容的预加载数据。
3.如权利要求2所述的多媒体内容播放方法,其特征在于,所述多媒体内容由多个帧构成,所述获取所述多个多媒体内容之后,针对每个所述多媒体内容,从所述多媒体内容中提取多媒体片段,包括:
获取所述多个多媒体内容之后,针对每个所述多媒体内容,提取所述多媒体内容中从起始帧至目标帧的所有帧,得到所述多媒体内容的多媒体片段,所述多媒体内容的多媒体片段时长小于所述多媒体内容时长。
4.如权利要求3所述的多媒体内容播放方法,其特征在于,所述多个多媒体内容包括视频,根据所述目标多媒体内容的所述预加载数据播放所述目标多媒体内容,包括:
创建渲染线程和渲染缓冲队列,所述渲染线程对应至少一个所述渲染缓冲队列;
在所述渲染线程中,从所述目标多媒体内容对应的所述解码缓冲队列中获取所述目标多媒体内容的所述预加载数据,并将获取到的所述目标多媒体内容的预加载数据加载在所述渲染缓冲队列,并从所述渲染缓冲队列中获取所述目标多媒体内容的所述预加载数据,对获取到的所述目标多媒体内容的所述预加载数据进行渲染,得到渲染后的第一视频片段;
播放所述渲染后的第一视频片段。
5.如权利要求4所述的多媒体内容播放方法,其特征在于,根据所述目标多媒体内容的所述预加载数据播放所述目标多媒体内容,还包括:
当将获取到的所述目标多媒体内容的预加载数据加载在所述渲染缓冲队列时,在所述目标多媒体内容对应的所述解码线程中,对所述目标多媒体内容中位于所述目标帧后的帧进行解码和缓存,得到所述目标多媒体内容的再加载数据;
在所述渲染线程中,获取所述目标多媒体内容的再加载数据,并对获取到的所述目标多媒体内容的再加载数据进行渲染,得到渲染后的第二视频片段;
当所述渲染后的第一视频片段播放完成时,播放所述渲染后的第二视频片段。
6.如权利要求5所述的多媒体内容播放方法,其特征在于,在所述目标多媒体内容对应的解码线程中,对所述目标多媒体内容中位于所述目标帧后的帧进行解码和缓存,得到所述目标多媒体内容的再加载数据,包括:
在所述目标多媒体内容对应的所述解码线程中,对所述目标多媒体内容中位于所述目标帧后的帧进行解码,得到所述目标多媒体内容的再解码数据,并将所述目标多媒体内容的再解码数据加载在所述目标多媒体内容对应的所述解码缓冲队列中,得到所述目标多媒体内容的再加载数据。
7.如权利要求6所述的多媒体内容播放方法,其特征在于,所述在所述渲染线程中,获取所述目标多媒体内容的再加载数据,并对获取到的所述目标多媒体内容的再加载数据进行渲染,得到渲染后的第二视频片段,包括:
当对获取到的所述目标多媒体内容的预加载数据进行渲染时,在所述渲染线程中,从所述目标多媒体内容对应的所述解码缓冲队列中获取所述目标多媒体内容的再加载数据,并将获取到的所述目标多媒体内容的再加载数据加载在所述渲染缓冲队列中;
当对获取到的所述目标多媒体内容的预加载数据全部渲染完成时,在所述渲染线程中,从所述渲染缓冲队列中获取所述目标多媒体内容的再加载数据,对获取到的所述目标多媒体内容的再加载数据进行渲染,得到渲染后的第二视频片段。
8.如权利要求3所述的多媒体内容播放方法,其特征在于,所述多个多媒体内容包括音频,所述预加载数据包括预加载音频数据,根据所述目标多媒体内容的所述预加载数据播放所述目标多媒体内容,包括:
播放所述目标多媒体内容的预加载音频数据;
当播放所述目标多媒体内容的预加载音频数据时,在所述目标多媒体内容对应的所述解码线程中,对所述目标多媒体内容中位于所述目标帧后的帧进行解码,得到所述目标多媒体内容的再解码数据,并将所述目标多媒体内容的再解码数据加载在所述目标多媒体内容对应的所述解码缓冲队列中,得到所述目标多媒体内容的再加载数据,所述再加载数据包括再加载音频数据;
当所述目标多媒体内容的预加载音频数据播放完成时,从所述目标多媒体内容对应的所述解码缓冲队列中获取所述目标多媒体内容的再加载数据,播放所述目标多媒体内容的再加载音频数据。
9.如权利要求1所述的多媒体内容播放方法,其特征在于,所述响应于播放指令,从所述多个多媒体内容中确定目标多媒体内容,包括:
获取所述多个多媒体内容的多媒体内容播放顺序;
根据所述多媒体内容播放顺序生成多个多媒体内容的播放指令,所述多个多媒体内容的播放指令包括目标多媒体内容的播放指令;
响应于所述目标多媒体内容的播放指令,根据所述目标多媒体内容的播放指令从所述多个多媒体内容中确定目标多媒体内容。
10.如权利要求1~9任一项所述的多媒体内容播放方法,其特征在于,根据所述目标多媒体内容的所述预加载数据播放所述目标多媒体内容之后,包括:
在播放所述目标多媒体内容时,响应于切换播放指令,停止播放所述目标多媒体内容;
根据所述切换播放指令从所述多个多媒体内容中重新确定新的目标多媒体内容;
根据所述新的目标多媒体内容的所述预加载数据播放所述新的目标多媒体内容。
11.一种多媒体内容播放装置,其特征在于,包括:
获取单元,用于获取多个多媒体内容,所述多个多媒体内容包括视频或音频中的至少一个;
第一预加载单元,用于获取所述多个多媒体内容之后,针对每个所述多媒体内容,创建与所述多媒体内容对应的解码线程,其中,每个多媒体内容对应一解码缓冲队列;
第二预加载单元,用于并行地在每个所述多媒体内容对应的解码线程中,将所述多媒体内容进行解码和缓存,得到每个所述多媒体内容的预解码数据;将每个所述多媒体内容的预解码数据存储至每个多媒体内容对应的解码缓冲队列,得到每个所述多媒体内容的预加载数据;
响应单元,用于响应于播放指令,从所述多个多媒体内容中确定目标多媒体内容;
播放单元,用于在渲染线程中,将所述目标多媒体内容对应的缓存队列中的预加载数据,加载至所述渲染线程的渲染缓冲队列中;通过所述渲染线程从所述渲染缓冲队列中获取预加载数据,并根据获取的预加载数据播放所述目标多媒体内容的第一视频片段。
12.一种计算机设备,其特征在于,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行如权利要求1~10任一项所述的多媒体内容播放方法中的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1~10任一项所述的多媒体内容播放方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111062147.XA CN113825014B (zh) | 2021-09-10 | 多媒体内容播放方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111062147.XA CN113825014B (zh) | 2021-09-10 | 多媒体内容播放方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113825014A CN113825014A (zh) | 2021-12-21 |
CN113825014B true CN113825014B (zh) | 2024-06-11 |
Family
ID=
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011038565A1 (zh) * | 2009-09-29 | 2011-04-07 | 深圳市融创天下科技发展有限公司 | 一种流媒体音视频同步方法及系统 |
CN105430509A (zh) * | 2015-11-27 | 2016-03-23 | 北京奇艺世纪科技有限公司 | 一种多媒体文件播放方法及装置 |
CN109803179A (zh) * | 2018-12-25 | 2019-05-24 | 北京凯视达科技有限公司 | 视频自动播放方法、装置、存储介质及电子设备 |
CN109996104A (zh) * | 2019-04-22 | 2019-07-09 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、装置及电子设备 |
CN110147512A (zh) * | 2019-05-16 | 2019-08-20 | 腾讯科技(深圳)有限公司 | 播放器预加载、运行方法、装置、设备及介质 |
CN110430461A (zh) * | 2019-08-28 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 一种控制视频播放的方法、装置及视频播放设备 |
WO2020019140A1 (zh) * | 2018-07-23 | 2020-01-30 | 深圳市大疆创新科技有限公司 | 视频处理方法、终端设备、机器可读存储介质 |
CN111726694A (zh) * | 2020-06-30 | 2020-09-29 | 北京奇艺世纪科技有限公司 | 互动视频的恢复播放方法、装置、电子设备及存储介质 |
CN111866549A (zh) * | 2019-04-29 | 2020-10-30 | 腾讯科技(深圳)有限公司 | 一种视频处理方法及装置、终端、存储介质 |
CN112203111A (zh) * | 2020-09-29 | 2021-01-08 | 北京达佳互联信息技术有限公司 | 多媒体资源的预加载方法、装置、电子设备及存储介质 |
CN112386916A (zh) * | 2020-12-01 | 2021-02-23 | 网易(杭州)网络有限公司 | 资源加载的方法、装置及电子设备 |
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011038565A1 (zh) * | 2009-09-29 | 2011-04-07 | 深圳市融创天下科技发展有限公司 | 一种流媒体音视频同步方法及系统 |
CN105430509A (zh) * | 2015-11-27 | 2016-03-23 | 北京奇艺世纪科技有限公司 | 一种多媒体文件播放方法及装置 |
WO2020019140A1 (zh) * | 2018-07-23 | 2020-01-30 | 深圳市大疆创新科技有限公司 | 视频处理方法、终端设备、机器可读存储介质 |
CN109803179A (zh) * | 2018-12-25 | 2019-05-24 | 北京凯视达科技有限公司 | 视频自动播放方法、装置、存储介质及电子设备 |
CN109996104A (zh) * | 2019-04-22 | 2019-07-09 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、装置及电子设备 |
CN111866549A (zh) * | 2019-04-29 | 2020-10-30 | 腾讯科技(深圳)有限公司 | 一种视频处理方法及装置、终端、存储介质 |
CN110147512A (zh) * | 2019-05-16 | 2019-08-20 | 腾讯科技(深圳)有限公司 | 播放器预加载、运行方法、装置、设备及介质 |
CN110430461A (zh) * | 2019-08-28 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 一种控制视频播放的方法、装置及视频播放设备 |
CN111726694A (zh) * | 2020-06-30 | 2020-09-29 | 北京奇艺世纪科技有限公司 | 互动视频的恢复播放方法、装置、电子设备及存储介质 |
CN112203111A (zh) * | 2020-09-29 | 2021-01-08 | 北京达佳互联信息技术有限公司 | 多媒体资源的预加载方法、装置、电子设备及存储介质 |
CN112386916A (zh) * | 2020-12-01 | 2021-02-23 | 网易(杭州)网络有限公司 | 资源加载的方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109640188B (zh) | 视频预览方法、装置、电子设备及计算机可读存储介质 | |
CN108235086B (zh) | 视频播放控制方法、装置及相应的终端 | |
CN111565334B (zh) | 直播回放方法、装置、终端、服务器及存储介质 | |
US10042420B2 (en) | Gaze-aware control of multi-screen experience | |
CN114518817B (zh) | 一种显示方法、电子设备及存储介质 | |
CN110996134B (zh) | 视频播放方法、装置及存储介质 | |
WO2020248909A1 (zh) | 视频解码方法、装置、计算机设备及存储介质 | |
WO2020015334A1 (zh) | 视频处理方法、装置、终端设备及存储介质 | |
RU2619089C2 (ru) | Способ и устройство для воспроизведения множества видео | |
WO2022199426A1 (zh) | 视频的展示方法、装置、电子设备和存储介质 | |
CN113259744B (zh) | 视频的展示方法、装置、设备及介质 | |
KR20210152396A (ko) | 비디오 처리 방법, 장치, 전자 기기 및 기록 매체 | |
WO2023109184A1 (zh) | 刷新率的设置方法及相关设备 | |
US20220256230A1 (en) | Method and apparatus for video playing | |
CN112291615A (zh) | 音频输出方法、音频输出装置 | |
CN109599133B (zh) | 语言音轨的切换方法、装置、计算机设备及存储介质 | |
CN113825014B (zh) | 多媒体内容播放方法、装置、计算机设备和存储介质 | |
CN113825014A (zh) | 多媒体内容播放方法、装置、计算机设备和存储介质 | |
CN114786030A (zh) | 主播画面显示方法、装置、电子设备和存储介质 | |
US20220191556A1 (en) | Method for processing live broadcast information, electronic device and storage medium | |
CN115469816A (zh) | 存储器的读写切换方法、装置、设备及存储介质 | |
CN109859293B (zh) | 用于安卓设备的动画多状态切换方法和装置 | |
CN114327714A (zh) | 应用程序控制方法、装置、设备及介质 | |
CN108174308B (zh) | 视频播放方法、视频播放装置、存储介质及电子设备 | |
CN113778370A (zh) | 一种语音消息播放方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |