音频播放方法及显示设备与流程

文档序号:24540214发布日期:2021-04-02 10:23阅读:77来源:国知局
音频播放方法及显示设备与流程

本申请涉及显示技术领域,尤其涉及一种音频播放方法及显示设备。



背景技术:

显示设备播放视频时,可以利用外设等播放视频中的音频信息,其中,外设可以是显示设备内置的扬声器、与显示设备连接的有线耳机、与显示设备连接的蓝牙音箱等,也可以是功放等设备。显示设备中的播放器可以依据视频中音频流的类型、自身的解码能力以及外设或功放支持的音频流类型等对音频流进行软件解码或者硬件解码,其中,软件解码时播放器将直接输出pcm(pulsecodemodulation,脉冲编码调制)音频流,硬件解码时播放器将输出raw(原始的)音频流,然后再由硬件解码器解码为pcm音频流。

通常,显示设备在播放视频时,会先将音频数据放到数据缓冲区中,音频硬件接口再将数据缓冲区中的音频数据搬运到待解码缓冲区,音频驱动端将待解码缓冲区中的音频数据解码后放到音频数据区。外设消耗音频数据区的音频数据,进而播放出视频中的音频内容。而当数据缓冲区被填满后,显示设备才会将其中的音频数据搬运到待解码缓冲区中。当显示设备连接外设时,显示设备需要将音频数据区中的raw数据再行解码成pcm数据,然后进行均衡、音效等处理,再输出到外设端。当显示设备连接功放时,显示设备会将音频数据区中的raw数据解码成pcm数据直接输出到功放端。

当显示设备播放raw数据并且连接功放时,由于音频数据区里面的pcm数据不会经过均衡和音效处理,所以音频数据区中的pcm数据会被很快地消耗掉,即音频数据区里面数据的水平一直处于低水位状态。在向待解码缓冲区中写入音频数据时,如果检测到音频数据区处于低水位,显示设备会持续消耗数据缓冲区和待解码缓冲区中的数据,当数据缓冲区里面没有数据时,显示设备会暂停音频的播放。由于显示设备中音画同步的限制,音频的停止也会使得图像停止播放。等到数据缓冲区中的数据足够时,显示设备再恢复音频和图像的播放。如果音频数据区中的音频数据消耗过快,总是处于低水位,那么显示设备不断地进行暂停和播放的操作,此时播放的视频画面会出现卡顿的情况,影响用户的观看体验。



技术实现要素:

本申请提供了一种音频播放方法及显示设备,以解决目前显示设备播放视频时,由于音频数据区中的音频数据消耗过快又来不及补足,造成的视频画面卡顿的问题。

第一方面,本申请提供了一种显示设备,包括:

显示器;

控制器,被配置为:

将待写入音频数据写入数据缓冲区;所述待写入音频数据用于表示显示设备播放音频时需要写入数据缓冲区的全部音频数据;

在待解码缓冲区中当前的剩余数据量小于预设数据阈值的情况下,将所述数据缓冲区中的已经写入的音频数据写入到所述待解码缓冲区中;

将所述待解码缓冲区中的所述音频数据解码并将解码后的解码数据写入音频数据区;

控制显示设备通过外设播放所述音频数据区中的解码数据。

在一些实施例中,所述控制器,还被配置为:

检测所述音频数据区中的解码数据的播放时长是否大于或者等于预设时长;

在所述音频数据区中的解码数据的播放时长大于或者等于预设时长的情况下,停止向待解码缓冲区写入所述音频数据。

在一些实施例中,所述控制器,还被配置为:

在所述音频数据区中的解码数据的播放时长小于预设时长的情况下,根据所述待写入音频数据的类型,设置预设数据阈值;

在所述数据缓冲区中的音频数据的数据量大于0的情况下,检测待解码缓冲区当前的剩余数据量是否大于或者等于所述预设数据阈值;

在所述待解码缓冲区当前的剩余数据量小于所述预设数据阈值的情况下,将所述数据缓冲区中的所述音频数据写入到所述待解码缓冲区中。

在一些实施例中,所述控制器,还被配置为:

在所述待解码缓冲区当前的剩余数据量大于或者等于所述预设数据阈值的情况下,根据所述待解码缓冲区当前的剩余数据量、所述预设数据阈值和解码速率,计算等待时间;

