一种媒体文件的播放方法及装置、电子设备与流程

文档序号:12949500阅读:236来源:国知局
一种媒体文件的播放方法及装置、电子设备与流程

本公开涉及通信技术领域,特别涉及一种媒体文件的播放方法及装置、电子设备。



背景技术:

视频播放无论是本地视频播放还是网络视频点播,影响nps(netpromoterscore,净推荐值)和用户体验的一个关键因素是视频起播速度,即从用户点击到播放画面和声音出现之间的时间差。

gstreamer作为一个多媒体开源框架被越来越多的使用在多媒体中间件及播放器的开发上。gstreamer最大的特点是基于插件和管道的。播放一个片源需要首先根据片源媒体信息找到对应的插件,使用插件中相应的元件构建管道,管道经历状态迁移之后,才开始真正的播放;播放结束后在开始新的播放前需要释放之前的资源和管道。

当用户点击新片源后,首先需要等待用于播放原片源的资源和管道的释放,之后还需要等待用于播放新片源的管道的创建,以及等待管道进入准备就绪状态,因此从用户点击到视频的播放之间存在较长的时间差,影响了媒体数据的起播速度。



技术实现要素:

为了解决相关技术中存在的媒体文件起播速度慢,耗时较长的问题,本公开提供了一种媒体文件的播放方法。

一方面,本公开提供了一种媒体文件的播放方法,其中,所述媒体文件为在媒体文件展示页面中显示,并基于选中指令被选中,且未接收到对应的播放指令的媒体文件,所述方法包括:

在所述媒体文件展示页面,为选中的第一媒体文件调用非关键资源创建管道;

在选中第一媒体文件切换为选中第二媒体文件时,为被切换选中的第二媒体文件调用所述非关键资源并行创建新管道;

在所述非关键资源调用完毕且所述第二媒体文件保持被选中时,调用关键资源为所述新管道添加元件;

在所述关键资源调用完毕且所述第二媒体文件保持被选中时,设置所述新管道为准备就绪状态,等待基于接收到的播放指令,播放所述第二媒体文件的播放指令。。

另一方面,本公开还提供了一种媒体文件的播放装置,在媒体文件展示页面中包括多个媒体文件,被播放的媒体文件是通过其他媒体文件的依次选中而最终选中的媒体文件,所述装置包括:

创建管道模块,用于在所述媒体文件展示页面,为初步选中的第一媒体文件调用非关键资源创建管道;

创建新管道模块,用于在选中第一媒体文件切换为选中第二媒体文件时,为被切换选中的第二媒体文件调用所述非关键资源并行创建新管道;

元件添加模块,用于在所述非关键资源调用完毕且所述第二媒体文件保持被选中时,调用所述关键资源为所述新管道添加元件;

准备就绪模块,用于在所述关键资源调用完毕且所述第二媒体文件保持被选中时,设置所述新管道为准备就绪状态,等待接收所述第二媒体文件的播放指令。

此外,本公开还提供了一种电子设备,所述电子设备包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行本公开提供的一种媒体文件的播放方法。

进一步,本公开还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可由处理器执行完成本公开提供的一种媒体文件的播放方法。

本公开的实施例提供的技术方案可以包括以下有益效果:

本公开上述示例性实施例提供的方案,在选中第一媒体文件时,先调用非关键资源为播放第一媒体文件创建管道,在从选中第一媒体文件切换到选中第二媒体文件时,由于此时第一媒体文件仅调用非关键资源创建管道,而该非关键资源支持多任务并行处理,进而无需等待非关键资源的释放,可以直接调用非关键资源为播放第二媒体文件并行创建新管道。在非关键资源调用完毕后再调用关键资源为该创建的新管道添加元件,所以即使关键资源之前被占用,也仅仅需要等关键资源释放后再调用。相比于现有技术中从选中第一媒体文件切换到选中第二媒体文件时,需要先将第一媒体文件的管道释放,再创建用于播放第二媒体的新管道;该方案在选中的媒体文件由第一媒体文件切换为第二媒体文件时,无需等待用于播放第一媒体文件的管道的释放,就可以为第二媒体文件的播放调用非关键资源并行创建新管道,进而当关键资源处于可调用状态时,也仅需调用关键资源去完成新管道的创建,而不是重新开始创建新管道因此本方案的方法缩短了媒体文件的起播时间,解决了现有媒体文件起播时间长的问题。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。

