CN117615191A - 一种多媒体资源播放方法及播放设备 - Google Patents
一种多媒体资源播放方法及播放设备 Download PDFInfo
- Publication number
- CN117615191A CN117615191A CN202310364223.5A CN202310364223A CN117615191A CN 117615191 A CN117615191 A CN 117615191A CN 202310364223 A CN202310364223 A CN 202310364223A CN 117615191 A CN117615191 A CN 117615191A
- Authority
- CN
- China
- Prior art keywords
- audio
- data
- video
- decoder
- multimedia
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000007781 pre-processing Methods 0.000 claims abstract description 112
- 238000012545 processing Methods 0.000 claims description 81
- 230000000694 effects Effects 0.000 claims description 54
- 238000004590 computer program Methods 0.000 claims description 8
- 239000000872 buffer Substances 0.000 description 44
- 238000009877 rendering Methods 0.000 description 41
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000001360 synchronised effect Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000003139 buffering effect Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000036316 preload Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42607—Internal components of the client ; Characteristics thereof for processing the incoming bitstream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/439—Processing of audio elementary streams
- H04N21/4394—Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44008—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8193—Monomedia components thereof involving executable data, e.g. software dedicated tools, e.g. video decoder software or IPMP tool
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施例公开了一种多媒体资源播放方法及播放设备,涉及音视频技术领域,在电视机播放不同通道的多媒体资源,出现硬件解码器资源冲突时,能够播放新的通道对应的多媒体资源,从而保证多媒体正常播放,提高用户的体验度,节省资源。具体方案为:创建多媒体资源对应的预处理模块,预处理模块用于对多媒体资源进行解析并缓存;在多媒体资源对应的硬件解码器创建失败的情况下,创建多媒体资源对应的软件解码器;将预处理模块包括的多媒体资源,发送给软件解码器,以得到多媒体资源对应的解码数据;播放多媒体资的解码数据。
Description
技术领域
本申请实施例涉及音视频技术领域。更具体地讲,涉及一种多媒体资源播放方法及播放设备。
背景技术
目前,电视机可以通过高清晰度多媒体接口(highdefinition multimediainterface,HDMI)、数字电视(digital television,DTV)直播电视、本地媒体或网络媒体等不同的通道播放多媒体资源(如音视频数据等)。
在电视机通过不同的通道播放多媒体资源时,是通过相同的硬件解码器,对不同通道对应的多媒体资源进行解码,从而电视机能够播放不同通道对应的多媒体资源。
然而,在电视机切换不同的通道播放多媒体资源时,硬件解码器容易出现资源冲突的问题。例如,在电视机切换不同的通道播放多媒体资源时,硬件解码器需要先释放原来通道对应的多媒体资源,然后才能对新的通道对应的多媒体资源进行解码。硬件解码器在释放原来通道对应的多媒体资源时,可能出现释放异常,如无法释放原来通道对应的多媒体资源,从而硬件解码器无法对新的通道对应的多媒体资源进行解码。这就导致电视机无法播放新的通道对应的多媒体资源。
发明内容
本申请实施例提供一种多媒体资源播放方法及播放设备,用于解决在电视机切换不同的通道播放多媒体资源时,出现硬件解码器资源冲突,导致无法播放新的通道对应的多媒体资源的问题。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,本申请实施例提供了一种播放设备,该播放设备包括:显示器;扬声器;通信器,被配置为获取多媒体资源;处理器,分别与显示器、扬声器以及通信器耦接,且被配置为:创建多媒体资源对应的预处理模块,预处理模块用于对多媒体资源进行解析并缓存;在多媒体资源对应的硬件解码器创建失败的情况下,创建多媒体资源对应的软件解码器;将预处理模块包括的多媒体资源,发送给软件解码器,以得到多媒体资源对应的解码数据;控制扬声器和/或显示器,播放多媒体资源对应的解码数据。
结合第一方面,在另一种可选的方式中,多媒体资源可以包括音频数据,硬件解码器可以为音频数据对应的音频硬件解码器,处理器,具体被配置为:在音频硬件解码器创建失败的情况下,创建音频数据对应的音频软件解码器;将预处理模块包括的音频数据,发送给音频软件解码器,以得到音频数据对应的解码数据。
结合第一方面,在另一种可选的方式中,处理器,具体被配置为:创建音频软件解码器对应的音频音效处理模块;将音频数据对应的解码数据,发送给音频音效处理模块,以得到处理之后的解码数据;控制扬声器,播放处理之后的解码数据。
结合第一方面,在另一种可选的方式中,多媒体资源可以包括视频数据,硬件解码器可以为视频数据对应的视频硬件解码器,处理器,具体被配置为:在视频硬件解码器创建失败的情况下,创建视频数据对应的视频软件解码器;将预处理模块包括的视频数据,发送给视频软件解码器,以得到视频数据对应的解码数据。
结合第一方面,在另一种可选的方式中,处理器,具体被配置为:控制显示器,显示视频数据对应的解码数据。
结合第一方面,在另一种可选的方式中,多媒体资源可以包括音频数据和视频数据,硬件解码器可以为音频数据对应的音频硬件解码器和视频数据对应的视频硬件解码器,处理器,具体被配置为:在音视频硬件解码器和视频硬件解码器均创建失败的情况下,创建音频数据对应的音频软件解码器和视频数据对应的视频软件解码器;将预处理模块包括的音频数据和视频数据,发送给音频软件解码器和视频软件解码器,以得到音视频数据对应的解码数据和视频数据对应的解码数据。
结合第一方面,在另一种可选的方式中,处理器,具体被配置为:创建音频软件解码器对应的音频音效处理模块;将音频数据对应的解码数据,发送给音频音效处理模块,以得到处理之后的解码数据;控制扬声器,播放处理之后的解码数据;控制显示器,显示视频数据对应的解码数据。
结合第一方面,在另一种可选的方式中,处理器,还被配置为:在多媒体资源对应的硬件解码器创建成功的情况下,将预处理模块包括的多媒体资源,发送给硬件解码器,以得到多媒体资源对应的解码数据;控制扬声器和/或显示器,播放多媒体资源对应的解码数据。
第二方面,本申请还提供了一种多媒体资源播放方法,该多媒体资源播放方法包括:获取多媒体资源;创建多媒体资源对应的预处理模块,预处理模块用于对多媒体资源进行解析并缓存;在多媒体资源对应的硬件解码器创建失败的情况下,创建多媒体资源对应的软件解码器;将预处理模块包括的多媒体资源,发送给软件解码器,以得到多媒体资源对应的解码数据;播放多媒体资源对应的解码数据。
第三方面,本申请还提供了一种多媒体资源播放装置,该多媒体资源播放装置可以包括:获取模块、创建模块、发送模块和播放模块等。
其中,获取模块,可以用于获取多媒体资源。
创建模块,可以用于创建多媒体资源对应的预处理模块,预处理模块用于对多媒体资源进行解析并缓存。
创建模块,还可以用于在多媒体资源对应的硬件解码器创建失败的情况下,创建多媒体资源对应的软件解码器。
发送模块,可以用于将预处理模块包括的多媒体资源发送给软件解码器,以得到多媒体资源对应的解码数据。
播放模块,可以用于播放多媒体资源对应的解码数据。
第四方面,本申请还提供了一种电子设备,包括处理器,包括处理器,用于存储该处理器可执行指令的存储器。该处理器被配置为执行上述指令时,使得该电子设备实现如第二方面可能的实现方式所述的多媒体资源播放方法。
第五方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序指令。当计算机程序指令被电子设备执行时,使得电子设备实现如第二方面可能的实现方式所述的多媒体资源播放方法。
第六方面,本申请还提供一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码在电子设备中运行时,使得电子设备实现如第二方面可能的实现方式所述的多媒体资源播放方法。
本申请提供的方案,首先获取多媒体资源,创建多媒体资源对应的预处理模块,通过预处理模块对获取的多媒体资源进行缓存并解析;然后在多媒体资源对应的硬件解码器创建失败的情况下,创建多媒体资源对应的软件解码器;之后将预处理模块中缓存并解析到的多媒体资源发送给软件解码器,由软件解码器进行解码得到多媒体资源对应的解码数据,最后播放多媒体资源对应的解码数据。
本申请的方案由于在多媒体资源对应的硬件解码器创建失败时,创建多媒体资源对应的软件解码器,由创建多媒体资源对应的软件解码器对多媒体资源进行解码,能够解决在电视机播放不同通道对应的多媒体资源时,出现的硬件解码器资源冲突,从而无法播放所有通道对应的多媒体资源的问题。
且本申请的方案,在多媒体资源对应的软件解码器创建成功后,预处理模块才向软件解码器发送解析并缓存的多媒体资源,这样能够保证软件解码器解码的多媒体资源对应的解码数据是完整的数据,从而保证多媒体正常播放,提高用户的体验度。
此外,本申请的方案在播放设备播放不同通道的多媒体资源,出现硬件解码资源不足时,先创建硬件解码器和预处理模块,如果硬件解码器创建成功的话,预处理模块会向硬件解码器发送多媒体资源,如果硬件解码器创建失败的话,会创建对应的软件解码器,已创建的预处理模块会向软件解码器发送多媒体资源。也就是说,在播放设备创建多媒体资源对应的软件解码器之后,是复用之前创建的预处理模块,从而不需要再次解析并缓存多媒体资源,能够避免多媒体资源开始播放的时间过长,保证多媒体正常播放,提高用户的体验度,节省资源。
附图说明
图1为现有技术中播放设备的软件结构示意图;
图2为现有技术中多媒体资源播放的流程示意图一;
图3为现有技术中多媒体资源播放方法的流程示意图二;
图4为申请实施例提供的一种播放设备与控制装置之间的操作场景示意图;
图5为本申请实施例提供的一种控制装置500的硬件结构示意图;
图6本申请实施例提供的一种播放设备600的硬件结构示意图;
图7本申请实施例提供的一种播放设备600的软件配置图;
图8为本申请实施例提供一种多媒体资源播放方法的流程示意图;
图9为本申请实施例提供的一种播放设备的软件结构示意图;
图10为本申请实施例提供的另一种多媒体资源播放方法的流程示意图;
图11为本申请实施例提供的另一种播放设备的软件结构示意图;
图12本申请实施例提供的另一种多媒体资源播放方法的流程示意图;
图13为申请实施例提供的一种多媒体资源播放装置的结构示意图。
具体实施方式
为使本申请的目的和实施方式更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
本申请中术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
目前,电视机可以通过HDMI、DTV直播电视、本地媒体或网络媒体等不同的通道播放多媒体资源(如音视频数据等)。
在电视机通过不同的通道播放多媒体资源时,是通过相同的硬件解码器,对不同通道对应的多媒体资源进行解码,从而电视机能够播放不同通道对应的多媒体资源。
例如,图1示出了现有技术中一种电视机中对多媒体资源(音视频数据)播放的软件结构图,也可以称为音视频数据的播放器管道,即播放器管道可以用于对音视频数据进行播放。如图1所示,电视机播放多媒体资源时的播放器管道,具体可以包括:文件下载模块110,协议解析模块120,格式解封装模块130,基本码流(elementary stream,ES)缓存模块140,音频选择器150-1,字幕选择器150-2,视频解码模块160-1(即视频数据对应的硬件解码器),音频解码模块160-2(即音频数据对应的硬件解码器),字幕解码模块160-3,音视频、字幕同步模块170,视频渲染模块180-1、音频渲染模块180-2、字幕渲染模块180-3和播放模块190。
在电视机中播放音视频以及字幕数据时,文件下载模块110可以通过HDMI、DTV直播电视、本地媒体或网络媒体等不同通道中的一个通道读取本地或下载多媒体资源片源,即音视频数据以及字幕数据。协议解析装模块120对多媒体资源片源中包括的流媒体索引文件进行解析获取媒体片段地址并进行下载。
格式解封装模块130按照协议约定的文件封装格式对多媒体资源片源进行解析、封装,得到不同的音频数据、视频数据和字幕数据,若多媒体资源包含多路音频数据,则会解析出多路音频数据。ES缓存模块140将得到的音频数据、视频数据和字幕数据进行缓存,得到ES数据。
音频选择器150-1基于用户track索引标记以及预先设置的输出顺序从多路音频数据中选择需要解码的音频数据。字幕选择器150-2基于用户选择的track索引标记以及预先设置的输出顺序从多路字幕数据中选择需要解码的字幕数据,其他未被选择的track数据则进行同步丢弃。
然后,视频解码模块160-1,音频解码模块160-2,字幕解码模块160-3对输入的音频数据、视频数据、字幕数据通过硬件解码的方式进行解码,并将解码后的音频数据、视频数据以及字幕数据传输至音视频、字幕同步模块170。音视频、字幕同步模块170将接收到的音视频数据、字幕数据进行同步,并分别向视频渲染模块180-1、音频渲染模块180-2、字幕渲染模块180-3发送同步的音频数据、视频数据和字幕数据。
由视频渲染模块180-1对同步的视频数据进行渲染,并将渲染的视频数据发送至播放模块190。音频渲染模块180-2对同步的音频数据进行渲染,并将渲染的音频数据发送至播放模块190。字幕渲染模块180-3对字幕文本或图片数据进行渲染,并将渲染的字幕数据发送至播放模块190。最后播放模块190根据第一时长内接收到的渲染处理后音频数据、视频数据和字幕数据,播放音视频和字幕。
上述现有技术中对多媒体资源进行播放,每个模块向之后的模块发送特定的事件和数据,例如,文件下载模块110会向格式解封装模块130发送事件和数据,事件包括下载的多媒体资源的开始、暂停、跳转以及结束等事件,数据包括下载的多媒体资源数据。
整个播放管道同时包含事件流和数据流,每个模块均可以向下游模块发送特定的事件和数据。其中预加载完成消息(即prepared消息)通常在格式解封装模块解析到得到文件信息后上报,文件信息包括视频宽、高、帧率,音频声道数、采样率等。电视机收到prepared消息后即可进行视频播放、暂停、跳转等用户界面(use interface,UI)操作。
然而,在电视机切换不同的通道播放多媒体资源时,硬件解码器容易出现资源冲突的问题。例如,在电视机切换不同的通道播放多媒体资源时,硬件解码器需要先释放原来通道对应的多媒体资源,然后才能对新的通道对应的多媒体资源进行解码。硬件解码器在释放原来通道对应的多媒体资源时,可能出现释放异常,如无法释放原来通道对应的多媒体资源,从而硬件解码器无法对新的通道对应的多媒体资源进行解码。这就会导致电视机无法播放新的通道对应的多媒体资源。
再如,在电视机切换不同的通道播放多媒体资源时,硬件解码器对新的通道对应的多媒体资源进行解码,可能会出现抢占异常,如在硬件解码器对新的通道进行解码时,硬件解码器已经切换为新的通道,而原来通道对应的多媒体资源还未完全释放,从而硬件解码器无法对通道对应的多媒体资源进行解码。这就会导致电视机无法播放原来的通道和新的通道对应的多媒体资源。
针对上述在电视机切换不同通道播放多媒体资源时,多通道中对应的多媒体资源需要使用相同的硬件解码器进行解码,可能出现会出现资源抢占或释放异常,从而导致电视机无法播放所有通道对应多媒体资源的问题,可以通过修改prepared消息(预加载完成消息)上报时机,同时调整ES缓存模块发送数据的时机来解决。
例如,图2示出了一种多媒体资源播放的流程示意图,结合图1所示,图2是的方案是:当硬件解码器创建成功后再上报prepared消息,同时仅在收到多媒体资源对应的硬件解码器上报的prepared消息之后再发送数据。
具体包括:1、设置多媒体资源片源地址,并调用播放器预加载接口执行异步预加载,监听各模块prepared(预加载完成消息)消息上报。2、基于多媒体资源执行各个模块的动态创建和连接,并对ES缓存模块设置“等待解码完成”属性,用于控制ES缓存队列是否等待解码器prepared之后将ES数据发送给解码器发送数据。3、在预加载过程中,由文件下载模块和格式解封装模块执行多媒体资源的下载、解封装,并将解封装后的ES数据缓存到ES缓存模块中,其中,ES缓存模块中的ES缓存队列采用生产者-消费者模型,内部另起线程将缓存队列里的事件/缓存数据发送给解码器。4、发送数据之前ES缓存模块先确定是否需要“等待解码完成”。5、在确定需要“等待解码完成”的情况下,则将ES缓存模块中第一帧ES缓存数据之前的事件数据向解码器发送,并同时将各个事件进行备份存储到链表中;在ES缓存模块接收到“dec-prepared”消息后将缓存数据发送至解码器。否则,直接向解码器发送数据。
6、解码器接收到ES缓存模块发送的事件后,确定是否为ES格式信息事件。7、在确定为ES格式信息事件的情况下,优先创建硬件解码器,并进行解码器的配置,启动。否则,13、按原有数据传输数据,即通过硬解码解码器进行解码,之后对解码后的多媒体资源进行同步渲染、播放。8、若解码器创建配置成功,视频解码器需向播放器上报“audio-prepared”消息,音频解码器需向播放器上报“video-prepared”消息,否则,向播放器上报具体的解码器错误码消息,例如视频解码器资源不足等。
若事件为“ES格式信息”事件,该事件包括ES数据的格式和编码信息,例如ES数据的格式可以为视频h264编码格式,音频aac编码格式,编码信息可以为h264 sps/pps信息,aac采样率、声道数等信息。
9、播放器收到解码器上报的“video-prepared”和“audio-prepared”消息后,向ES缓存模块发送“dec-prepared”消息。10、ES缓存模块收到该消息后,确定是否需要发送缓存事件。11、在确定需要发送缓存事件的情况下,硬件解码器创建失败,重新创建软件解码器,在发送第一帧ES数据前发送缓存的所有事件。12、否则,硬件解码器创建成功,继续发送ES缓存模块中的数据。该优化prepared消息上报时机的方案,能够在优选的硬件解码器创建失败时,上报硬件解码器创建失败消息,进而释放硬件解码器。
然而,该多媒体资源播放的方案,在电视机的资源不足时导致硬件解码器创建失败,再进行视频播放时还是会播放失败,因此用户为了避免资源不足时导致视频播放失败的情况,用户只能断电重启,释放资源,这就会导致用户的体验较差。
针对上述由于资源不足时导致的硬件解码器创建失败,用户只能断电重启的问题,现有技术提出一种多媒体资源的播放方案,该方案是新建一套包含软件解码器的播放通道,将硬件解码器切换为软件解码器进行解码,进而实现多媒体的正常播放。
例如,结合图3所示,现有技术提出一种多媒体资源的播放方案,具体包括:1、应用设置片源地址,预加载视频,异步监听播放器prepared消息上报。2、播放器内部缓存应用设置的数据,例如,片源资源定位符(uniform resource locator,url)源地址,视频显示surface,视频倍数等数据。3、播放器通过文件下载模块和格式解封装模块下载多媒体文件,解封装出多媒体资源ES数据,创建硬件解码器。4、在播放器内部管道执行预加载操作时,确定硬件解码器是否创建成功。5、在确定硬件解码器创建失败的情况下,播放器截断错误信息上报,释放硬件硬件解码器资源,重新创建一套包含软件解码器的播放器管道,其中,软件解码器基于错误的硬件解码器的类型创建。6、在确定硬件解码器创建成功的情况下,向播放器上报预加载完成消息。7、预加载新的播放器管道,预加载完成后向播放器上报prepared消息。
然而,上述多媒体资源播放方案是在电视机切换不同的通道播放多媒体资源,硬件解码器创建失败的情况下,创建一整套新的播放器管道,而创建一整套新的播放器管道在视频播放时需要重新下载、解析视频,这就导致视频起播时间过长,流量增多,造成资源的浪费。
针对上述问题,本申请实施例提供一种多媒体资源播放方法,可以应用在播放设备上,首先创建多媒体资源对应的预处理模块,预处理模块用于对多媒体资源进行解析并缓存;然后在多媒体资源对应的硬件解码器创建失败的情况下,创建多媒体资源对应的软件解码器;之后将预处理模块包括的多媒体资源,发送给软件解码器,以得到多媒体资源对应的解码数据;最后播放多媒体资源对应的解码数据。也就是说,本申请的方案能够复用解码前所有的模块,预处理模块先向解码器发送缓存的多媒体资源,在硬件解码器出现异常时创建软件解码器,然后预处理模块重新向创建的软件解码器发送缓存的多媒体资源,以得到多媒体资源对应的解码数据,进而播放多媒体资源对应的解码数据。
本申请的方案由于在多媒体资源对应的硬件解码器创建失败时,创建多媒体资源对应的软件解码器,由创建多媒体资源对应的软件解码器对多媒体资源进行解码,能够解决在电视机播放不同通道对应的多媒体资源时,出现的硬件解码器资源冲突,从而无法播放所有通道对应的多媒体资源的问题。
且本申请的方案,在多媒体资源对应的软件解码器创建成功后,预处理模块才向软件解码器发送解析并缓存的多媒体资源,这样能够保证软件解码器解码的多媒体资源对应的解码数据是完整的数据,从而保证多媒体正常播放,提高用户的体验度。
此外,本申请的方案在播放设备播放不同通道的多媒体资源,出现硬件解码资源不足时,先创建硬件解码器和预处理模块,如果硬件解码器创建成功的话,预处理模块会向硬件解码器发送多媒体资源,如果硬件解码器创建失败的话,会创建对应的软件解码器,已创建的预处理模块会向软件解码器发送多媒体资源。也就是说,在播放设备创建多媒体资源对应的软件解码器之后,是复用之前创建的预处理模块,从而不需要再次解析并缓存多媒体资源,能够避免多媒体资源开始播放的时间过长,保证多媒体正常播放,提高用户的体验度,节省资源。
下面对本申请实施例提供的多媒体资源播放方法进行描述。
本申请实施例提供的多媒体资源播放方法可以应用于播放设备,播放设备可以包括电视机。
播放设备可以是电视机、智能电视、激光投影设备、电子白板(electronicbulletin board)、电子桌面(electronic table)等能够播放多媒体资源的播放设备。本申请实施例在此对播放设备的具体形态不做限制。本申请实施例中以播放设备为电视机为例进行示意说明。图4和图5为本申请播放设备的一种具体的实施方式。
图4为根据实施例中播放设备与控制装置之间操作场景的示意图。如图4所示,用户可通过智能设备400或控制装置500操作播放设备600。播放设备600也可以为显示设备。
在一些实施例中,控制装置500可以是遥控器,遥控器和播放设备的通信包括红外协议通信或蓝牙协议通信,及其他短距离通信方式,通过无线或有线方式来控制播放设备600。用户可以通过遥控器上按键、语音输入、控制面板输入等输入用户指令,来控制播放设备600。
在一些实施例中,也可以使用智能设备400(如移动终端、平板电脑、计算机、笔记本电脑等)以控制播放设备600。例如,使用在智能设备上运行的应用程序控制播放设备600。
在一些实施例中,播放设备可600以不使用上述的智能设备或控制设备接收指令,而是通过触摸或者手势等接收用户的控制。
在一些实施例中,播放设备600还可以采用除了智能设备400和控制装置500之外的方式进行控制,例如,可以通过播放设备600设备内部配置的获取语音指令的模块直接接收用户的语音指令控制,也可以通过播放设备600设备外部设置的语音控制设备来接收用户的语音指令控制。
在一些实施例中,播放设备600还与服务器700进行数据通信。可允许播放设备600通过局域网(LAN)、无线局域网(WLAN)和其他网络进行通信连接。服务器700可以向播放设备600提供各种内容和互动。服务器700可以是一个集群,也可以是多个集群,可以包括一类或多类服务器。
图5示例性示出了根据示例性实施例中控制装置500的配置框图。如图5所示,控制装置500包括控制器510、通信接口520、用户输入/输出接口530、存储器540、供电电源550。控制装置500可接收用户的输入操作指令,且将操作指令转换为播放设备600可识别和响应的指令,起用用户与播放设备600之间交互中介作用。
示例地,以播放设备为电视机为例,图6示出了本申请实施例提供的一种播放设备的结构示意图。如图6,播放设备600包括调谐解调器610、通信器620、检测器630、外部装置接口640、处理器650、显示器660、音频输出接口670、存储器680、供电电源690、用户接口中的至少一种。
在一些实施例中处理器650包括处理器,视频处理器,音频处理器,图形处理器,RAM,ROM,用于输入/输出的第一接口至第n接口。
显示器660包括用于呈现画面的显示屏组件,以及驱动图像显示的驱动组件,用于接收源自处理器650输出的图像信号,进行显示视频内容、图像内容以及菜单操控界面的组件以及用户操控用户界面(use interface,UI)。
显示器660可为液晶显示器、OLED显示器、以及投影显示器,还可以为一种投影装置和投影屏幕。
通信器620是用于根据各种通信协议类型与外部设备或服务器进行通信的组件。例如:通信器可以包括Wifi模块,蓝牙模块,有线以太网模块等其他网络通信协议芯片或近场通信协议芯片,以及红外接收器中的至少一种。播放设备600可以通过通信器620与外部控制装置500或服务器700建立控制信号和数据信号的发送和接收。
用户接口,可用于接收控制装置500(如:红外遥控器等)的控制信号。
检测器630用于采集外部环境或与外部交互的信号。例如,检测器630包括光接收器,用于采集环境光线强度的传感器;或者,检测器630包括图像采集器,如摄像头,可以用于采集外部环境场景、用户的属性或用户交互手势,再或者,检测器630包括声音采集器,如麦克风等,用于接收外部声音。
外部装置接口640可以包括但不限于如下:高清多媒体接口(HDMI)、模拟或数据高清分量输入接口(分量)、复合视频输入接口(CVBS)、USB输入接口(USB)、RGB端口等任一个或多个接口。也可以是上述多个接口形成的复合性的输入/输出接口。
调谐解调器610通过有线或无线接收方式接收广播电视信号,以及从多个无线或有线广播电视信号中解调出音视频信号,如以及EPG数据信号。
在一些实施例中,处理器650和调谐解调器610可以位于不同的分体设备中,即调谐解调器610也可在处理器650所在的主体设备的外置设备中,如外置机顶盒等。
处理器650,通过存储在存储器680上中各种软件控制程序,来控制播放设备600的工作和响应用户的操作。处理器650控制播放设备600的整体操作。例如:处理器650可以控制显示器660显示多媒体资源对应的解码数据,处理器650可以控制音频输出接口670播放多媒体资源对应的解码数据。
在一些实施例中处理器650包括中央处理器(central processing unit,CPU),视频处理器,音频处理器,图形处理器(graphics processing unit,GPU),RAM(randomaccess memory,RAM),ROM(read-only memory,ROM),用于输入/输出的第一接口至第n接口,通信总线(Bus)等中的至少一种。
用户可在显示器660上显示的图形用户界面(GUI)输入用户命令,则用户输入接口通过图形用户界面(GUI)接收用户输入命令。或者,用户可通过输入特定的声音或手势进行输入用户命令,则用户输入接口通过传感器识别出声音或手势,来接收用户输入命令。
“用户界面”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(graphic user interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在播放设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
可以理解的是,一般而言,播放设备功能的实现除了需要上述硬件的支持外,还需要软件的配合。
图7是本申请实施例提供的播放设备的软件结构框图。
在一些实施例中,如图7所示,将播放设备的系统分为四层,从上至下分别为应用程序(applications)层(简称“应用层”),应用程序框架(application framework)层(简称“框架层”),安卓运行时(android runtime)和系统库层(简称“系统运行库层”),以及内核层。
在一些实施例中,应用程序层中运行有至少一个应用程序,这些应用程序可以是操作系统自带的窗口(window)程序、系统设置程序或时钟程序等;也可以是第三方开发者所开发的应用程序。在具体实施时,应用程序层中的应用程序包不限于以上举例。
框架层为应用程序提供应用编程接(application programming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。应用程序框架层相当于一个处理中心,这个中心决定让应用层中的应用程序做出动作。应用程序通过API接口,可在执行中访问系统中的资源和取得系统的服务。在一些示例中,播放设备包括的对话系统可以位于播放设备的系统的框架层中。
如图7所示,本申请实施例中应用程序框架层包括管理器(managers),内容提供者(content provider)等,其中管理器包括以下模块中的至少一个:活动管理器(activitymanager)用与和系统中正在运行的所有活动进行交互;位置管理器(location manager)用于给系统服务或应用提供了系统位置服务的访问;文件包管理器(package manager)用于检索当前安装在设备上的应用程序包相关的各种信息;通知管理器(notificationmanager)用于控制通知消息的显示和清除;窗口管理器(window manager)用于管理用户界面上的括图标、窗口、工具栏、壁纸和桌面部件。
在一些实施例中,在播放设备播放多媒体资源时,播放设备创建的多媒体资源对应的播放器管道可以位于框架层中。例如,在播放设备播放音视频数据时,播放设备可以在框架层中创建音视频数据对应的播放器管道,即音视频数据对应的播放器管道包括的文件下载模块,协议解析模块,格式解封装模块,ES缓存模块,音频选择器,字幕选择器,视频硬件解码器,音频硬件解码器,字幕解码模块,音视频、字幕同步模块,视频渲染模块、音频渲染模块、字幕渲染模块和播放模块可以位于框架层中。
需要说明的是,在视频硬件解码器或音频硬件解码器创建失败时,播放设备会在框架层中创建对应的视频软件解码器或音频软件解码器,从而保证音视频数据的正常播放。
在一些实施例中,活动管理器用于管理各个应用程序的生命周期以及通常的导航回退功能,比如控制应用程序的退出、打开、后退等。窗口管理器用于管理所有的窗口程序,比如获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕,控制显示窗口变化(例如将显示窗口缩小显示、抖动显示、扭曲变形显示等)等。
在一些实施例中,系统运行库层为上层即框架层提供支撑,当框架层被使用时,安卓操作系统会运行系统运行库层中包含的C/C++库以实现框架层要实现的功能。
在一些实施例中,内核层是硬件和软件之间的层。如图7所示,内核层至少包含以下驱动中的至少一种:音频驱动、显示驱动、蓝牙驱动、摄像头驱动、WIFI驱动、USB驱动、HDMI驱动、传感器驱动(如指纹传感器,温度传感器,压力传感器等)、以及电源驱动等。
以下实施例中的方法均可以在具有上述硬件结构或软件结构的播放设备中实现。
以下结合附图8对本申请实施例提供的多媒体播放方法进行详细说明。如图8所示,本申请实施例提供多媒体资源播放方法可以包括S801-S808。
S801、获取多媒体资源。
在用户需要通过播放设备播放多媒体资源时,播放设备可以接收用户播放多媒体资源的操作。在播放设备接收到用户播放多媒体资源的操作之后,播放设备可以获取多媒体资源。播放设备的获取多媒体资源,可以包括音频数据、视频数据或者音视频数据。
在一些示例中,在多媒体资源为视频数据或者音视频数据时,多媒体资源还可以包括字幕数据。
在一些示例中,播放设备获取多媒体资源的方式可以通过播放设备中的通信器获得。
S802、创建多媒体资源对应的预处理模块,预处理模块用于对多媒体资源进行解析并缓存。
在播放设备接收到用户播放多媒体资源的操作之后,播放设备可以创建多媒体资源对应的预处理模块。预处理模块,可以用于对获得的多媒体资源进行解析并缓存。
在一些示例中,播放设备创建能够对多媒体资源进行解析并缓存的预处理模块,预处理模块可以包括文件下载模块、格式解封装模块和ES缓存模块。
文件下载模块可以用于对获取到的多媒体资源进行下载或读取。
格式解封装模块可以用于按照协议约定的文件封装格式对多媒体资源进行解析、封装。
需要说明的是,在文件下载模块创建成功之后,可以创建格式解封装模块,格式解封装模块与文件下载模块连接。格式解封装模块可以按照协议约定的文件封装格式对下载或读取的多媒体资源进行解析、封装,得到解封装后的多媒体资源(即音频数据、视频数据或者字幕数据),若多媒体资源包含多路音频数据,则会解析出多路音频数据。其中,解封装后的多媒体资源,包括图像编码类型、音频编码类型、音频采样率、音频声道数、视频的分辨率、帧率、码率、视频时长、视频宽、视频高等信息。
格式解封装模块创建成功后,可以创建ES缓存模块。ES缓存模块与格式解封装模块连接。ES缓存模块可以对解封装后的多媒体资源进行缓存,得到多媒体资源的ES数据。该ES缓存模块可以减少频繁缓冲的次数,还可以在未连接网络的情况下进行多媒体资源的播放;此外,ES缓存模块还可以缓存当前播放之外的其他通道的多媒体资源,这样能够保证音轨或字幕的速度。
在一些示例中,预处理模块除了包括上述模块外,预处理模块还可以包括协议解析模块,协议解析模块可以对流媒体文件进行解析获取多媒体资源地址并下载。
需要说明的是,在多媒体资源为音频数据、视频数据或者音视频数据时,播放器设备创建的预处理模块可以相同,如预处理模块可以均包括文件下载模块、格式解封装模块和ES缓存模块。
S803、创建多媒体资源对应的硬件解码器。
播放设备在多媒体资源对应的预处理模块创建成功后,播放设备可以创建多媒体资源对应的硬件解码器,从而可以通过硬件解码器对多媒体资源进行解码。
硬件解码是通过硬件进行多媒体资源的解码工作,其中硬件解码是由GPU来进行的,从而得到解码后的数据,使用GPU解码具有降低CPU的工作负荷,降低功耗等优点。
在一些示例中,在多媒体资源为音频数据时,硬件解码器可以为音频数据对应的音频硬件解码器。在音频数据对应的预处理模块创建成功后,播放设备可以创建音频数据对应的音频硬件解码器,从而可以通过音频硬件解码器对音频数据进行解码。
在一些示例中,在多媒体资源为视频数据时,硬件解码器可以为视频数据对应的视频硬件解码器。在视频数据对应的预处理模块创建成功后,播放设备可以创建视频数据对应的视频硬件解码器,从而可以通过视频硬件解码器对视频数据进行解码。
在一些示例中,在多媒体资源为音视频数据时,硬件解码器可以为音视频数据对应的音频硬件解码器和视频硬件解码器。在音视频数据对应的预处理模块创建成功后,播放设备可以创建音频数据对应的音频硬件解码器以及视频数据对应的视频硬件解码器,从而可以通过音频硬件解码器和视频硬件解码器对音频数据以及视频数据进行解码。
在一些示例中,在多媒体资源为音视频数据和字幕数据时,硬件解码器可以为音视频数据对应的音频硬件解码器、视频硬件解码器,以及字幕数据对应的字幕硬件解码器。在音视频数据和字幕数据对应的预处理模块创建成功后,创建音频数据对应的音频硬件解码器、视频数据对应的视频硬件解码器以及字幕数据对应的字幕硬件解码器。
S804、确定多媒体资源对应的硬件解码器是否创建成功。
播放设备创建多媒体资源对应的硬件解码器后,播放设备可以确定该硬件解码器是否创建成功,在确定多媒体资源对应的硬件解码器创建失败时,可以继续执行下述S805。在确定多媒体资源对应的硬件解码器创建成功时,可以继续执行下述S807。
在一些示例中,上述确定多媒体资源对应的硬件解码器是否创建成功,可以包括:若多媒体资源对应的硬件解码器创建成功,硬件解码器向播放设备发送创建成功消息,也可以称为硬件解码器prepared消息。在播放设备接收到硬件解码器发送的创建成功消息时,播放设备可以确定多媒体资源对应的硬件解码器创建成功。
若多媒体资源对应的硬件解码器创建失败,硬件解码器向播放设备发送创建失败消息,同时ES缓存模块不向多媒体资源对应的硬件解码器发送多媒体资源数据。在播放设备接收到硬件解码器发送的创建失败消息时,播放设备可以确定多媒体资源对应的硬件解码器创建失败。
在一些示例中,在预设时长内,播放设备没有接收到多媒体资源对应的硬件解码器创建失败的消息,则确定多媒体资源对应的硬件解码器创建成功,执行下述S807;否则,确定多媒体资源对应的硬件解码器创建失败,ES缓存模块不向多媒体资源对应的硬件解码器发送多媒体资源数据,执行下述S805。
在一些示例中,预设时长可以根据实际情况设定,本申请的实施例对预设时长的时间不做限制。例如,预设时长可以是10毫秒(ms)、50ms或100ms。
S805、创建多媒体资源对应的软件解码器。
播放设备在确定多媒体资源对应的硬件解码器创建失败的情况下,可以基于创建硬件解码器的错误类型,创建该多媒体资源对应的软件解码器,从而可以通过软件解码器对多媒体资源进行解码。
软件解码是通过软件本身占用的CPU进行解码,从而得到解码后的数据。软件解码具有灵活、硬件精简、可靠性高一级成本低等优点。
在一些示例中,在多媒体资源为音频数据时,确定音频数据对应的音频硬件解码器创建失败的情况下,基于创建失败的音频硬件解码器,播放设备可以创建音频数据对应的音频软件解码器,从而可以通过音频软件解码器对音频数据进行解码。
在一些示例中,在多媒体资源为视频数据时,确定视频数据对应的视频硬件解码器创建失败的情况下,基于创建失败的视频硬件解码器,播放设备可以创建视频数据对应的音频软件解码器,从而可以通过视频软件解码器对视频数据进行解码。
在一些示例中,在多媒体资源为音视频数据时,确定音视频数据对应的音频硬件解码器和视频硬件解码器均创建失败的情况下,基于创建失败的音频硬件解码器和视频硬件解码器,播放设备可以创建音视频数据对应的音频软件解码器和视频软件解码器,从而可以通过音频软件解码器和视频软件解码器对音频数据和视频数据进行解码。
S806、将预处理模块包括的多媒体资源,发送给多媒体资源对应的软件解码器,以得到多媒体资源对应的解码数据。
预处理模块可以将解析并缓存得到的多媒体资源的ES数据,发送给创建的多媒体资源对应的软件解码器。多媒体资源对应的软件解码器对多媒体资源进行解码,得到多媒体资源对应的解码数据。
在一些示例中,在多媒体资源为音频数据时,预处理模块可以将解析并缓存的音频数据,发送给音频软件解码器,由音频软件解码器对音频数据进行解码,得到音频数据对应的解码数据。
在一些示例中,在多媒体资源为视频数据时,预处理模块可以将解析并缓存的视频数据,发送给视频软件解码器,由视频软件解码器对视频数据进行解码,得到视频数据对应的解码数据。
在一些示例中,在多媒体资源为音视频数据时,预处理模块可以将解析并缓存的音视频数据,发送给音频软件解码器和视频软件解码器,由音频软件解码器对音频数据进行解码,由视频软件解码器对视频数据进行解码,得到音视频数据对应的解码数据。
在一些示例中,在多媒体资源对应的软件解码器创建成功之后,可以将预处理模块包括的多媒体资源,发送给多媒体资源对应的软件解码器,以得到多媒体资源对应的解码数据。
在一些示例中,多媒体资源对应的软件解码器创建成功,可以包括:多媒体资源对应的软件解码器向播放设备发送创建成功消息,也可以称为软件解码器prepared消息。在播放设备接收到软件解码器发送的创建成功消息时,播放设备可以确定多媒体资源对应的硬件解码器创建成功。
在一些示例中,多媒体资源对应的软件解码器创建成功,可以包括:在预设时长内,播放设备没有接收到多媒体资源对应的软件解码器创建失败的消息,则确定多媒体资源对应的硬件解码器创建成功。
S807、将预处理模块包括的多媒体资源,发送给多媒体资源对应的硬件解码器,以得到多媒体资源对应的解码数据。
播放设备在确定多媒体资源对应的硬件解码器创建成功的情况下,可以将预处理模块解析并缓存的多媒体资源,发送给多媒体资源对应的硬件解码器,从而得到多媒体资源对应的解码数据。
在一些示例中,在多媒体资源为音频数据时,确定音频数据对应的音频硬件解码器创建成功的情况下,预处理模块可以将解析并缓存的音频数据发送给音频硬件解码器,从而得到音频数据对应的解码数据。
在一些示例中,在多媒体资源为视频数据时,确定视频数据对应的视频硬件解码器创建成功的情况下,预处理模块可以将解析并缓存的视频数据发送给视频硬件解码器,从而得到视频数据对应的解码数据。
在一些示例中,在多媒体资源为音视频数据时,确定音视频数据对应的音频硬件解码器和视频硬件解码器均创建成功的情况下,预处理模块可以将解析并缓存的音视频数据发送给音频硬件解码器和视频硬件解码器,从而得到音视频数据对应的解码数据。
S808、播放多媒体资源对应的解码数据。
播放设备可以控制扬声器和/或显示器播放多媒体资源对应的解码数据。
在一些示例中,在多媒体资源为音频数据时,播放设备可以控制扬声器播放音频数据对应的解码数据。
在一些示例中,播放设备控制扬声器播放音频数据对应的解码数据,可以包括:先对音频解码器(即音频软件解码器或音频硬件解码器)得到的解码数据,进行音频音效处理,得到处理之后的音频数据对应的解码数据。然后对得到的处理之后的音频数据对应的解码数据进行渲染。最后控制扬声器播放渲染之后的音频数据对应的解码数据。
在一些示例中,在多媒体资源为视频数据时,播放设备可以控制显示器播放视频数据对应的解码数据。
在一些示例中,播放设备控制显示器播放视频数据对应的解码数据,可以包括:对视频解码器(即视频软件解码器或视频硬件解码器)得到的解码数据进行渲染,然后控制显示器显示渲染之后的视频数据对应的解码数据。
在一些示例中,在多媒体资源为音视频数据时,播放设备可以控制扬声器和显示器播放音视频数据对应的解码数据。
在一些示例中,播放设备控制控制扬声器和显示器播放音视频数据对应的解码数据,可以包括:先对音频解码器(即音频软件解码器或音频软件解码器)得到的音频数据对应的解码数据进行音效处理,得到音效处理之后的音频数据对应的解码数据。
然后将视频解码器(即视频软件解码器或视频硬件解码器)得到的视频数据对应的解码数据和音效处理之后的音频数据对应的解码数据进行同步。
再将同步后的音频数据对应的解码数据进行渲染,对同步后的视频数据对应的解码数据进行渲染。
最后播放设备控制扬声器播放渲染之后的音频数据对应的解码数据以及控制显示器显示渲染之后的视频数据对应的解码数据。
本申请的方案,先获取多媒体资源,创建多媒体资源对应的预处理模块,通过预处理模块对获取的多媒体资源进行缓存并解析;然后在多媒体资源创建失败的情况下,创建多媒体资源对应的软件解码器;之后将缓存并解析的多媒体资源发送给软件解码器,由软件解码器进行解码得到多媒体资源对应的解码数据,最后播放多媒体资源对应的解码数据。
本申请的方案由于在多媒体资源对应的硬件解码器创建失败时,创建多媒体资源对应的软件解码器,由创建多媒体资源对应的软件解码器对多媒体资源进行解码,能够解决在电视机播放不同通道对应的多媒体资源时,出现的硬件解码器资源冲突,从而无法播放所有通道对应的多媒体资源的问题。
且本申请的方案,在多媒体资源对应的软件解码器创建成功后,预处理模块才向软件解码器发送解析并缓存的多媒体资源,这样能够保证软件解码器解码的多媒体资源对应的解码数据是完整的数据,从而保证多媒体正常播放,提高用户的体验度。
此外,本申请的方案在播放设备播放不同通道的多媒体资源,出现硬件解码资源不足时,先创建硬件解码器和预处理模块,如果硬件解码器创建成功的话,预处理模块会向硬件解码器发送多媒体资源,如果硬件解码器创建失败的话,会创建对应的软件解码器,已创建的预处理模块会向软件解码器发送多媒体资源。也就是说,在播放设备创建多媒体资源对应的软件解码器之后,是复用之前创建的预处理模块,从而不需要再次解析并缓存多媒体资源,能够避免多媒体资源开始播放的时间过长,保证多媒体正常播放,提高用户的体验度,节省资源。
由于播放设备播放的多媒体资源可以是音频数据,也可以是音视频数据,还可以是视频数据,而在播放设备播放的多媒体资源是音频数据,或者音视频数据,或者视频数据时,播放设备包括的软件模块会有区别(即播放器管道会有所不同)。
例如,以播放设备为电视机,播放设备播放的多媒体资源是音视频数据为例,如图9所示,在音频数据对应的硬件解码器和视频数据对应的硬件解码器创建成功时,电视机的软件结构可以包括:播放器900、预处理模块901、音频选择模块902,音频硬件解码器903,音频音效处理模块904,视频硬件解码器905,音频、视频同步模块906,音频渲染模块907和视频渲染模块908。仅在音频数据对应的硬件解码器创建失败时,该电视机还可以包括音频软件解码器909和音频音效处理模块910。
其中,播放器900用于接收各模块的消息,并向各个模块发送指令。预处理模块901用于对音视频数据进行解析、缓存。预处理模块可以包括文件下载模块901-1,协议解析模块901-2、格式解封装模块901-3,ES缓存模块901-4。
音频软件解码器909用于通过软件对音频数据进行解码,音频音效处理模块910用于对进行解码后的音频数据进行音效处理。
以下结合附图9,对本实施例提供的一种多媒体资源播放方法进行详细说明。如图10所示,本实施例提供的多媒体资源播放方法可以包括:S1001-S1008。
S1001、获得音视频数据。
在用户需要通过电视机播放多媒体资源时,电视机可以接收用户播放音视频数据的操作。在电视机接收到用户播放音视频数据的操作之后,电视机可以获取音视频数据。
在一些示例中,电视机可以通过通信器获得音视频数据文件。
S1002、创建音视频数据对应的预处理模块,预处理模块可以用于对音视频数据进行解析并缓存。
电视机创建音视频数据对应的预处理模块,对音视频数据进行解析并缓存。
例如,结合图9所示,上述预处理模块901可以用于对音视频数据进行解析并缓存。预处理模块901可以包括文件下载模块901-1,协议解析模块901-2,格式解封装模块901-3,ES缓存模块901-4。
在电视机播放音视频时,文件下载模块901-1可以通过HDMI、DTV直播电视、本地媒体或网络媒体等不同通道中的一个通道读取本地或下载获得的音视频文件数据。通过协议解析模块901-2确定读取本地或下载的音视频数据是否时流媒体数据,若是则对流媒体数据进行解析获取流媒体数据的地址并下载。
然后格式解封装模块901-3对下载的音视频数据进行格式的解析、封装,得到音频数据和视频数据。之后ES缓存模块901-4对得到的音频数据和视频数据进行缓存,得到音视频的ES数据(即缓存的音视频数据),以将得到的音视频的ES数据发送至对应的解码器进行解码;其中音视频的ES数据包括事件和缓存数据,事件可以包括开始、暂停、跳转和结束等事件,缓存数据可以包括音视频数据。
S1003、创建音频数据对应的音频硬件解码器,以及创建视频数据对应的视频硬件解码器。
电视机在接收到ES缓存模块创建成功后,创建音频数据对应的音频硬件解码器,同时创建视频数据对应的视频硬件解码器。
例如,结合图9所示,在ES缓存模块901-4创建成功后,播放器900可以创建音频数据对应的音频选择模块902和视频数据对应的视频硬件解码器905,音频选择模块902基于用户选择的track索引标记以及预先设置的输出顺序从缓存的多路音频数据中选择需要解码的音频数据,视频硬件解码器905用于对缓存的视频数据进行解码。
在音频选择模块902创建成功后,音频选择模块902向播放器900发送音频选择模块902创建成功消息。播放器900基于创建成功消息,可以创建音频数据对应的音频硬件解码器903,音频硬件解码器903用于对音频数据进行解码。
之后,播放器900可以确定音频硬件解码器903和视频硬件解码器905是否创建成功。
在音频硬件解码器和视频硬件解码器均创建成功的情况下,音频硬件解码器903和视频硬件解码器905向播放器900发送音频创建成功消息(即音频硬件解码器prepraed消息)和视频创建成功消息(视频硬件解码器prepraed消息)。播放器900在接收到音频创建成功和视频创建成功消息后,向ES缓存模块901-4发送数据指令。ES缓存模块901-4接收到数据指令后,向音频硬件解码器903和视频硬件解码器905发送缓存的音视频数据,进而完成音视频的播放。
S1004、在音频硬件解码器创建失败,视频硬件解码器创建成功的情况下,创建音频数据对应的音频软件解码器。
电视机在确定音频硬件解码器创建失败,视频硬件解码器创建成功的情况下,音频硬件解码器和视频硬件解码器向播放器发送音频创建失败消息以及视频创建成功消息,播放器基于音频创建失败消息发送创建音频软件解码器指令,基于创建失败的音频硬件解码器,创建音频数据对应的音频软件解码。
例如,结合图9所示,电视机在音频硬件解码器903创建失败的情况下,首先获取已经创建的音频硬件解码器903,并获取该音频硬件解码器903之前的音频选择模块902,断开与音频选择模块902的连接,即ES缓存模块901-4不通过音频选择模块902向该音频硬件解码器903发送缓存的音频数据,并且释放该音频硬件解码器903的存储资源。
若在建立音频硬件解码器903后,已经建立音频硬件解码器903对应的音频音效处理模块904,则也将建立的音频硬件解码器903与音频音效处理模块904的连接断开,即释放音频音效处理模块904的存储资源。
然后基于创建失败的音频硬件解码器903,创建音频数据对应的音频软件解码器909,以使该音频软件解码器909对缓存的音频数据进行解码。
在一些示例中,在预设时长内,播放器900仅接收到音频硬件解码器创建失败的消息,没有收到视频硬件解码器创建失败的消息,则确定音频硬件解码器创建失败,视频硬件解码器创建成功,则创建音频数据对应的音频软件解码器909。
S1005、将预处理模块包括的音频数据,发送给音频软件解码器,以得到音频数据对应的解码数据;将预处理模块包括的视频数据,发送给视频硬件解码器,以得到视频数据对应的解码数据。
在音频软件解码器创建成功后,音频软件解码器向播放器发送音频创建成功消息,也可以称为音频软件prepared消息。播放器向预处理模块发送数据指令,之后预处理模块将下载、解封装并缓存的音频数据,通过音频选择模块发送给音频软件解码器,音频软件解码器对缓存的音频数据进行解码,得到音频数据对应的解码数据。预处理模块将下载、解析并缓存的视频数据,发送给视频硬件解码器,视频硬件解码器对缓存的视频数据进行解码,得到视频数据对应的解码数据。
例如,结合图9所示,音频选择模块902与新创建的音频软件解码器909建立连接,音频选择模块902可以基于用户选择的track索引标记以及预先设置的输出顺序从缓存的多路音频数据中选择需要解码的音频数据发送至音频软件解码器909;音频软件解码器909对缓存的音频数据进行解码,得到音频数据对应的解码数据。视频硬件解码器905对缓存的视频数据进行解码,得到视频数据对应的解码数据。
这样,在电视机播放不同通道的音视频数据时,在音频硬件解码器创建失败的情况下,电视机在创建音频软件解码器后,复用之前创建的预处理模块,通过音频软件解码器对缓存的音频数据进行解码。
S1006、创建音频软件解码器对应的音频音效处理模块。
电视机在创建音频软件解码器后,可以创建音频软件解码器对应的音频音效处理模块。该音频音效可以对音频声道数、采样率进行转换,以得到处理后的解码数据。
例如,结合图9所示,在音频软件解码器909创建成功后,可以创建音频音效处理模块910,音频软件解码器909与音频音效处理模块910连接。音频音效处理模块910对解码后的音频数据进行音效处理。
在一些示例中,音频音效处理模块910可以按照需求选择性的创建。如音频硬件解码器内部做了混合(upmix)处理,则创建音频音效处理模块。
S1007、将音频数据对应的解码数据发送给音频音效处理模块,以得到处理之后的解码数据。
将音频数据对应的解码数据发送给音频音效处理模块,音频音效处理模块对接收的解码数据进行音效处理,以得到音效处理后的音频数据对应的解码数据。
S1008、播放音视频数据对应的解码数据。
电视机可以控制显示器显示处理之后的视频数据对应的解码数据,同时控制扬声器,播放处理之后的音频数据对应的解码数据。
例如,如图9所示,在得到音效处理后的音频数据对应的解码数据和视频数据对应的解码数据后,可以通过音视频同步模块906将音效处理后的音频数据对应的解码数据和视频数据对应的解码数据进行同步。
然后视频渲染模块908对同步后的视频数据对应的解码数据进行渲染,音频渲染模块907对同步后的音频数据对应的解码数据进行渲染。
最后电视机控制扬声器播放渲染后的音频数据对应的解码数据,以及控制显示器显示渲染后的视频数据对应的解码数据。
本申请的方案,电视机播放不同通道的音视频数据时,先创建预处理模块,通过预处理模块下载、解封装以及缓存音视频数据,在音频数据对应的音频硬件解码器创建失败,视频数据对应的视频硬件解码器创建成功的情况下,仅需创建音频软件解码器,已创建的预处理模块会向音频软件解码器发送缓存的音频数据,然后通过创建的音频软件解码器对缓存的音频数据进行解码,从而实现音视频的播放。这样,能够在较短的时间内实现音视频的起播,保证电视机能够正常播放音视频,同时能够节省资源。
多媒体资源可以仅为音频数据,在播放音频数据的过程中,音频数据对应的硬件解码器可能创建失败。在创建失败时,可以创建音频数据对应的软件解码器,从而保证音频数据的正常播放。
例如,以播放设备为电视机,播放设备播放的多媒体资源是音频数据为例。结合图9所示,播放设备播放音频数据的方法可以包括:
电视机在播放音频数据时,预处理模块901先解析、缓存音频数据。预处理模块901可以包括下载模块901-1、格式解封装模块901-3、ES缓存模块901-4以及音频选择模块902。即先通过文件下载模块901-1通过HDMI、DTV直播电视、本地媒体或网络媒体等不同通道中的一个通道读取本地或下载获取的音频数据。然后格式解封装模块901-3按照协议约定的文件封装格式对音频数据进行解析、封装,得到不同的音频数据。之后通过ES缓缓模块901-4对得到的音频数据进行缓存,得到音频的ES数据(即缓存的音频数据)。再音频选择模块902基于用户选择的track索引标记以及预先设置的输出顺序从缓存的多路音频数据中选择需要解码的音频数据。
在预处理模块901创建成功后,可以创建音频硬件解码器903,音频音效处理模块904以及音频渲染模块907。在确定音频硬件解码器903创建成功后,音频硬件解码器903向播放器900发送音频创建成功消息。播放器900接收到音频创建成功消息后,向音频选择模块902发送数据指令。音频选择模块902接收到数据指令后,向音频硬件解码器903发送缓存的音频数据。音频硬件解码器903对缓存的音频数据进行解码,得到音频数据对应的解码数据。音频音效模块904对音频数据对应的解码数据进行音效处理,得到音效处理后的音频数据对应的解码数据。音频渲染模块907对音效处理后的音频数据对应的解码数据进行渲染。最后电视机控制扬声器播放渲染后的音频数据对应的解码数据。
在音频硬件解码器903创建失败的情况下,音频硬件解码器903向播放器900发送音频创建失败消息。播放器900接收到音频创建失败消息后,基于创建失败的音频硬件解码器903,创建音频软件解码器909;同时播放器900不向ES缓存模块901-4发送数据指令,即ES缓存模块901-4不向音频硬件解码器903发送缓存的音频数据。
在音频软件解码器909创建成功后,音频软件解码器909向播放器900发送音频创建成功消息,同时创建音频音效处理模块910。播放器900接收音频创建成功消息后,向音频选择模块902发送数据指令。然后音频选择模块902将缓存的音频数据发送至音频软件解码器909,以得到音频数据对应的解码数据。在得到音频数据对应的解码数据后通过音频音效处理模块910以及音频渲染模块进行音效处理以及渲染处理,进而控制扬声器播放处理后的音频数据对应的解码数据。
在一些示例中,音频音效处理模块910可以按照需求选择性的创建。如音频硬件解码器内部做了upmix处理,则创建音频音效处理模块。
本申请的方案,电视机在播放音频数据时,先创建预处理模块,通过预处理模块下载、解封装以及缓存音频数据,并将缓存的音频数据发送至音频硬件解码器,在音频硬件解码器创建失败的情况下,创建音频软件解码器,然后复用预处理模块下载、解析封装以及缓存音频数据,再通过创建的音频软件解码器对缓存的音频数据进行解码,从而实现音频的播放。这样,能够在较短的时间内实现音频的起播,保证音频的正常播放,同时能够节省资源。
以下结合图11和图12,对播放设备播放的多媒体资源是音视频数据时,音视频数据中音频数据对应的硬件解码器和视频数据对应的硬件解码器均创建失败时的具体流程进行示意说明。
例如,以播放设备为电视机,播放设备播放的多媒体资源是音视频据为例,如图11所示,在音视频数据对应的硬件解码器和视频数据对应的硬件解码器均创建成功时,电视机可以包括:播放器1100、预处理模块1101、音频选择模块1102,音频硬件解码器1103,音频音效处理模块1104,视频硬件解码器1105,音频、视频同步模块1106,音频渲染模块1107和视频渲染模块1108。在音频数据对应的硬件解码器和视频数据对应的硬件解码器均创建失败时,电视机的软件结构可以包括音频软件解码器1109、音频音效处理模块1110、音频软件渲染同步模块1111和视频软件解码模块1112、视频软件渲染同步模块1113。其中,播放设备1100用于接收各模块的消息,并向各模块发送指令。
以下结合附图11对本实施例提供的一种多媒体资源播放方法进行详细说明。如图12所示,本实施例提供的多媒体资源播放方法可以包括:S1201-S1210。
S1201、获得音视频数据。
S1202、创建音视频数据对应的预处理模块,预处理模块可以用于对音视频数据进行解析并缓存。
S1203、创建音频数据对应的音频硬件解码器,以及创建视频数据对应的视频硬件解码器。
S1204、在音频硬件解码器和视频硬件解码器均创建失败的情况下,创建音频数据对应的音频软件解码器以及视频数据对应的视频软件解码器。
在确定音频硬件解码器和视频硬件解码器均创建失败的情况下,音频硬件解码器和视频硬件解码器向播放器发送音频创建失败消息和视频创建失败消息。播放器接收到音频创建失败消息和视频创建失败消息后,基于创建失败的音频硬件解码器和视频硬件解码器,创建音频数据对应的音频软件解码器,以及视频数据对应的视频软件解码器。
例如,结合图11所示,在音频硬件解码器1103和视频硬件解码器1105创建失败的情况下,首先获取已经创建的音频硬件解码器1103和视频硬件解码器1105,并获取该音频硬件解码器1103之前的音频选择模块1102和该视频硬件解码器1105之前的ES缓存模块1101-4。然后断开音频选择模块1102与音频硬件解码器1103的连接,并断开视频硬件解码器1105与ES缓存模块1101-4的连接。即ES缓存模块1101-4不通过音频选择模块1102向该音频硬件解码器1103发送缓存的音频数据,ES缓存模块1101-4不向该视频硬件解码器1105发送缓存的视频数据,并且释放该音频硬件解码器1103和该视频硬件解码器1105的存储资源。
由于视频硬件解码器1105与音视频同步模块1106和视频渲染模块1108强关联。若在建立音频硬件解码器1103和视频硬件解码器1105后,已经建立音频硬件解码器1103对应的音频音效处理模块1104、音视频同步模块1106、音频渲染模块1107和视频渲染模块1108,则断开音频硬件解码器1103和视频硬件解码器1105之后模块的连接。即释放音频音效处理模块1104、音视频同步模块1106、音频渲染模块1107和视频渲染模块1108的存储资源。
然后基于创建失败的音频硬件解码器1103,创建音频数据对应的音频软件解码器1109,以使该音频软件解码器1109对缓存的音频数据进行解码;同时基于创建失败的视频硬件解码器1105,创建视频数据对应的视频软件解码器1112,以使该视频软件解码器1112对缓存的视频数据进行解码。
在一些示例中,在预设时长内,播放器接收到音频硬件解码器和视频硬件解码器创建失败的消息,则确定音频硬件解码器和视频硬件解码器均创建失败,基于创建失败的音频硬件解码器,创建音频数据对应的音频软件解码器,以及基于创建失败的视频硬件解码器,创建视频数据对应的视频软件解码器。
S1205、将预处理模块包括的音频数据,发送给音频软件解码器,以得到音频数据对应的解码数据;将预处理模块包括的视频数据,发送给视频软件解码器,以得到视频数据对应的解码数据。
例如,结合图11所示,在音频软件解码器1109和视频软件解码器1112创建成功后,音频软件解码器1109和视频软件解码器1112向播放器1100发送音频创建成功消息和视频创建成功消息。播放器1100基于音频创建成功消息和视频创建成功消息,向ES缓存模块1101-4发送数据指令。
ES缓存模块1101-4接收到数据指令后,将缓存的音频数据发送给音频软件解码器1109,以得到音频数据对应的解码数据;同时ES缓存模块1101-4将缓存的视频数据发送给视频软件解码器1112,以得到视频数据对应的解码数据。
S1206、创建音频软件解码器对应的音频音效处理模块以及音频软件渲染同步模块。
例如,结合图11所示,播放器1100在接收到音频软件解码器1109创建成功的消息后,可以创建音频音效处理模块1110和创建音频软件渲染同步模块1111。音频软件解码器1109、音频音效处理模块1110与音频软件渲染同步模块1111依次建立连接。
S1207、创建视频软件解码器对应的视频软件同步渲染模块。
例如,结合图11所示,播放器1100在接收到视频软件解码器1112创建成功消息后,可以创建视频软件渲染同步模块1113。视频软件解码器1112与视频软件渲染同步模块1113建立连接。
在一些示例中,创建音频音效处理模块1110的同时,在接收到创建视频软件解码器1112成功后可以创建视频软件同步渲染模块1113。
S1208、将音频数据对应的解码数据发送给音频音效处理模块,以得到处理之后的音频数据对应的解码数据。
S1209、音频软件渲染同步模块接收到处理之后的音频数据对应的解码数据后,进行同步渲染,得到处理之后的音频数据对应的解码数据;由视频软件解码器将视频对应的解码数据发送至视频软件渲染同步模块,之后视频软件渲染同步模块对视频数据对应的解码数据进行同步渲染。
S1210、播放音视频数据。
本申请的方案,电视机播放不同通道的音视频数据时,先创建预处理模块,通过预处理模块下载、解封装以及缓存音频数据,在出现音视频数据对应的音频硬件解码器和视频硬件解码器均创建失败的情况下,能够复用预处理模块下载、解封装以及缓存音视频数据,然后通过创建的视频软件解码器和音频视频软件解码器对缓存的音视频数据进行解码,从而实现音视频的播放。这样,能够避免音视频的开始播放时间过长,保证音视频正常播放,提升用户体验度,节省资源。
多媒体资源可以仅为视频数据,在播放视频数据的过程中,视频数据对应的硬件解码器可能创建失败。在创建失败时,可以创建视频数据对应的软件解码器,从而保证视频数据的正常播放。
例如,以播放设备为电视机,播放设备播放的多媒体资源是视频据为例。结合图9所示,播放设备播放视频数据的方法可以包括:
电视机播放视频数据时,预处理模块1101先解析、缓存视频数据。即先通过文件下载模块1101-1通过HDMI、DTV直播电视、本地媒体或网络媒体等不同通道中的一个通道读取本地或下载视频数据片源。若为流媒体视频数据时,可以通过协议解封装模块1101-2对流媒体索引文件解析获取流媒体地址并进行下载。
然后格式解封装模块1101-3按照协议约定的文件封装格式对视频数据进行解析、封装,得到不同的视频数据;再通过ES缓存模块1101-4对得到的视频数据进行缓存,得到视频的ES数据(即缓存的视频数据)。
在预处理模块1101-1创建成功后,可以创建视频硬件解码器1105和视频渲染模块1108。
播放器1100确定视频硬件解码器1105是否创建成功。在确定视频硬件解码器1105创建成功的情况下,视频硬件解码器1105向播放器1100发送视频创建成功消息。播放器1100接收到视频创建成功消息后,确定视频硬件解码器创建成功,向ES缓存模块1101-4发送数据指令。在ES缓存模块1101-4接收到指令后,向视频硬件解码器1105发送缓存的视频数据。视频硬件解码器1105对缓存的视频数据进行解码,得到视频数据对应的解码数据。视频渲染模块1108对视频数据对应的解码数据进行渲染。最后电视机控制显示器播放渲染后的视频数据对应的解码数据。
在视频硬件解码器1105创建失败的情况下,视频硬件解码器1105向播放器1100发送视频创建失败消息。播放器1100接收到视频创建失败消息后,确定视频硬件解码器创建失败,不向ES缓存模块1101-4发送数据指令,即ES缓存模块1101-4不向视频硬件解码器1105发送缓存的视频数据;同时播放器1100基于创建失败的视频硬件解码器1105,创建视频软件解码器1112。
在视频软件解码器1112创建成功后,可以创建视频软件渲染模块1113,同时视频软件解码器1112向播放器1100发送视频创建成功消息。播放器1100在接收到视频创建成功消息后,向ES缓存模块1101-4发送数据指令。ES缓存模块1101-4将缓存的视频数据发送至视频软件解码器1112,以得到视频数据对应的解码数据。
视频软件渲染模块1113对视频数据对应的解码数据进行渲染,进而电视机控制显示器播放渲染后的视频数据。
本申请的方案,在电视机获取到不同通道的视频数据后,先创建能够解析并缓存视频数据的预处理模块,然后创建视频硬件解码器,在确定视频硬件解码器创建失败的情况下创建视频软件解码器,之后将预处理模块缓存的视频数据发送到视频软件解码器进行解码,从而实现视频的播放。也就是说,本申请的方案,在视频硬件解码器创建失败的情况下,下载、解析、封装一次视频数据,通过创建视频软件解码器完成视频数据的解码,进而实现视频的播放。这样,能够提高用户的体验度。
对于前述的多媒体资源播放方法,本申请的实施例还提供一种多媒体资源播放装置。该多媒体资源播放装置可以应用于播放设备,用于实现前述实施例中的方法。该多媒体资源播放装置的功能可以通过硬件实现,也可以通过硬件执行想要赢的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
例如,如图13示出了一种多媒体资源播放装置的结构示意图。如图13所示,多媒体资源播放装置1300可以包括:获取模块1301、创建模块1302、发送模块1303和播放模块1304等。
其中,获取模块1301,可以用于获取多媒体资源。
创建模块1302,可以用于创建多媒体资源对应的预处理模块,预处理模块用于对多媒体资源进行解析并缓存。
创建模块1302,还可以用于在多媒体资源对应的硬件解码器创建失败的情况下,创建多媒体资源对应的软件解码器。
发送模块1303,可以用于将预处理模块包括的多媒体资源发送给软件解码器,以得到多媒体资源对应的解码数据。
播放模块1304,可以用于播放多媒体资源对应的解码数据。
应理解以上装置中单元或模块(以下均称为单元)的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且装置中的单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元以软件通过处理元件调用的形式实现,部分单元以硬件的形式实现。
例如,各个单元可以为单独设立的处理元件,也可以集成在装置的某一个芯片中实现,此外,也可以以程序的形式存储于存储器中,由装置的某一个处理元件调用并执行该单元的功能。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件又可以称为处理器,可以是一种具有信号的处理能力的集成电路。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路实现或者以软件通过处理元件调用的形式实现。
在一个例子中,以上装置中的单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个ASIC,或,一个或多个DSP,或,一个或者多个FPGA,或这些集成电路形式中至少两种的组合。
再如,当装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如CPU或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
在一种实现中,以上装置实现以上方法中各个对应步骤的单元可以通过处理元件调度程序的形式实现。例如,该装置可以包括处理元件和存储元件,处理元件调用存储元件存储的程序,以执行以上方法实施例所述的方法。存储元件可以为与处理元件处于同一芯片上的存储元件,即片存储元件。
在另一种实现中,用于执行以上方法的程序可以在与处理元件处于不同芯片上的存储元件,即片外存储元件。此时,处理元件从片外存储元件调用或加载程序于片存储储元件上,以调用并执行以上方法实施例所述的方法。
例如,本申请实施例还可以提供一种装置,如:电子设备,可以包括:处理器,用于存储该处理器可执行指令的存储器。该处理器被配置为执行上述指令时,使得该电子设备实现如前述实施例所述的多媒体资源播放方法。该存储器可以位于该电子设备之内,也可以位于该电子设备之外。且该处理器包括一个或多个。
在又一种实现中,该装置实现以上方法中各个步骤的单元可以是被配置成一个或多个处理元件,这些处理元件可以设置于对应上述的电子设备上,这里的处理元件可以为集成电路,例如:一个或多个ASIC,或,一个或多个DSP,或,一个或者多个FPGA,或者这些类集成电路的组合。这些集成电路可以集成在一起,构成芯片。
例如,本申请实施例还提供一种芯片,该芯片可以应用于上述电子设备。芯片包括一个或多个接口电路和一个或多个处理器;接口电路和处理器通过线路互联;处理器通过接口电路从电子设备的存储器接收并执行计算机指令,以实现以上方法实施例中所述的方法。
本申请实施例还提供一种计算机程序产品,包括如上述电子设备运行的计算机指令。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,如:程序。该软件产品存储在一个程序产品,如计算机可读存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
例如,本申请实施例还可以提供一种计算机可读存储介质,其上存储有计算机程序指令。当计算机程序指令被电子设备执行时,使得电子设备实现如前述方法实施例中所述的多媒体资源播放方法。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种播放设备,其特征在于,所述播放设备包括:
显示器;
扬声器;
通信器,被配置为获取多媒体资源;
处理器,分别与所述显示器、所述扬声器以及所述通信器耦接,且被配置为:
创建所述多媒体资源对应的预处理模块,所述预处理模块用于对所述多媒体资源进行解析并缓存;
在所述多媒体资源对应的硬件解码器创建失败的情况下,创建所述多媒体资源对应的软件解码器;
将所述预处理模块包括的所述多媒体资源,发送给所述软件解码器,以得到所述多媒体资源对应的解码数据;
控制所述扬声器和/或所述显示器,播放所述多媒体资源对应的解码数据。
2.根据权利要求1所述的播放设备,其特征在于,所述多媒体资源包括音频数据,所述硬件解码器为所述音频数据对应的音频硬件解码器,所述处理器,具体被配置为:
在所述音频硬件解码器创建失败的情况下,创建所述音频数据对应的音频软件解码器;
将所述预处理模块包括的音频数据,发送给所述音频软件解码器,以得到所述音频数据对应的解码数据。
3.根据权利要求2所述的播放设备,其特征在于,所述处理器,具体被配置为:
创建所述音频软件解码器对应的音频音效处理模块;
将所述音频数据对应的解码数据,发送给所述音频音效处理模块,以得到处理之后的解码数据;
控制所述扬声器,播放所述处理之后的解码数据。
4.根据权利要求1所述的播放设备,其特征在于,所述多媒体资源包括视频数据,所述硬件解码器为所述视频数据对应的视频硬件解码器,所述处理器,具体被配置为:
在所述视频硬件解码器创建失败的情况下,创建所述视频数据对应的视频软件解码器;
将所述预处理模块包括的视频数据,发送给所述视频软件解码器,以得到所述视频数据对应的解码数据。
5.根据权利要求4所述的播放设备,其特征在于,所述处理器,具体被配置为:
控制所述显示器,显示所述视频数据对应的解码数据。
6.根据权利要求1所述的播放设备,其特征在于,所述多媒体资源包括音频数据和视频数据,所述硬件解码器为所述音频数据对应的音频硬件解码器和所述视频数据对应的视频硬件解码器,所述处理器,具体被配置为:
在所述音视频硬件解码器和所述视频硬件解码器均创建失败的情况下,创建所述音频数据对应的音频软件解码器和所述视频数据对应的视频软件解码器;
将所述预处理模块包括的音频数据和视频数据,发送给所述音频软件解码器和所述视频软件解码器,以得到所述音视频数据对应的解码数据和所述视频数据对应的解码数据。
7.根据权利要求6所述的播放设备,其特征在于,所述处理器,具体被配置为:
创建所述音频软件解码器对应的音频音效处理模块;
将所述音频数据对应的解码数据,发送给所述音频音效处理模块,以得到处理之后的解码数据;
控制所述扬声器,播放所述处理之后的解码数据;控制所述显示器,显示所述视频数据对应的解码数据。
8.根据权利要求1所述的播放设备,其特征在于,所述处理器,还被配置为:
在所述多媒体资源对应的硬件解码器创建成功的情况下,将所述预处理模块包括的所述多媒体资源,发送给所述硬件解码器,以得到所述多媒体资源对应的解码数据;
控制所述扬声器和/或所述显示器,播放所述多媒体资源对应的解码数据。
9.一种多媒体资源播放方法,其特征在于,所述方法包括:
获取多媒体资源;
创建所述多媒体资源对应的预处理模块,所述预处理模块用于对所述多媒体资源进行解析并缓存;
在所述多媒体资源对应的硬件解码器创建失败的情况下,创建所述多媒体资源对应的软件解码器;
将所述预处理模块包括的所述多媒体资源,发送给所述软件解码器,以得到所述多媒体资源对应的解码数据;
播放所述多媒体资源对应的解码数据。
10.一种计算机可读存储介质,其上存储有计算机程序指令;其特征在于,
当所述计算机程序指令被电子设备执行时,使得电子设备实现如权利要求9中所述的多媒体资源播放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310364223.5A CN117615191A (zh) | 2023-04-06 | 2023-04-06 | 一种多媒体资源播放方法及播放设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310364223.5A CN117615191A (zh) | 2023-04-06 | 2023-04-06 | 一种多媒体资源播放方法及播放设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117615191A true CN117615191A (zh) | 2024-02-27 |
Family
ID=89950337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310364223.5A Pending CN117615191A (zh) | 2023-04-06 | 2023-04-06 | 一种多媒体资源播放方法及播放设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117615191A (zh) |
-
2023
- 2023-04-06 CN CN202310364223.5A patent/CN117615191A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112367543B (zh) | 显示设备、移动终端、投屏方法及投屏系统 | |
CN111683279B (zh) | 显示设备及图像恢复方法 | |
WO2020098504A1 (zh) | 一种视频切换的控制方法及显示设备 | |
CN112153447B (zh) | 一种显示设备及音画同步控制方法 | |
CN114302190A (zh) | 一种显示设备及画质调整方法 | |
CN112580302B (zh) | 一种字幕校正方法及显示设备 | |
CN111836104B (zh) | 显示设备及显示方法 | |
CN113064645B (zh) | 一种开机界面控制方法及显示设备 | |
CN112911392B (zh) | 一种音视频播放控制方法和显示装置 | |
CN111954043B (zh) | 一种信息栏显示方法及显示设备 | |
CN114095778A (zh) | 一种应用级播放器的音频硬解码方法及显示设备 | |
CN113542765B (zh) | 一种媒体数据跳变续播方法及显示设备 | |
CN112328553A (zh) | 一种缩略图的抓取方法及显示设备 | |
CN112269668A (zh) | 一种应用资源共享及显示设备 | |
CN117615191A (zh) | 一种多媒体资源播放方法及播放设备 | |
CN115145482A (zh) | 一种参数配置系统、方法、基准监视器及介质 | |
CN111901649B (zh) | 视频播放方法和显示设备 | |
CN114900386A (zh) | 一种终端设备及数据接力方法 | |
CN113965785A (zh) | 一种资源同步播放方法及显示设备 | |
CN114040341B (zh) | 一种蓝牙广播包上报处理方法及显示设备 | |
CN114071187B (zh) | 显示设备、服务器及分辨率快速切换方法 | |
CN115174991B (zh) | 一种显示设备及视频播放方法 | |
US20230412890A1 (en) | Refreshing method and display apparatus | |
CN114095769B (zh) | 一种应用级播放器的直播低延迟处理方法及显示设备 | |
CN115150667B (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 |