在经过所述等待时间后,再次检测所述数据缓冲区中的音频数据的数据量是否大于0。

在一些实施例中,所述控制器,还被配置为:

在所述数据缓冲区中的音频数据的数据量小于或者等于0,以及待写入音频数据全部被写入所述数据缓冲区的情况下,停止向所述待解码缓冲区写入所述音频数据。

在一些实施例中,所述控制器,还被配置为:

获取所述待写入音频数据的最小帧数;

根据所述最小帧数,确定向数据缓冲区写入所述待写入音频数据的最小频率。

在一些实施例中,所述控制器,还被配置为:

在所述数据缓冲区中的数据量小于或者等于0,以及待写入音频数据并未全部写入所述数据缓冲区的情况下,继续向所述数据缓冲区写入所述待写入音频数据,直至所述数据缓冲区存满或者所述待写入数据全部被写入所述数据缓冲区。

在一些实施例中,所述控制器,还被配置为:

在所述待写入音频数据为原始raw数据的情况下,设置所述预设数据阈值为s=f×3,其中,s表示预设数据阈值,f表示原始raw数据中每一帧数据的大小。

在一些实施例中,所述控制器,还被配置为:

在所述待写入音频数据为原始raw数据的情况下,将所述待解码缓冲区中的原始raw数据解码为脉冲编码调制pcm数据;

将解码后的脉冲编码调制pcm数据写入音频数据区。

第二方面,本申请还提供了一种音频播放方法,包括:

将待写入音频数据写入数据缓冲区;所述待写入音频数据用于表示显示设备播放音频时需要写入数据缓冲区的全部音频数据;

在待解码缓冲区中当前的剩余数据量小于预设数据阈值的情况下,将所述数据缓冲区中的音频数据写入到所述待解码缓冲区中;

将所述待解码缓冲区中的所述音频数据解码并将解码后的解码数据写入音频数据区;

控制显示设备通过外设播放所述音频数据区中的解码数据。

由上述内容可知,本申请技术方案中提供了一种音频播放方法及显示设备。在使用显示设备播放视频时,需要将其中的音频数据写入数据缓冲区,在待解码缓冲区中当前的剩余数据量小于预设数据阈值的情况下,将数据缓冲区中的音频数据写入到待解码缓冲区中;再将待解码缓冲区中的音频数据解码并将解码后的解码数据写入音频数据区;最后,再控制显示设备通过外设播放音频数据区中的解码数据,以使显示设备在播放视频画面的同时播放出音频内容。本申请的技术方案可以及时地检测音频数据区的存储情况以及待解码缓冲区的存储情况,从而及时地控制待写入音频数据的写入,保证数据缓冲区和待解码缓冲区中的音频数据在被消耗的同时也能及时地补足,使得显示设备在播放视频时,不会出现因为数据缓冲区和待解码缓冲区中音频数据被消耗地过快又来不及补足而造成的视频画面卡顿的情况。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了根据一些实施例的显示设备的使用场景的示意图;

图2示出了根据一些实施例的控制装置100的硬件配置框图;

图3示出了根据一些实施例的显示设备200的硬件配置框图;

图4示出了根据一些实施例的显示设备200中软件配置图;

图5示出了根据一些实施例的显示设备200中音频数据的存储过程示意图;

图6示出了根据一些实施例的控制器250的一种处理流程图;

图7示出了根据一些实施例的控制器250的第二种处理流程图;

图8示出了根据一些实施例的控制器250的第三种处理流程图;

图9示出了根据一些实施例的控制器250的第四种处理流程图;

图10示出了根据一些实施例的控制器250的第五种处理流程图;

图11示出了根据一些实施例的显示设备200中音频播放过程的示意图;

图12示出了根据一些实施例的音频播放方法的流程图。

具体实施方式

为使本申请的目的和实施方式更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。

需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。

本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。

术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。

术语“模块”是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。

图1示出了根据一些实施例的显示设备的使用场景的示意图。如图1所示,显示设备200还与服务器400进行数据通信,用户可通过智能设备300或控制装置100操作显示设备200。

在一些实施例中,控制装置100可以是遥控器,遥控器和显示设备的通信包括红外协议通信或蓝牙协议通信,及其他短距离通信方式中的至少一种,通过无线或有线方式来控制显示设备200。用户可以通过遥控器上按键、语音输入、控制面板输入等至少一种输入用户指令,来控制显示设备200。