图1是造成管道创建延时的时序原理图;

图2是根据本公开所涉及的实施环境的示意图;

图3是根据一示例性实施例示出的一种装置的框图;

图4是根据一示例性实施例示出的一种媒体文件的播放方法的流程图;

图5是根据一示例性实施例示出的解决延时问题的时序原理图;

图6是根据另一示例性实施例示出的一种媒体文件的播放方法的流程图;

图7是根据一示例性实施例示出的一种媒体文件的播放方法的详细流程图;

图8是根据又一示例性实施例示出的一种媒体文件的播放方法的流程图;

图9是根据再一示例性实施例示出的一种媒体文件的播放方法的流程图;

图10是根据一示例性实施例示出的一种媒体文件的播放装置的框图。

具体实施方式

这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

gstreamer是用来构建流媒体应用的开源多媒体框架(framework),其目标是要简化音/视频应用程序的开发,目前已经能够被用来处理像mp3、ogg、mpeg1、mpeg2、avi、quicktime等多种格式的多媒体数据。目前gstreamer框架下视频文件播放的一般过程包括:

1、创建管道

1.1根据视频协议(流媒体协议或本地文件)查找所需要的source(源)element(元件);

1.2根据媒体封装格式查找所需的demux(解封装)element(元件);

1.3组装成部分pipeline(管道):source->demux;

1.4媒体流经上述管道,得到解封装的数据;根据这些数据获得编码格式,根据编码格式查找所需的decoder(解码)element(元件);

1.5添加decoder到管道。

1.6继续上述过程查找需要的其它元件例如sink(渲染),直到创建了完整的管道,例如source–>demux->decode->sink。(此处完整管道只是示意性列出了主要元件,实际管道的元件数量可能远比这个复杂,例如还可能包含parser(解析),selector(选择)等等。)

2、预处理

管道创建好后设置管道为状态paused(暂停)。此时第一帧数据流经整个管道,到达sink模块。迁移到pause状态过程实际为一个“预处理”的过程。此为准备就绪状态。

3、起播

设置管道为状态play(播放)。因为已经预处理过,音视频数据瞬间渲染到音视频设备。即瞬间起播完成。

4、释放管道

播放结束或取消,释放管道。

播放媒体文件时,用户使用遥控器将焦点移动到媒体文件,点击了确定之后,播放器执行上述1~4大步骤执行播放,因此起播时间较长。

本公开为了解决gstreamer框架下媒体文件起播时间较长的问题,考虑当用户移动光标或选择框浏览媒体文件时,光标一移到媒体文件则启动上述过程执行步骤1~2,将当前媒体文件的管道提前创建并执行到paused状态;在paused状态下,用户按确定键时,实现马上起播。

但是使用遥控器的左右上下按键控制光标或选择框,不得不顺次移动光标或选择框来到达目标媒体文件。这样光标或选择框经过的中间媒体文件都需要经历上述步骤1~2和4。即在很短时间内需要不断重复发现元件,创建管道,状态迁移,释放管道的过程;这样反而浪费了处理时间,因为下一次创建管道,需要等当前管道先释放掉。

如图1所示。用户在t1时刻移动光标到媒体文件1,开始为媒体文件1创建管道;用户在t2时刻移动光标到媒体文件2,此时本需要为媒体文件2创建管道,但需要先释放媒体文件1占用的管道(假设t3时刻完成);管道的释放需要有个过程,如果移动很快,则t3会晚于t2。t3时刻媒体1的管道释放完成,创建媒体文件2的管道;

因此需要延迟t3-t2的时间。此处仅拿两个媒体文件举例,浏览的媒体文件数量增加时延迟问题会更加严重。例如经过n个媒体文件,则引入的延时为n*(t3-t2)。延时到达一定值会产生anr(无响应错误)。

为了从选中媒体文件1切换到选中媒体文件2时,减少甚至无需等待释放媒体文件1占用资源的时间,直接可以开始为媒体文件2创建管道,避免因管道创建延迟导致媒体文件起播耗时较长的问题,本公开提供了一种媒体文件的播放方法及装置、电子设备及计算机可读存储介质。