在一些实施例中,智能设备300可以包括移动终端、平板电脑、计算机、笔记本电脑,ar/vr设备等中的任意一种。

在一些实施例中,也可以使用智能设备300以控制显示设备200。例如,使用在智能设备上运行的应用程序控制显示设备200。

在一些实施例中,也可以使用智能设备300和显示设备进行数据的通信。

在一些实施例中,显示设备200还可以采用除了控制装置100和智能设备300之外的方式进行控制,例如,可以通过显示设备200设备内部配置的获取语音指令的模块直接接收用户的语音指令控制,也可以通过显示设备200设备外部设置的语音控制装置来接收用户的语音指令控制。

在一些实施例中,显示设备200还与服务器400进行数据通信。可允许显示设备200通过局域网(lan)、无线局域网(wlan)和其他网络进行通信连接。服务器400可以向显示设备200提供各种内容和互动。服务器400可以是一个集群,也可以是多个集群,可以包括一类或多类服务器。

在一些实施例中,一个步骤执行主体执行的软件步骤可以随需求迁移到与之进行数据通信的另一步骤执行主体上进行执行。示例性的,服务器执行的软件步骤可以随需求迁移到与之数据通信的显示设备上执行,反之亦然。

图2示出了根据一些实施例的控制装置100的硬件配置框图。如图2所示,控制装置100包括控制器110、通信接口130、用户输入/输出接口140、存储器、供电电源。控制装置100可接收用户的输入操作指令,且将操作指令转换为显示设备200可识别和响应的指令,起用用户与显示设备200之间交互中介作用。

在一些实施例中,通信接口130用于和外部通信,包含wifi芯片,蓝牙模块,nfc或可替代模块中的至少一种。

在一些实施例中,用户输入/输出接口140包含麦克风,触摸板,传感器,按键或可替代模块中的至少一种。

图3示出了根据一些实施例的显示设备200的硬件配置框图。

在一些实施例中,显示设备200包括调谐解调器210、通信器220、检测器230、外部装置接口240、控制器250、显示器260、音频输出接口270、存储器、供电电源、用户接口中的至少一种。

在一些实施例中控制器包括中央处理器,视频处理器,音频处理器,图形处理器,ram,rom,用于输入/输出的第一接口至第n接口。

在一些实施例中,显示器260包括用于呈现画面的显示屏组件,以及驱动图像显示的驱动组件,用于接收源自控制器输出的图像信号,进行显示视频内容、图像内容以及菜单操控界面的组件以及用户操控ui界面等。

在一些实施例中,显示器260可为液晶显示器、oled显示器、以及投影显示器中的至少一种,还可以为一种投影装置和投影屏幕。

在一些实施例中,调谐解调器210通过有线或无线接收方式接收广播电视信号,以及从多个无线或有线广播电视信号中解调出音视频信号,如以及epg数据信号。

在一些实施例中,通信器220是用于根据各种通信协议类型与外部设备或服务器进行通信的组件。例如:通信器可以包括wifi模块,蓝牙模块,有线以太网模块等其他网络通信协议芯片或近场通信协议芯片,以及红外接收器中的至少一种。显示设备200可以通过通信器220与控制装置100或服务器400建立控制信号和数据信号的发送和接收。

在一些实施例中,检测器230用于采集外部环境或与外部交互的信号。例如,检测器230包括光接收器,用于采集环境光线强度的传感器;或者,检测器230包括图像采集器,如摄像头,可以用于采集外部环境场景、用户的属性或用户交互手势,再或者,检测器230包括声音采集器,如麦克风等,用于接收外部声音。

在一些实施例中,外部装置接口240可以包括但不限于如下:高清多媒体接口接口(hdmi)、模拟或数据高清分量输入接口(分量)、复合视频输入接口(cvbs)、usb输入接口(usb)、rgb端口等任一个或多个接口。也可以是上述多个接口形成的复合性的输入/输出接口。

在一些实施例中,控制器250和调谐解调器210可以位于不同的分体设备中,即调谐解调器210也可在控制器250所在的主体设备的外置设备中,如外置机顶盒等。

在一些实施例中,控制器250,通过存储在存储器上中各种软件控制程序,来控制显示设备的工作和响应用户的操作。控制器250控制显示设备200的整体操作。例如:响应于接收到用于选择在显示器260上显示ui对象的用户命令,控制器250便可以执行与由用户命令选择的对象有关的操作。

在一些实施例中,所述对象可以是可选对象中的任何一个,例如超链接、图标或其他可操作的控件。与所选择的对象有关操作有:显示连接到超链接页面、文档、图像等操作,或者执行与所述图标相对应程序的操作。

在一些实施例中控制器包括中央处理器(centralprocessingunit,cpu),视频处理器,音频处理器,图形处理器(graphicsprocessingunit,gpu),ramrandomaccessmemory,ram),rom(read-onlymemory,rom),用于输入/输出的第一接口至第n接口,通信总线(bus)等中的至少一种。

cpu处理器。用于执行存储在存储器中操作系统和应用程序指令,以及根据接收外部输入的各种交互指令,来执行各种应用程序、数据和内容,以便最终显示和播放各种音视频内容。cpu处理器,可以包括多个处理器。如,包括一个主处理器以及一个或多个子处理器。

在一些实施例中,图形处理器,用于产生各种图形对象,如:图标、操作菜单、以及用户输入指令显示图形等中的至少一种。图形处理器包括运算器,通过接收用户输入各种交互指令进行运算,根据显示属性显示各种对象;还包括渲染器,对基于运算器得到的各种对象,进行渲染,上述渲染后的对象用于显示在显示器上。

在一些实施例中,视频处理器,用于将接收外部视频信号,根据输入信号的标准编解码协议,进行解压缩、解码、缩放、降噪、帧率转换、分辨率转换、图像合成等视频处理中的至少一种,可得到直接可显示设备200上显示或播放的信号。

在一些实施例中,视频处理器,包括解复用模块、视频解码模块、图像合成模块、帧率转换模块、显示格式化模块等中的至少一种。其中,解复用模块,用于对输入音视频数据流进行解复用处理。视频解码模块,用于对解复用后的视频信号进行处理,包括解码和缩放处理等。图像合成模块,如图像合成器,其用于将图形生成器根据用户输入或自身生成的gui信号,与缩放处理后视频图像进行叠加混合处理,以生成可供显示的图像信号。帧率转换模块,用于对转换输入视频帧率。显示格式化模块,用于将接收帧率转换后视频输出信号,改变信号以符合显示格式的信号,如输出rgb数据信号。

在一些实施例中,音频处理器,用于接收外部的音频信号,根据输入信号的标准编解码协议,进行解压缩和解码,以及降噪、数模转换、和放大处理等处理中的至少一种,得到可以在扬声器中播放的声音信号。

在一些实施例中,用户可在显示器260上显示的图形用户界面(gui)输入用户命令,则用户输入接口通过图形用户界面(gui)接收用户输入命令。或者,用户可通过输入特定的声音或手势进行输入用户命令,则用户输入接口通过传感器识别出声音或手势,来接收用户输入命令。

在一些实施例中,“用户界面”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(graphicuserinterface,gui),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、widget等可视的界面元素中的至少一种。

在一些实施例中,用户接口280,为可用于接收控制输入的接口(如:显示设备本体上的实体按键,或其他等)。

在一些实施例中,显示设备的系统可以包括内核(kernel)、命令解析器(shell)、文件系统和应用程序。内核、shell和文件系统一起组成了基本的操作系统结构,它们让用户可以管理文件、运行程序并使用系统。上电后,内核启动,激活内核空间,抽象硬件、初始化硬件参数等,运行并维护虚拟内存、调度器、信号及进程间通信(ipc)。内核启动后,再加载shell和用户应用程序。应用程序在启动后被编译成机器码,形成一个进程。

参见图4,在一些实施例中,将系统分为四层,从上至下分别为应用程序(applications)层(简称“应用层”),应用程序框架(applicationframework)层(简称“框架层”),安卓运行时(androidruntime)和系统库层(简称“系统运行库层”),以及内核层。

在一些实施例中,应用程序层中运行有至少一个应用程序,这些应用程序可以是操作系统自带的窗口(window)程序、系统设置程序或时钟程序等;也可以是第三方开发者所开发的应用程序。在具体实施时,应用程序层中的应用程序包不限于以上举例。