图2是根据本公开示例性实施例所涉及的实施环境的示意图。该实施环境包括:智能显示设备110和服务器120;

智能显示设备110和服务器120之间的关联方式,包括硬件的网络关联方式和/或协议,以及二者之间往来的数据关联方式。服务器120为智能显示设备110的显示提供媒体文件,从而使智能显示设备110能够采用本公开示例性实施例提供的媒体文件的播放方法,播放媒体文件所包含的视频、声音和图像信息,解决媒体文件起播时间长的问题。

图3是根据一示例性实施例示出的一种装置200的框图。例如,装置200可以是图2所示实施环境中的智能显示设备110。智能显示设备110比如可以是智能电视、智能电视机顶盒等。

参照图3,装置200可以包括以下一个或多个组件:处理组件202,存储器204,电源组件206,多媒体组件208,音频组件210,传感器组件214以及通信组件216。

处理组件202通常控制装置200的整体操作,诸如与显示,电话呼叫,数据通信,相机操作以及记录操作相关联的操作等。处理组件202可以包括一个或多个处理器218来执行指令,以完成下述的方法的全部或部分步骤。此外,处理组件202可以包括一个或多个模块,便于处理组件202和其他组件之间的交互。例如,处理组件202可以包括多媒体模块,以方便多媒体组件208和处理组件202之间的交互。