框架层为应用程序层的应用程序提供应用编程接口(applicationprogramminginterface,api)和编程框架。应用程序框架层包括一些预先定义的函数。应用程序框架层相当于一个处理中心,这个中心决定让应用层中的应用程序做出动作。应用程序通过api接口,可在执行中访问系统中的资源和取得系统的服务。

如图4所示,本申请实施例中应用程序框架层包括管理器(managers),内容提供者(contentprovider)等,其中管理器包括以下模块中的至少一个:活动管理器(activitymanager)用与和系统中正在运行的所有活动进行交互;位置管理器(locationmanager)用于给系统服务或应用提供了系统位置服务的访问;文件包管理器(packagemanager)用于检索当前安装在设备上的应用程序包相关的各种信息;通知管理器(notificationmanager)用于控制通知消息的显示和清除;窗口管理器(windowmanager)用于管理用户界面上的括图标、窗口、工具栏、壁纸和桌面部件。

在一些实施例中,活动管理器用于管理各个应用程序的生命周期以及通常的导航回退功能,比如控制应用程序的退出、打开、后退等。窗口管理器用于管理所有的窗口程序,比如获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕,控制显示窗口变化(例如将显示窗口缩小显示、抖动显示、扭曲变形显示等)等。

在一些实施例中,系统运行库层为上层即框架层提供支撑,当框架层被使用时,安卓操作系统会运行系统运行库层中包含的c/c++库以实现框架层要实现的功能。

在一些实施例中,内核层是硬件和软件之间的层。如图4所示,内核层至少包含以下驱动中的至少一种:音频驱动、显示驱动、蓝牙驱动、摄像头驱动、wifi驱动、usb驱动、hdmi驱动、传感器驱动(如指纹传感器,温度传感器,压力传感器等)、以及电源驱动等。

在一些实施例中,显示设备启动后可以直接进入上次选择的信号源的显示界面,或者信号源选择界面,其中信号源可以是预置的视频点播程序,还可以是hdmi接口,直播电视接口等中的至少一种,用户选择不同的信号源后,显示器可以显示从不同信号源获得的内容。

为清楚说明本申请的实施例,下面给出一些相关名词的解释。

实体:是指客观存在并可互相区别的事物,包括具体的人、事、物、机构、抽象的概念等。

知识图谱:本质上是一种语义网络,能够代表实体之间的语义关系。知识图谱中以实体为顶点或节点,以关系为边。知识图谱可通过多种方式构建,本申请实施例的重点并非如何构建知识图谱,所以对此不进行详细描述。

显示设备200播放视频时,可以利用外设等播放视频中的音频信息,其中,外设可以是显示设备200内置的扬声器、与显示设备200连接的有线耳机、与显示设备200连接的蓝牙音箱等,也可以是功放等设备。显示设备200中的播放器可以依据视频中音频流的类型、自身的解码能力以及外设或功放支持的音频流类型等对音频流进行软件解码或者硬件解码,其中,软件解码时播放器将直接输出pcm(pulsecodemodulation,脉冲编码调制)音频流,硬件解码时播放器将输出raw(原始的)音频流,然后再由硬件解码器解码为pcm音频流。

通常,显示设备200在播放视频时,会先将音频数据放到数据缓冲区中,音频硬件接口再将数据缓冲区中的音频数据搬运到待解码缓冲区,音频驱动端将待解码缓冲区中的音频数据解码后放到音频数据区。外设消耗音频数据区的音频数据,进而播放出视频中的音频内容。而当数据缓冲区被填满后,显示设备200才会将其中的音频数据搬运到待解码缓冲区中。当显示设备200连接外设时,显示设备200需要将音频数据区中的raw数据再行解码成pcm数据,然后进行均衡、音效等处理,再输出到外设端。当显示设备200连接功放时,显示设备200会将音频数据区中的raw数据解码成pcm数据直接输出到功放端。

当显示设备200播放raw数据并且连接功放时,由于音频数据区里面的pcm数据不会经过均衡和音效处理,所以音频数据区中的pcm数据会被很快地消耗掉,即音频数据区里面数据的水平一直处于低水位状态。在向待解码缓冲区中写入音频数据时,如果检测到音频数据区处于低水位,显示设备200会持续消耗数据缓冲区和待解码缓冲区中的数据,当数据缓冲区里面没有数据时,显示设备200会暂停音频的播放。由于显示设备200中音画同步的限制,音频的停止也会使得图像停止播放。等到数据缓冲区中的数据足够时,显示设备200再恢复音频和图像的播放。如果音频数据区中的音频数据消耗过快,总是处于低水位,那么显示设备200不断地进行暂停和播放的操作,此时播放的视频画面会出现卡顿的情况,影响用户的观看体验。

基于上述内容,本申请实施例提供了一种音频播放方法及显示设备。其中,音频播放方法可以应用于显示设备200,在显示设备200中,可以实现及时地检测音频数据区的存储情况以及待解码缓冲区的存储情况,从而及时地控制待写入音频数据的写入,保证数据缓冲区和待解码缓冲区中的音频数据在被消耗的同时也能及时地补足,使得显示设备200在播放视频时,不会出现因为数据缓冲区和待解码缓冲区中音频数据被消耗地过快又来不及补足而造成的视频画面卡顿的情况。

图5示出了根据一些实施例的显示设备200中音频数据的存储过程示意图。如图5所示,本申请实施例的显示设备200中,可以包括三个用于存储音频数据的区域,分别是数据缓冲区(databuffer)、待解码缓冲区(decoderbuffer)和音频数据区(pcmbuffer)。

通常,显示设备200在播放视频时,控制器250会将视频资源中的音频数据先写入数据缓冲区中,本申请实施例中可以将需要写入数据缓冲区但是还未被写入的音频数据称为待写入音频数据,将已经写入数据缓冲区的数据称为音频数据。由于数据缓冲区的存储空间有限,通常并不能够一次性保存全部的待写入音频数据。

图6示出了根据一些实施例的控制器250的一种处理流程图。在数据缓冲区被存满后,即可触发控制器250将数据缓冲区中的音频数据写入到待解码缓冲区的操作。在本申请实施例中,如图6所示,在控制器250向待解码缓冲区写入音频数据之前,需要保证待解码缓冲区中当前剩余数据量小于预设数据阈值。待解码缓冲区中保存的音频数据需要解码后被外设播放,因此,待解码缓冲区中的音频数据一直处于消耗过程,消耗了一定的数据后,剩余音频数据的数据量如果不能满足当前的播放需求,则继续向待解码缓冲区中写入数据缓冲区的音频数据,以使待解码缓冲区中的数据量能够满足播放需求。其中,针对于是否能满足播放需求,本申请实施例中还可以将需求量化为预设数据阈值,即检测待解码缓冲区中的剩余数据量是否小于预设数据阈值,如果小于,则说明剩余数据量不能满足播放需求。

而后,在待解码缓冲区中的数据量能够满足播放需求的情况下,控制器250将待解码缓冲区中的音频数据解码,并将解码后的解码数据写入音频数据区。最后,控制器250再将音频数据区中的解码数据输出给外设,控制显示设备200通过外设播放解码数据,进而播放出音频内容。

可见,本申请实施例中的显示设备200,可以检测到待解码缓冲区中剩余数据量的多少,进而控制是否向待解码缓冲区写入音频数据,从而可以保证待解码缓冲区中音频数据的数量能够一直满足播放需求,进而减少因待解码缓冲区中数据量少而造成的音频和视频图像播放卡顿的问题。

图7示出了根据一些实施例的控制器250的第二种处理流程图。在一些实施例中,如图7所示,控制器250还可以通过检测音频数据区中的解码数据的播放时长是否大于或者等于预设时长,来控制是否继续向待解码缓冲区写入音频数据。其中,如果音频数据区中的解码数据的播放时长大于或者等于预设时长,则认为音频数据区中当前的数据量可以满足播放需求,此时无需向其中继续写入解码数据,进而待解码缓冲区中的数据量也不会被消耗,则控制器250可以停止向待解码缓冲区写入音频数据。等到音频数据区中当前的数据量较少不能满足播放需求时,再继续将向其中写入解码数据,此时待解码缓冲区中的音频数据需要被消耗,因此,控制器250需要向待解码缓冲区继续写入音频数据。并且,控制器250还需检测数据缓冲区中的数据量是否大于0,数据量大于0,说明数据缓冲区中目前存在音频数据,此时可以继续向待解码缓冲区中写入音频数据。