存储器204被配置为存储各种类型的数据以支持在装置200的操作。这些数据的示例包括用于在装置200上操作的任何应用程序或方法的指令。存储器204可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammablereadonlymemory,简称eprom),可编程只读存储器(programmablered-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。存储器204中还存储有一个或多个模块,该一个或多个模块被配置成由该一个或多个处理器218执行,以完成下述图4、图6-9任一所示方法中的全部或者部分步骤。

电源组件206为装置200的各种组件提供电力。电源组件206可以包括电源管理系统,一个或多个电源,及其他与为装置200生成、管理和分配电力相关联的组件。

多媒体组件208包括在所述装置200和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(liquidcrystaldisplay,简称lcd)和触摸面板。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。屏幕还可以包括有机电致发光显示器(organiclightemittingdisplay,简称oled)。

音频组件210被配置为输出和/或输入音频信号。例如,音频组件210包括一个麦克风(microphone,简称mic),当装置200处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器204或经由通信组件216发送。在一些实施例中,音频组件210还包括一个扬声器,用于输出音频信号。

传感器组件214包括一个或多个传感器,用于为装置200提供各个方面的状态评估。例如,传感器组件214可以检测到装置200的打开/关闭状态,组件的相对定位,传感器组件214还可以检测装置200或装置200一个组件的位置改变以及装置200的温度变化。在一些实施例中,该传感器组件214还可以包括磁传感器,压力传感器或温度传感器。

通信组件216被配置为便于装置200和其他设备之间有线或无线方式的通信。装置200可以接入基于通信标准的无线网络,如wifi(wireless-fidelity,无线保真)。在一个示例性实施例中,通信组件216经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件216还包括近场通信(nearfieldcommunication,简称nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(radiofrequencyidentification,简称rfid)技术,红外数据协会(infrareddataassociation,简称irda)技术,超宽带(ultrawideband,简称uwb)技术,蓝牙技术和其他技术来实现。

在示例性实施例中,装置200可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器、数字信号处理设备、可编程逻辑器件、现场可编程门阵列、控制器、微控制器、微处理器或其他电子元件实现,用于执行下述方法。

图4是根据一示例性实施例示出的一种媒体文件的播放方法的流程图。该媒体文件的播放方法的适用范围和执行主体,例如,该方法可以用于图2所示实施环境的智能显示设备110。需要说明的是,智能显示设备110的媒体文件展示页面依次排列了许多媒体文件,可以由遥控器控制页面的选择框或光标移动,当选择框或光标移动到媒体文件展示页面中某个媒体文件所在位置时,表示选中该媒体文件,选择框或光标可以从选中一个媒体文件切换到换中另一媒体文件,因此,本方案中提到的媒体文件可以理解为基于选中指令被选中(即选择框或光标移动选择确定的媒体文件),但未接收到对应的播放指令的媒体文件。

如图4所示,该媒体文件的播放方法,可以由智能显示设备110执行,该方法可以包括以下步骤:

在步骤410中,在所述媒体文件展示页面,为选中的第一媒体文件调用非关键资源创建管道;

为进行区分,用户先选中的媒体文件称为第一媒体文件,后选中的媒体文件称为第二媒体文件。需要解释的是,非关键资源是指可以支持多任务并行处理的资源。同样,关键资源是指不支持多任务并行处理的资源。由于管道的创建和释放并不能支持完全的并行操作(也就是说不能同时创建管道1和管道2,在创建管道2之前需先释放管道1),因此本公开示例性实施例采用“准并行”的方式,利用非关键资源做并行处理时,利用关键资源做串行处理。

需要解释的是,管道中的某些元件支持多任务并行处理,但其他元件不支持多任务并行处理,是因为其他元件会用到一些资源,这些资源是不可重入的,同时只能被一个使用者使用和访问。所以调用这些资源的元件在被申请和使用(用于创建管道)时,其他的使用者只能等待这些资源被释放后才能申请和使用。这些资源就是所谓的关键资源,这些资源不支持多任务并行处理,而非关键资源与关键资源正好相反,调用非关键资源的元件可以支持多任务并行处理。

图5是根据一示例性实施例示出的解决延时问题的时序原理图。如图5所示,假设在t1时刻用户将光标移动到媒体文件1(选中媒体文件1),用户在t2时刻又将光标移动到媒体文件2(选中媒体文件2),用户在选中媒体文件1时,智能显示设备开始执行播放任务1。播放任务1包括:调用非关键资源为播放媒体文件1创建管道(此时的管道仅存在调用非关键资源的元件)。如果非关键资源的调用已经完成,光标还处于媒体文件1的位置,没有选中媒体文件2,智能显示设备调用关键资源为播放媒体文件1的管道添加元件,在管道创建完成后(也就是关键资源调用完毕,管道中的所有元件均已添加)设置管道状态为paused(暂停)状态,也就是准备就绪状态。等待用户点击媒体文件1进行播放。

在步骤430中,在选中第一媒体文件切换为选中第二媒体文件时,为被切换选中的第二媒体文件调用所述非关键资源并行创建新管道;

具体的,在执行播放任务1的过程中,如果用户将光标移动到媒体文件2,选中了媒体文件2,则开始执行播放任务2(t2时刻开始)。由于非关键资源是可以支持多任务并行处理的资源,所以即使在执行播放任务1时使用了非关键资源,在开始执行播放任务2时,也可以使用非关键资源为播放媒体文件2并行创建新管道。从而无需等待释放播放任务1占用的资源,可以为播放任务2并行创建新管道。

如果在选中媒体文件2时,播放任务1已经执行到调用关键资源的步骤,则可以在使用非关键资源创建新管道的同时,释放播放任务1占用的关键资源。其中,在t3时刻,被播放任务1占用的关键资源释放完毕。

在步骤450中,在所述非关键资源调用完毕且所述第二媒体文件保持被选中时,调用所述关键资源为所述新管道添加元件;

需要说明的是,如果已经调用非关键资源为播放任务2创建新管道(此时的管道仅存在调用非关键资源的元件),并且用户仍然选中的是媒体文件2,在t4时刻,为播放任务2调用关键资源为新管道添加元件。由于t3≤t4,所以不管关键资源之前是否被播放任务1占用,在需要为播放任务2调用关键资源时,关键资源已经被释放,可以调用关键资源为播放任务2的新管道添加元件。

在步骤470中,在所述关键资源调用完毕且所述第二媒体文件保持被选中时,基于接收到的播放指令,播放所述第二媒体文件。。

优选的,在所述关键资源调用完毕且所述第二媒体文件保持被选中时,设置所述新管道为准备就绪状态,当接收到所述播放指令时,设置所述新管道为播放状态,并播放所述第二媒体文件。

在t5时刻播放任务1占用的非关键资源释放完毕,t6时刻新管道创建完成(也就是关键资源调用完毕,管道中的所有元件均已添加)。在新管道被创建完成后,如果用户没有将光标从媒体文件2移开,还是选中媒体文件2,则设置新管道为paused(暂停)状态,也就是准备就绪状态。等待用户点击媒体文件2进行播放。

因为调用关键资源的元件不支持多任务并行处理,所以现有技术中为了给播放任务2创建新管道必须等待播放任务1的管道被释放,由此播放任务2起播耗时较长。

本公开上述示例性实施例提供的方案,在选中第一媒体文件时,先调用非关键资源为播放第一媒体文件创建管道,在从选中第一媒体文件切换到选中第二媒体文件时,可以无需等待管道被释放,可以调用非关键资源为播放第二媒体文件并行创建新管道,由于非关键资源支持多任务并行处理,所以无需等待非关键资源的释放。

在调用非关键资源创建新管道后才调用关键资源为新管道添加元件,所以即使关键资源之前被占用,在调用非关键资源创建新管道期间,关键资源也已经被释放,从而在需要调用关键资源时,该关键资源通常已经完成释放,进而无需等待该关键资源的释放。

综上,该方案无需等待播放第一媒体文件的管道的释放,在选中第二媒体文件时,就可以为播放第二媒体文件创建新管道,从而在触发播放第二媒体文件时,无需等待播放第一媒体文件的管道的释放,也无需等待播放第二媒体文件的管道的创建,因此缩短了媒体文件的起播时间,解决了现有媒体文件起播时间长的问题。

为了解决gstreamer框架下媒体文件起播时间长的问题,现有技术中提出一种不同的方案,该方案通过创建许多样本管道,根据视频数据选择一个目的管道来传输视频数据。与现有方案相比,本公开无需创建m*n*z个样本管道,从而更加节省空间;无需起播检测管道从而可以提高效率,同时现有方案并无法节省初始化各元件尤其是硬解码器与硬渲染模块所花费的时间。

如图6所示,在上述步骤410在媒体文件展示页面,为初步选中的第一媒体文件调用非关键资源创建管道之后,本公开提供的媒体文件的播放方法还可能包括以下步骤:

在步骤601中,在完成非关键资源的管道创建且所述第一媒体文件保持被选中时,调用关键资源为所述管道添加元件;

如图7所示,用户选中媒体文件1,也就是媒体文件1获得焦点后,调用非关键资源为播放媒体文件1创建管道。在调用非关键资源为播放第一媒体文件创建管道后,判断媒体文件1是否失去焦点。若用户没有将光标从媒体文件1移开,也就是媒体文件1没有失去焦点,调用关键资源为管道添加元件。相反的,若用户将光标从媒体文件1移开,也就是媒体文件1失去焦点,释放非关键资源和管道。

在步骤602中,在调用关键资源为所述管道添加元件后,若所述第一媒体文件保持被选中,设置所述管道为准备就绪状态,等待接收所述第一媒体文件的播放指令。

如图7所示,在调用关键资源为播放媒体文件1的管道添加元件后,判断媒体文件1是否失去焦点,如果媒体文件1仍然被选中,没有失去焦点,对管道进行预处理,也就是设置管道状态为paused(暂停)状态。此为准备就绪状态,等待接收媒体文件1的播放指令。在一种示例性实施例中,在接收到用户点击遥控器中“确定”按键的播放指令时,播放媒体文件1。

如图7所示,在对管道进行预处理后可以继续判断媒体文件1是否失去焦点,如果失去焦点,先释放关键资源,再释放非关键资源及管道。

进一步的,如图8所示,在上述步骤602调用关键资源为所述管道添加元件后,所述方法还可能包括以下步骤:

在步骤801中,若选中第一媒体文件切换为选中第二媒体文件,释放所述关键资源,并为被切换选中的第二媒体文件调用所述非关键资源并行创建新管道;

如图7所示,在调用关键资源为播放媒体文件1的管道添加元件后,判断媒体文件1是否失去焦点,如果选中媒体文件1切换为选中媒体文件2,也就是媒体文件1失去焦点,释放关键资源,并同时为媒体文件2调用非关键资源并行创建新管道,避免了因释放管道造成的延时。

在步骤802中,在所述关键资源释放完成后,若所述非关键资源调用完毕且所述第二媒体文件保持被选中,调用所述关键资源为所述新管道添加元件。

如图7所示,在关键资源释放完成后,才释放非关键资源及管道,尽量减少关键资源的释放时间,即最大限度减小t3。在关键资源释放完成后,如果已经调用非关键资源创建新管道且媒体文件2仍然被选中,调用关键资源为新管道添加元件。将关键资源的调用时间安排在调用非关键资源之后,目的是最大限度增大t4,从而保证在需要调用关键资源之前,已经完成关键资源的释放。由于在管道创建完成后才进入预处理阶段,也就是管道进入准备就绪状态,因此关键资源的调用时间安排在预处理阶段之前即可。在关键资源调用完毕,新管道创建完成后,继续执行上述步骤470在关键资源调用完毕且媒体文件2仍然被选中时,设置新管道为准备就绪状态,等待接收第二媒体文件的播放指令。

如图7所示,资源的调用分为两个阶段:非关键资源的调用,关键资源的调用。将资源的释放也分为两个阶段:非关键资源的释放和关键资源的释放。其中,非关键资源的调用在关键资源的调用之前。而关键资源的释放在非关键资源的释放之前,从而尽量保证在需要调用关键资源之前,已经完成关键资源的释放,使t3时刻在t4时刻之前,减少等待资源释放的时间。如图7所示,在每个阶段之间都增加结束(例如失去焦点导致)检查,以提高释放关键资源的及时性。

更进一步的,如图9所示,在步骤470设置新管道为准备就绪状态,等待接收所述第二媒体文件的播放指令之后,本公开示例性实施例提供的媒体文件的播放方法还可能包括以下步骤:

在步骤901中,接收所述第二媒体文件的播放指令,设置所述新管道为播放状态,播放所述第二媒体文件;

具体的,用户将光标停留在第二媒体文件上,点击遥控器上的“确定”按键后,智能显示设备接收到播放第二媒体文件的播放指令,设置新管道为play(播放)状态,因为已经经过预处理,所以音视频数据瞬间被渲染到音视频设备,开始播放第二媒体文件,瞬间起播完成。

在步骤902中,所述第二媒体文件播放结束后,以先后顺序依次释放所述关键资源及所述非关键资源。

需要说明的是,在播放结束后,先释放关键资源,再释放非关键资源,从而提高释放关键资源的及时性,在需要调用关键资源时,无需等待关键资源的释放。

其中,上述步骤410在媒体文件展示页面,为初步选中的第一媒体文件调用非关键资源创建管道具体包括以下步骤:

监听媒体文件展示页面内光标移动位置,在光标处于第一媒体文件所在位置时,接收到选中第一媒体文件的指令;

利用非关键资源的元件为所述第一媒体文件的播放创建管道。

需要说明的是,可以通过遥控器的上下左右按键,控制光标的移动。智能显示设备110监听媒体文件展示页面内光标的移动位置,在光标处于第一媒体文件所在位置时,表示用户选中第一媒体文件,智能显示设备110接收到选中第一媒体文件的指令,并调用非关键资源的元件为播放第一媒体文件创建管道。

需要解释的是,一般硬件相关的资源往往是关键资源。例如硬件视频解码器(hardwarevideodecoder),硬件音频解码器(hardwareaudiodecoder),音频渲染模块(audiosink),视频渲染模块(videosink)等。对于解码器来说,软件解码器往往支持多任务并行处理,因此属于非关键资源。对于一些支持多路同时解码的硬件解码器,也可认为是非关键资源。

本公开上述示例性实施例中,对于关键资源,进行串行化处理,对于非关键资源,进行并行化处理。尽量缩小不可多线程访问的资源范围,即关键资源的范围;将关键资源从元件的申请及释放逻辑中剥离出来,使得管道的创建过程尽量不依赖这些关键资源。这样,元件本身仍然设计为可多线程访问。设计“准并行”的任务流程,针对一般资源并行执行任务逻辑,针对关键资源串行化处理任务逻辑,从而可以加快媒体文件的起播速度。

下述为本公开装置实施例,可以用于执行本公开上述智能显示设备110执行的媒体文件的播放方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开媒体文件的播放方法实施例。

图10是根据一示例性实施例示出的一种媒体文件的播放装置的框图,该媒体文件的播放装置可以用于图2所示实施环境的智能显示设备110中,执行图4、图6-9任一所示的媒体文件的播放方法的全部或者部分步骤。在媒体文件展示页面中具有多个媒体文件,通过依次选中其他媒体文件到达最终选中的媒体文件,最终选中的媒体文件就是用户要求播放的媒体文件。如图10所示,该媒体文件的播放装置包括但不限于:创建管道模块1010、创建新管道模块1030、元件添加模块1050以及准备就绪模块1070;

创建管道模块1010,用于在所述媒体文件展示页面,为初步选中的第一媒体文件调用非关键资源创建管道;

创建新管道模块1030,用于在选中第一媒体文件切换为选中第二媒体文件时,为被切换选中的第二媒体文件调用所述非关键资源并行创建新管道;

元件添加模块1050,用于在所述非关键资源调用完毕且所述第二媒体文件保持被选中时,调用所述关键资源为所述新管道添加元件;

准备就绪模块1070,用于在所述关键资源调用完毕且所述第二媒体文件保持被选中时,设置所述新管道为准备就绪状态,等待接收所述第二媒体文件的播放指令。

上述装置中各个模块的功能和作用的实现过程具体详见上述媒体文件的播放方法中对应步骤的实现过程,在此不再赘述。

创建管道模块1010比如可以是图3中的某一个物理结构处理器218。

创建新管道模块1030、元件添加模块1050以及准备就绪模块1070也可以是功能模块,用于执行上述媒体文件的播放方法中的对应步骤。可以理解,这些模块可以通过硬件、软件、或二者结合来实现。当以硬件方式实现时,这些模块可以实施为一个或多个硬件模块,例如一个或多个专用集成电路。当以软件方式实现时,这些模块可以实施为在一个或多个处理器上执行的一个或多个计算机程序,例如图3的处理器218所执行的存储在存储器204中的程序。

可选的,所述元件添加模块1050,还用于在完成非关键资源的管道创建且所述第一媒体文件保持被选中时,调用关键资源为所述管道添加元件;

所述准备就绪模块1070,还用于在调用关键资源为所述管道添加元件后,若所述第一媒体文件保持被选中,设置所述管道为准备就绪状态,等待接收所述第一媒体文件的播放指令。

可选的,所述媒体文件的播放还可以包括但不限于:

资源释放模块,用于在调用关键资源为所述管道添加元件之后,选中第一媒体文件切换为选中第二媒体文件时,释放所述关键资源,并为被切换选中的第二媒体文件调用所述非关键资源并行创建新管道;

所述元件添加模块1050,还用于在所述关键资源释放完成后,若所述非关键资源调用完毕且所述第二媒体文件保持被选中,调用所述关键资源为所述新管道添加元件。

可选的,本公开还提供一种电子设备,该电子设备可以用于图2所示实施环境的智能显示设备110中,执行图4、图6-9任一所示的媒体文件的播放方法的全部或者部分步骤。所述电子设备包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行上述示例性实施例所述的媒体文件的播放方法。例如,执行以下步骤:

在媒体文件展示页面,为初步选中的第一媒体文件调用非关键资源创建管道;

在选中第一媒体文件切换为选中第二媒体文件时,为被切换选中的第二媒体文件调用所述非关键资源并行创建新管道;

在所述非关键资源调用完毕且所述第二媒体文件保持被选中时,调用所述关键资源为所述新管道添加元件;

在所述关键资源调用完毕且所述第二媒体文件保持被选中时,设置所述新管道为准备就绪状态,等待接收所述第二媒体文件的播放指令。

该实施例中的电子设备的处理器执行操作的具体方式已经在有关该媒体文件的播放方法的实施例中执行了详细描述,此处将不做详细阐述说明。

在示例性实施例中,还提供了一种存储介质,该存储介质为计算机可读存储介质,例如可以为包括指令的临时性和非临时性计算机可读存储介质。该存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述媒体文件的播放方法。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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