在本申请实施例中,预设时长可以根据实际播放过程中音频数据的类型而设置,例如100毫秒等。并且,控制器250在检测到音频数据区中的解码数据的播放时长大于或者等于预设时长时,可以等待一段时间后,例如5毫秒等,再执行停止向待解码缓冲区写入音频数据的操作。

图8示出了根据一些实施例的控制器250的第三种处理流程图。在一些实施例中,如图8所示,针对音频数据区中的解码数据的播放时长小于预设时长的情况,控制器250还可以根据待写入音频数据的类型,设置预设数据阈值;例如,当在待写入音频数据为原始raw数据的情况下,设置预设数据阈值为s=f×3,其中,s表示预设数据阈值,f表示原始raw数据中每一帧数据的大小。

而后,在数据缓冲区中的音频数据的数据量大于0的情况下,检测待解码缓冲区当前的剩余数据量是否大于或者等于预设数据阈值。本申请实施例中,数据缓冲区中的音频数据的数据量大于0,说明数据缓冲区中当前仍存在未被写入待解码缓冲区的音频数据,此时如果待解码缓冲区中的数据量不能满足播放需求,即待解码缓冲区当前的剩余数据量小于预设数据阈值时,则可以继续将数据缓冲区中剩余的音频数据写入到待解码缓冲区中。

图9示出了根据一些实施例的控制器250的第四种处理流程图。在一些实施例中,如图9所示,如果前述实施例中检测到待解码缓冲区当前的剩余数据量大于或者等于预设数据阈值,则控制器250可以根据待解码缓冲区当前的剩余数据量、预设数据阈值和解码速率,计算等待时间;其中,解码速率根据实际使用中显示设备200中用于解码的结构所支持的解码速率。计算出的等待时间为t,t=(e-s)/r,其中,e用于表示待解码缓冲区当前的剩余数据量,s用于表示预设数据阈值,r用于表示解码速率。

在等待时间t内,控制器250不对待解码缓冲区进行写入处理,在经过等待时间t后,控制器250再次检测数据缓冲区中的音频数据的数据量是否大于0。

图10示出了根据一些实施例的控制器250的第五种处理流程图。在一些实施例中,如图10所示,在本申请前述的所有实施例中,如果数据缓冲区中的音频数据的数据量小于或者等于0,则说明数据缓冲区中的全部音频数据均已写入到待解码缓冲区中,并且如果当前也不存在未被写入数据缓冲区的待写入音频数据,即待写入音频数据的数据量小于或者等于0。此时,则控制器250应该停止向待解码缓冲区写入音频数据。

而当数据缓冲区中的数据量小于或者等于0时,如果当前还存在未被写入数据缓冲区的待写入音频数据,即待写入音频数据的数据量大于0,则控制器250可以继续将待写入音频数据继续向数据缓冲区写入,直至待写入数据的数据量为0或者数据缓冲区存满。

另外,不同类型的待写入音频数据,其对应的数据帧数各不同,对应的音频数据量也不相同。在本申请实施例中,控制器250还可以获取到待写入音频数据的最小帧数;再根据最小帧数,确定向数据缓冲区写入待写入音频数据的最小频率。通常来说,最小帧数越小,那么写入的最小频率也会越小。

如前述实施例所述,控制器250需要将待解码缓冲区中的音频数据解码,当进行软件解码时,待写入音频数据为脉冲编码调制pcm数据,进而控制器250可以直接将待解码缓冲区中的脉冲编码调制pcm数据写入音频数据区中。当进行硬件解码时,待写入音频数据为原始raw数据,那么控制器250需要将待解码缓冲区中的原始raw数据解码为脉冲编码调制pcm数据,此时的解码数据即为脉冲编码调制pcm数据;而后,控制器250再将该脉冲编码调制pcm数据写入到音频数据区内。音频数据区中的脉冲编码调制pcm数据可以被外设可以播放,进而使用户可以听到音频的具体内容。

音频数据区中的解码数据可以直接被输出到外设端进行播放,但是不同的外设其播放解码数据的过程不并相同,例如,如果显示设备200连接的外设为扬声器,那么音频数据区中的脉冲编码调制pcm数据需要再经过均衡、音效等处理过程后才能被扬声器所播放,而如果显示设备200连接的外设为功放,那么音频数据区中的脉冲编码调制pcm数据可以直接被功放所播放。因此,在一些实施例中,如图11所示,控制器250还可以进一步判断出外设的类型,然后根据不同的外设类型,判断是否需要对音频数据区中的音频数据继续处理,然后再将音频数据输出给不同的外设。

值得说明的是,上述扬声器只是本申请实施例中示出的不同于功放类型的外设中的一种,对于其他例如与显示设备200连接的有线耳机、蓝牙音箱等,控制器250都需要将音频数据区中的脉冲编码调制pcm数据进行均衡、音效等处理,而后再输出给有线耳机、蓝牙音箱等进行播放。

从前述全部实施例的内容可知,本申请实施例中的显示设备200可以及时地检测音频数据区的存储情况以及待解码缓冲区的存储情况,从而及时地控制待写入音频数据的写入,保证数据缓冲区和待解码缓冲区中的音频数据在被消耗的同时也能及时地补足,使得显示设备200在播放视频时,不会出现因为数据缓冲区和待解码缓冲区中音频数据被消耗地过快又来不及补足而造成的视频画面卡顿的情况。

图12示出了根据一些实施例的音频播放方法的流程图,该方法可以应用于前述实施例中的显示设备200上。如图12所示,该方法可以包括如下步骤:

步骤s101,将待写入音频数据写入数据缓冲区;所述待写入音频数据用于表示显示设备播放音频时需要写入数据缓冲区的全部音频数据。

步骤s102,在待解码缓冲区中当前的剩余数据量小于预设数据阈值的情况下,将所述数据缓冲区中的音频数据写入到所述待解码缓冲区中。

步骤s103,将所述待解码缓冲区中的所述音频数据解码并将解码后的解码数据写入音频数据区。

步骤s104,控制显示设备通过外设播放所述音频数据区中的解码数据。

在一些实施例中,上述音频播放方法还包括:检测所述音频数据区中的解码数据的播放时长是否大于或者等于预设时长;在所述音频数据区中的解码数据的播放时长大于或者等于预设时长的情况下,停止向待解码缓冲区写入所述音频数据。

在一些实施例中,上述音频播放方法还包括:在所述音频数据区中的解码数据的播放时长小于预设时长的情况下,根据所述待写入音频数据的类型,设置预设数据阈值;在所述数据缓冲区中的音频数据的数据量大于0的情况下,检测待解码缓冲区当前的剩余数据量是否大于或者等于所述预设数据阈值;在所述待解码缓冲区当前的剩余数据量小于所述预设数据阈值的情况下,将所述数据缓冲区中的所述音频数据写入到所述待解码缓冲区中。

在一些实施例中,上述音频播放方法还包括:在所述待解码缓冲区当前的剩余数据量大于或者等于所述预设数据阈值的情况下,根据所述待解码缓冲区当前的剩余数据量、所述预设数据阈值和解码速率,计算等待时间;在经过所述等待时间后,再次检测所述数据缓冲区中的音频数据的数据量是否大于0。

在一些实施例中,上述音频播放方法还包括:在所述数据缓冲区中的音频数据的数据量小于或者等于0,以及待写入音频数据全部被写入所述数据缓冲区的情况下,停止向所述待解码缓冲区写入所述音频数据。

在一些实施例中,上述音频播放方法还包括:获取所述待写入音频数据的最小帧数;根据所述最小帧数,确定向数据缓冲区写入所述待写入音频数据的最小频率。

在一些实施例中,上述音频播放方法还包括:在所述数据缓冲区中的数据量小于或者等于0,以及待写入音频数据并未全部写入所述数据缓冲区的情况下,继续向所述数据缓冲区写入所述待写入音频数据,直至所述数据缓冲区存满或者所述待写入数据全部被写入所述数据缓冲区。

在一些实施例中,上述音频播放方法还包括:在所述待写入音频数据为原始raw数据的情况下,设置所述预设数据阈值为s=f×3,其中,s表示预设数据阈值,f表示原始raw数据中每一帧数据的大小。

在一些实施例中,上述音频播放方法还包括:在所述待写入音频数据为原始raw数据的情况下,将所述待解码缓冲区中的原始raw数据解码为脉冲编码调制pcm数据;将解码后的脉冲编码调制pcm数据写入音频数据区。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理以及实际的应用,从而使得本领域技术人员更好的使用所述实施方式以及适于具体使用考虑的各种不同的变形的实施方式。

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