CN112911392B - 一种音视频播放控制方法和显示装置 - Google Patents
一种音视频播放控制方法和显示装置 Download PDFInfo
- Publication number
- CN112911392B CN112911392B CN202110046284.8A CN202110046284A CN112911392B CN 112911392 B CN112911392 B CN 112911392B CN 202110046284 A CN202110046284 A CN 202110046284A CN 112911392 B CN112911392 B CN 112911392B
- Authority
- CN
- China
- Prior art keywords
- audio
- plug
- video
- data
- ins
- 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
Images
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/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/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/4424—Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
-
- 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- 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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4435—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种音视频播放控制方法和显示装置,用以解决相关技术中确定音视频的播放状态信息的准确性较低,存在一些没必要的暂停,降低用户体验的问题。由于本申请实施例可以根据缓存队列插件当前的第一数据量以及播放器管道中除缓存队列插件和解复用插件之外的其他插件的第二数据量,确定播放器管道当前的数据总量,可以在包括刚开始播放等在内的任一播放时刻均可以较准确的确定播放器管道当前的数据总量,基于该数据总量,确定播放器管道中音视频的播放状态信息时,可以较准确的确定音视频的播放状态信息,在一定程度上减少没必要的暂停,提高用户体验。
Description
技术领域
本申请涉及音视频播放技术领域,尤其涉及一种音视频播放控制方法、显示装置、设备及介质。
背景技术
GStreamer播放器的播放器管道中包括解复用插件、缓存队列插件、解码器插件、渲染插件等多个插件。当前GStreamer播放器在播放音视频时,通常是基于缓存队列插件中缓存的数据量,来控制音视频的播放状态信息,例如,当缓存队列插件缓存的数据量小于预设的缓存阈值时,控制音视频为暂停状态;当缓存队列插件缓存的数据量大于预设的播放阈值时,控制音视频为播放状态。
然而播放器管道中除了缓存队列插件中缓存有可播放的音视频数据之外,播放器管道中的其他插件(例如解码器插件、渲染插件等)中也会保存可播放的音视频数据,如果只基于缓存队列插件缓存的数据量来控制音视频的播放状态信息的话,可能会导致一些没必要的暂停,并不能准确的确定音视频的播放状态信息,降低用户体验。
发明内容
本申请提供了一种音视频播放控制方法、显示装置、设备及介质,用以解决相关技术中确定音视频的播放状态信息的准确性较低,存在一些没必要的暂停,降低用户体验的问题。
第一方面,本申请提供了一种音视频播放控制方法,所述方法包括:
确定缓存队列插件当前缓存的第一数据量,并针对播放器管道中除所述缓存队列插件和解复用插件之外的其他插件,基于所述其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定所述其他插件中当前保存的第二数据量;
根据所述第一数据量和所述第二数据量,确定所述播放器管道的数据总量;
基于所述数据总量,确定所述播放器管道中音视频的播放状态信息。
第二方面,本申请还提供了一种显示装置,所述装置包括:
显示屏,所述显示屏用于显示;
处理器,所述处理器用于执行:
确定缓存队列插件当前缓存的第一数据量,并针对播放器管道中除所述缓存队列插件和解复用插件之外的其他插件,基于所述其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定所述其他插件中当前保存的第二数据量;
根据所述第一数据量和所述第二数据量,确定所述播放器管道的数据总量;
基于所述数据总量,确定所述播放器管道中音视频的播放状态信息。
第三方面,本申请还提供了一种电子设备,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如上述任一所述音视频播放控制方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一所述音视频播放控制方法的步骤。
由于本申请实施例可以根据缓存队列插件当前的第一数据量以及播放器管道中除缓存队列插件和解复用插件之外的其他插件的第二数据量,确定播放器管道当前的数据总量,可以在包括刚开始播放等在内的任一播放时刻均可以较准确的确定播放器管道当前的数据总量,基于该数据总量,确定播放器管道中音视频的播放状态信息时,可以较准确的确定音视频的播放状态信息,在一定程度上减少没必要的暂停,提高用户体验。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据一些实施例的显示设备的使用场景;
图2示出了根据一些实施例的控制装置100的硬件配置框图;
图3示出了根据一些实施例的显示设备200的硬件配置框图;
图4示出了根据一些实施例的显示设备200中软件配置图;
图5示出了根据一些实施例的显示设备200中应用程序的图标控件界面显示图;
图6示出了一些实施例的网络架构图;
图7示出了一些实施例的音视频播放过程示意图;
图8示出了一些实施例的确定解码器插件中第二数据量的过程示意图;
图9示出了一些实施例提供的第一种音视频播放控制过程示意图;
图10示出了一些实施例提供的第二种音视频播放控制过程示意图;
图11示出了一些实施例提供的第三种音视频播放控制过程示意图;
图12示出了一些实施例提供的第四种音视频播放控制过程示意图;
图13示出了一些实施例提供的一种显示装置示意图;
图14示出了一些实施例提供的一种电子设备结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步的详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
术语“模块”是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
图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便可以执行与由用户命令选择的对象有关的操作。
在一些实施例中,所述对象可以是可选对象中的任何一个,例如超链接、图标或其他可操作的控件。与所选择的对象有关操作有:显示连接到超链接页面、文档、图像等操作,或者执行与所述图标相对应程序的操作。
在一些实施例中控制器包括中央处理器(Central Processing Unit,CPU),视频处理器,音频处理器,图形处理器(Graphics Processing Unit,GPU),RAM Random AccessMemory,RAM),ROM(Read-Only Memory,ROM),用于输入/输出的第一接口至第n接口,通信总线(Bus)等中的至少一种。
CPU处理器。用于执行存储在存储器中操作系统和应用程序指令,以及根据接收外部输入的各种交互指令,来执行各种应用程序、数据和内容,以便最终显示和播放各种音视频内容。CPU处理器,可以包括多个处理器。如,包括一个主处理器以及一个或多个子处理器。
在一些实施例中,图形处理器,用于产生各种图形对象,如:图标、操作菜单、以及用户输入指令显示图形等中的至少一种。图形处理器包括运算器,通过接收用户输入各种交互指令进行运算,根据显示属性显示各种对象;还包括渲染器,对基于运算器得到的各种对象,进行渲染,上述渲染后的对象用于显示在显示器上。
在一些实施例中,视频处理器,用于将接收外部视频信号,根据输入信号的标准编解码协议,进行解压缩、解码、缩放、降噪、帧率转换、分辨率转换、图像合成等视频处理中的至少一种,可得到直接可显示设备200上显示或播放的信号。
在一些实施例中,视频处理器,包括解复用模块、视频解码模块、图像合成模块、帧率转换模块、显示格式化模块等中的至少一种。其中,解复用模块,用于对输入音视频数据流进行解复用处理。视频解码模块,用于对解复用后的视频信号进行处理,包括解码和缩放处理等。图像合成模块,如图像合成器,其用于将图形生成器根据用户输入或自身生成的GUI信号,与缩放处理后视频图像进行叠加混合处理,以生成可供显示的图像信号。帧率转换模块,用于对转换输入视频帧率。显示格式化模块,用于将接收帧率转换后视频输出信号,改变信号以符合显示格式的信号,如输出RGB数据信号。
在一些实施例中,音频处理器,用于接收外部的音频信号,根据输入信号的标准编解码协议,进行解压缩和解码,以及降噪、数模转换、和放大处理等处理中的至少一种,得到可以在扬声器中播放的声音信号。
在一些实施例中,用户可在显示器260上显示的图形用户界面(GUI)输入用户命令,则用户输入接口通过图形用户界面(GUI)接收用户输入命令。或者,用户可通过输入特定的声音或手势进行输入用户命令,则用户输入接口通过传感器识别出声音或手势,来接收用户输入命令。
在一些实施例中,“用户界面”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(Graphic User Interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素中的至少一种。
在一些实施例中,用户接口280,为可用于接收控制输入的接口(如:显示设备本体上的实体按键,或其他等)。
在一些实施例中,显示设备的系统可以包括内核(Kernel)、命令解析器(shell)、文件系统和应用程序。内核、shell和文件系统一起组成了基本的操作系统结构,它们让用户可以管理文件、运行程序并使用系统。上电后,内核启动,激活内核空间,抽象硬件、初始化硬件参数等,运行并维护虚拟内存、调度器、信号及进程间通信(IPC)。内核启动后,再加载Shell和用户应用程序。应用程序在启动后被编译成机器码,形成一个进程。
参见图4,在一些实施例中,将系统分为四层,从上至下分别为应用程序(Applications)层(简称“应用层”),应用程序框架(Application Framework)层(简称“框架层”),安卓运行时(Android runtime)和系统库层(简称“系统运行库层”),以及内核层。
在一些实施例中,应用程序层中运行有至少一个应用程序,这些应用程序可以是操作系统自带的窗口(Window)程序、系统设置程序或时钟程序等;也可以是第三方开发者所开发的应用程序。在具体实施时,应用程序层中的应用程序包不限于以上举例。
框架层为应用程序层的应用程序提供应用编程接口(application programminginterface,API)和编程框架。应用程序框架层包括一些预先定义的函数。应用程序框架层相当于一个处理中心,这个中心决定让应用层中的应用程序做出动作。应用程序通过API接口,可在执行中访问系统中的资源和取得系统的服务。
如图4所示,本申请实施例中应用程序框架层包括管理器(Managers),内容提供者(Content Provider)等,其中管理器包括以下模块中的至少一个:活动管理器(ActivityManager)用与和系统中正在运行的所有活动进行交互;位置管理器(Location Manager)用于给系统服务或应用提供了系统位置服务的访问;文件包管理器(Package Manager)用于检索当前安装在设备上的应用程序包相关的各种信息;通知管理器(NotificationManager)用于控制通知消息的显示和清除;窗口管理器(Window Manager)用于管理用户界面上的括图标、窗口、工具栏、壁纸和桌面部件。
在一些实施例中,活动管理器用于管理各个应用程序的生命周期以及通常的导航回退功能,比如控制应用程序的退出、打开、后退等。窗口管理器用于管理所有的窗口程序,比如获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕,控制显示窗口变化(例如将显示窗口缩小显示、抖动显示、扭曲变形显示等)等。
在一些实施例中,系统运行库层为上层即框架层提供支撑,当框架层被使用时,安卓操作系统会运行系统运行库层中包含的C/C++库以实现框架层要实现的功能。
在一些实施例中,内核层是硬件和软件之间的层。如图4所示,内核层至少包含以下驱动中的至少一种:音频驱动、显示驱动、蓝牙驱动、摄像头驱动、WIFI驱动、USB驱动、HDMI驱动、传感器驱动(如指纹传感器,温度传感器,压力传感器等)、以及电源驱动等。
图5示出了根据一些实施例的显示设备200中应用程序的图标控件界面显示图,在一些实施例中,显示设备启动后可以直接进入预置的视频点播程序的界面,视频点播程序的界面可以如图5中所示,至少包括导航栏510和位于导航栏510下方的内容显示区,内容显示区中显示的内容会随导航栏中被选中控件的变化而变化。应用程序层中的程序可以被集成在视频点播程序中通过导航栏的一个控件进行展示,也可以在导航栏中的应用控件被选中后进行进一步显示。
在一些实施例中,显示设备启动后可以直接进入上次选择的信号源的显示界面,或者信号源选择界面,其中信号源可以是预置的视频点播程序,还可以是HDMI接口,直播电视接口等中的至少一种,用户选择不同的信号源后,显示器可以显示从不同信号源获得的内容。中的应用程序可以。
为清楚说明本申请的实施例,下面结合图6对本申请实施例提供的一种网络架构进行描述。
图6为本申请实施例提供的一种网络架构示意图,在图6中,智能设备用于接收输入的信息以及输出对该信息的处理结果;语音识别服务设备为部署有语音识别服务的电子设备,语义服务设备为部署有语义服务的电子设备,业务服务设备为部署有业务服务的电子设备。这里的电子设备可包括服务器、计算机等,这里的语音识别服务、语义服务(也可称为语义引擎)和业务服务为可部署在电子设备上的web服务,其中,语音识别服务用于将音频识别为文本,语义服务用于对文本进行语义解析,业务服务用于提供具体的服务如墨迹天气的天气查询服务、QQ音乐的音乐查询服务等。在一个实施例中,图6所示架构中可存在部署有不同业务服务的多个业务服务设备。
下面对基于图6所示架构处理输入智能设备的信息的过程进行举例描述,以输入智能设备的信息为通过语音输入的查询语句为例,上述过程可包括如下三个阶段:
1、语音识别阶段
智能设备可在接收到通过语音输入的查询语句后,将该查询语句的音频上传至语音识别服务设备,以由语音识别服务设备通过语音识别服务将该音频识别为文本后返回至智能设备。
在一个实施例中,将查询语句的音频上传至语音识别服务设备前,智能设备可对查询语句的音频进行去噪处理,这里的去噪处理可包括去除回声和环境噪声等步骤。
2、语义理解阶段
智能设备将语音识别服务识别出的查询语句的文本上传至语义服务设备,以由语义服务设备通过语义服务对该文本进行语义解析,得到文本的业务领域、意图等。
3、响应阶段
语义服务设备根据对查询语句的文本的语义解析结果,向相应的业务服务设备下发查询指令以获取业务服务给出的查询结果。智能设备可从语义服务设备获取该查询结果并输出。作为一个实施例,语义服务设备还可将对查询语句的语义解析结果发送至智能设备,以由智能设备输出该语义解析结果中的反馈语句。
需要说明的是,图6所示架构只是一种示例,并非对本申请保护范围的限定。本申请实施例中,也可采用其他架构来实现类似功能,在此不做赘述。
为了准确的确定音视频的播放状态信息,本申请提供了一种音视频播放控制方法、显示装置、电子设备及介质。
本申请实施例提供的音视频播放控制方法,应用于部署有Gstreamer播放器的电子设备,GStreamer是一个创建流媒体应用程序的框架。在一些实施例中该电子设备可以为电视、移动终端、PC等多媒体设备。
在一些实施例中,电子设备的音视频播放过程可以为:电子设备中的源数据先通过播放器管道中的解复用插件(demux)进行处理,通常情况下,没有经过解复用插件处理的源数据是不可播放的数据,源数据通过解复用插件进行处理后,解复用插件将源数据分为视频数据和音频数据,经过解复用插件处理后的视频数据和音频数据为可播放的数据。在一些实施例中,经过解复用插件处理后的音频数据可以流入缓存队列插件(MultiQueue)中的子音频插件,即音频缓存队列插件中进行缓存。经过解复用插件处理后的视频数据可以流入缓存队列插件中的子视频插件,即视频缓存队列插件中进行缓存。之后,从音频缓存队列插件中流出的音频数据可以流入其他插件的子音频插件中进行处理,从视频缓存队列插件中流出的视频数据可以流入其他插件的子视频插件中进行处理。在一些实施例中,经过其他插件最终处理好的音频数据可以通过音频播放模块,如喇叭等进行播放;最终处理好的视频数据可以通过视频播放模块,如显示屏等进行显示(播放)。
为方便理解,下面以其他插件包括解码器插件和渲染插件为例,对上述实施例提供的音视频播放过程进行说明。图7示出了一些实施例的音视频播放过程示意图,如图7所示,源数据经过解复用插件(demux)处理之后,可以分成音频数据和视频数据,其中音频数据可以流入缓存队列插件(MultiQueue)中的音频缓存队列插件中进行缓存,视频数据可以流入缓存队列插件中的视频缓存队列插件中进行缓存。从音频缓存队列插件中流出的音频数据可以流入解码器插件中的子音频插件,即音频解码器插件(AudioDecoder)中进行解码;从视频缓存队列插件留出的视频数据可以流入解码器插件中的子视频插件,即视频解码器插件(VideoDecoder)中进行解码。解码后的音频数据流入渲染插件中的子音频插件,即音频渲染插件(AudioSink)中进行渲染;解码后的视频数据流入渲染插件中的子视频插件,即视频渲染插件(VideoSink)中进行渲染。渲染后的音频数据和视频数据可以直接播放,具体的,渲染后的音频数据可以通过音频播放模块,如喇叭等播放;渲染后的视频数据可以通过视频播放模块,如显示屏等进行显示(播放)。
为了较准确的确定音视频的播放状态信息,以下是一种相关方案确定音视频的播放状态信息的过程:
相关方案可以基于整个播放器管道的数据总量来控制音视频的播放状态信息,在确定当前时刻整个播放器管道的数据总量时,该相关方案可以根据前一查询时刻整个播放器管道的数据总量、前一查询时刻缓存队列插件中的缓存数据量、当前时刻缓存队列插件中的缓存数据量以及当前时刻播放器的播放状态等,来确定当前时刻整个播放器管道的数据总量。在当前时刻整个播放器管道的数据总量小于预设的缓存阈值时,才控制音视频为暂停状态,相比只基于缓存队列插件中当前缓存的数据量控制音视频的播放状态信息而言,该相关方案可以在一定程度上减少没必要的暂停,较准确的确定音视频的播放状态信息。
然而上述相关方案在确定当前时刻整个播放器管道的数据总量时,需要依赖前一查询时刻整个播放器管道的数据总量,但是在例如音视频刚开始播放时,并没有前一查询时刻的数据总量,此时还需将当前时刻缓存队列插件中的数据量作为前一查询时刻的数据总量来进行计算,并不能准确的确定当前时刻的数据总量,同样会存在在只基于缓存队列插件中的数据量来控制音视频的播放状态信息时,可能造成一些没必要的暂停,不能较准确的确定音视频的播放状态信息,降低用户体验的问题。
为了准确的确定音视频的播放状态信息,电子设备可以先确定播放器管道中缓存队列插件当前缓存的第一数据量,其中可以采用相关技术确定缓存队列插件当前缓存的第一数据量,在此不再赘述。在一些实施例中,在确定缓存队列插件当前缓存的第一数据量时,可以先确定音频缓存队列插件当前缓存的第五数据量以及视频缓存队列插件当前缓存的第六数据量,为了保证后续音频数据和视频数据的同步播放,可以确定第五数据量和第六数据量中的最小数据量,将该最小数据量确定为缓存队列插件中当前缓存的第一数据量。
鉴于解复用插件处理的源数据为不可播放的源数据,且解复用插件中通常不保存数据,在一些实施例中,在确定播放器管道的数据总量时,可以不考虑解复用插件的数据量。因为播放器管道中除了缓存队列插件之外,播放器管道中的解码器插件、渲染插件等其他插件中也可以保存可播放的数据,为了准确的确定音视频的播放状态信息,在一些实施例中,针对播放器管道中除缓存队列插件和解复用插件之外的其他插件,电子设备还可以确定这些其他插件中保存的第二数据量。在一些实施例中,在确定其他插件中保存的音视频帧(在一些实施例中,为方便描述,将其他插件中保存的音频帧和/或视频帧统称为音视频帧)数据的第二数据量时,鉴于音视频帧均携带有播放的时间戳信息,可以基于其他插件中输入音视频的时间戳信息和输出音视频帧的时间戳信息,确定其他插件中的第二数据量。
示例性的,针对其他插件中输入的每个音视频帧,可以分别记录每个输入音视频帧的时间戳信息,并确定该输入音视频帧与前一相邻输入音视频帧的第一时间差,将每个第一时间差的总和作为该其他插件中输入音视频的第一播放时长。同样的,针对其他插件中输出的每个音视频帧,可以分别记录每个输出音视频帧的时间戳信息,并确定该输出音视频帧与前一相邻输出音视频帧的第二时间差,将每个第二时间差的总和作为该其他插件中输出音视频的第二播放时长,并可以将第一播放时长与第二播放时长的差,确定为该其他插件中的第二数据量。
在一些实施例中,为了准确确定其他插件中的第二数据量,在基于其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定其他插件中的第二数据量时,可以确定其他插件中输入的音视频帧中最后一帧音视频帧的第一时间戳,以及其他插件中输出的音视频帧中最后一帧音视频帧的第二时间戳;根据第一时间戳和第二时间戳的差值,确定其他插件中的第二数据量。
具体的,通常情况下,均是按照音视频帧携带的时间戳中播放时间的先后顺序,将音视频帧依次输入其他插件中,并将处理后的音视频帧从其他插件中依次输出。在一些实施例中,为了确定其他插件中的第二数据量,可以先确定其他插件中输入的音视频帧中最后一帧音视频帧的第一时间戳,同时,可以确定其他插件中输出的音视频帧中最后一帧音视频帧的第二时间戳,然后将该第一时间戳和第二时间戳的差值,确定为其他插件中的第二数据量。示例性的,例如输入的音视频帧中最后一帧音视频帧为第50秒时播放的音视频帧,第一时间戳为50秒,输出的音视频帧中最后一帧音视频帧为第30秒时播放的音视频帧,第二时间戳为第30秒,第一时间戳和第二时间戳的差值为20秒,可以认为其他插件中的第二数据量为20秒。
为方便理解,下面用公式形式对确定第二数据量的过程进行说明,示例性的,第一时间戳用PTSin表示,将第二时间戳用PTSout表示,第二数据量用Vd表示,则第二数据量Vd=PTSin-PTSout。
在一些实施例中,鉴于其他插件中解码器插件和渲染插件(尤其是解码器插件)中保存的数据量相对较多,可以确定解码器插件和/或渲染插件中的第二数据量,根据缓存队列插件当前的第一数据量和该第二数据量的和,确定播放器管道的数据总量。其中无论哪种其他插件,计算第二数据量的方式均可以用上述实施例的方式,在此不再赘述。
通常情况下,解码器插件中保存的数据量相对较多,下面以解码器插件为例,对获取解码器插件中第二数据量的过程进行说明。因为现有解码器插件中并没有提供可以直接查询其缓冲数据量的接口,在一些实施例中,可以在音视频编解码控制(mediacodec)层,通过统计解码器插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,来确定解码器插件中的第二数据量。其中,可以通过确定解码器插件中输入的音视频帧中最后一帧音视频帧的第一时间戳,以及解码器插件中输出的音视频帧中最后一帧音视频帧的第二时间戳;并根据第一时间戳和第二时间戳的差值,确定解码器插件中的第二数据量。
为方便理解,下面再通过一个具体实施例对本申请一些实施例提供的确定解码器插件中第二数据量的过程进行说明。图8示出了一些实施例的确定解码器插件中第二数据量的过程示意图,如图8所示:电子设备中的编解码控制(mediacodec)模块可以接收位于解码器插件上游的插件发送解码前数据,将解码前数据输入编码器插件中的输入缓冲器(InputBuffer)中,并记录解码器插件(Decoder)中输入的音视频帧中最后一帧音视频帧的第一时间戳PTSin。在解码器插件将数据解码后放入解码器插件中的输入缓冲器(OutputBuffer)后,从OutputBuffer中将解码后数据输出,记录解码器插件中输出的音视频帧中最后一帧音视频帧的第二时间戳PTSout,并将解码后的数据输出,使解码器插件下游的渲染插件可以对解码后的数据进行渲染。并根据第一时间戳PTSin和第二时间戳PTSout的差值,确定解码器插件中的第二数据量Vd,则Vd=PTSin-PTSout。
为方便理解,下面分别对确定其他插件保存的音频数据和视频数据的数据量的过程进行说明。通常情况下,其他插件中分别包括用于处理音频数据的子音频插件、以及用于处理视频数据的子视频插件。在基于其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定其他插件中当前保存的第二数据量时,可以分别基于其他插件的子音频插件中输入的音频帧的时间戳信息以及输出的音频帧的时间戳信息,确定子音频插件当前保存的音频帧的第三数据量。并分别基于其他插件的子视频插件中输入的视频帧的时间戳信息以及输出的视频帧的时间戳信息,确定子视频插件当前保存的视频帧的第四数据量。
在一些实施例中,在基于其他插件的子音频插件中输入的音频帧的时间戳信息以及输出的音频帧的时间戳信息,确定子音频插件当前保存的音频帧的第三数据量时,可以是针对子音频插件中输入的每个音频帧,可以分别记录每个输入音频帧的时间戳信息,并确定该输入音频帧与前一相邻输入音频帧的第三时间差,将每个第三时间差的总和作为该子音频插件中输入音频的第三播放时长。同样的,针对子音频插件中输出的每个音频帧,可以分别记录每个输出音频帧的时间戳信息,并确定该输出音频帧与前一相邻输出音频帧的第四时间差,将每个第四时间差的总和作为该子音频插件中输出音频的第四播放时长,并可以将第三播放时长与第四播放时长的差,确定为该子音频插件当前保存的音频帧的第三数据量。
在一些实施例中,在基于其他插件的子音频插件中输入的音频帧的时间戳信息以及输出的音频帧的时间戳信息,确定子音频插件当前保存的音频帧的第三数据量时,还可以是先确定子音频插件中输入的音频帧中最后一帧音频帧的第三时间戳,以及子音频插件中输出的音频帧中最后一帧音频帧的第四时间戳;根据第三时间戳和第四时间戳的差值,确定子音频插件当前保存的音频帧的第三数据量。
在一些实施例中,在基于其他插件的子视频插件中输入的视频帧的时间戳信息以及输出的视频帧的时间戳信息,确定子视频插件当前保存的视频帧的第四数据量时,可以是针对子视频插件中输入的每个视频帧,可以分别记录每个输入视频帧的时间戳信息,并确定该输入视频帧与前一相邻输入视频帧的第五时间差,将每个第五时间差的总和作为该子视频插件中输入视频的第五播放时长。同样的,针对子视频插件中输出的每个视频帧,可以分别记录每个输出视频帧的时间戳信息,并确定该输出视频帧与前一相邻输出视频帧的第六时间差,将每个第六时间差的总和作为该子视频插件中输出视频的第六播放时长,并可以将第五播放时长与第六播放时长的差,确定为该子视频插件当前保存的视频帧的第四数据量。
在一些实施例中,在基于其他插件的子视频插件中输入的视频帧的时间戳信息以及输出的视频帧的时间戳信息,确定子视频插件当前保存的视频帧的第四数据量时,还可以是先确定子视频插件中输入的视频帧中最后一帧音频帧的第五时间戳,以及子视频插件中输出的视频帧中最后一帧视频帧的第六时间戳;根据第五时间戳和第六时间戳的差值,确定子视频插件当前保存的视频帧的第四数据量。
在一些实施例中,为了保证后续音频数据和视频数据的同步播放,可以确定第三数据量和第四数据量中的最小数据量,将该最小数据量确定为其他插件中当前保存的第二数据量。示例性的,以解码器插件为例,如果解码器插件的子音频插件(音频解码器插件)中当前保存的音频帧的第三数据量为30秒。而解码器插件的子视频插件(视频解码器插件)中当前保存的视频帧的第四数据量为20秒。则第三数据量和第四数据量中的最小数据量为20秒,可以认为解码器插件当前保存的第二数据量为20秒。
在一些实施例中,为了准确的确定音视频的播放状态信息,可以将缓存队列插件当前的第一数据量与其他插件当前的第二数据量的和,确定为播放器管道的数据总量。示例性的,缓存队列插件当前的第一数据量用Vt表示,其他插件当前的第二数据量用Vd表示,播放器管道的数据总量用Vs,则数据总量Vs=Vd+Vt。
在一些实施例中,可以以设定的频率,周期性的确定缓存队列插件的第一数据量以及其他插件的第二数据量,并将第一数据量与第二数据量的和,确定为播放器管道的数据总量。
在一些实施例中,可以基于数据总量,确定播放器管道中音视频的播放状态信息,其中播放状态信息可以包括播放状态或暂停状态。在一些实施例中,可以是数据总量较大时,确定播放器管道中音视频为播放状态;数据总量较小时,确定播放器管道中音视频为暂停状态,可以根据需求灵活设置,本申请实施例对此不做具体限定。
由于本申请实施例可以根据缓存队列插件当前的第一数据量以及播放器管道中除缓存队列插件和解复用插件之外的其他插件的第二数据量,确定播放器管道当前的数据总量,可以在包括刚开始播放等在内的任一播放时刻均可以较准确的确定播放器管道当前的数据总量,基于该数据总量,确定播放器管道中音视频的播放状态信息时,可以较准确的确定音视频的播放状态信息,在一定程度上减少没必要的暂停,提高用户体验。
为了准确确定播放器管道中音视频的播放状态信息,在一些实施例中,在基于数据总量,确定播放器管道中音视频的播放状态信息时,若播放器管道中的音视频当前处于播放状态,可以判断是否需要将音视频从播放状态切换为暂停状态,具体的,可以判断数据总量是否小于预设的缓存阈值,若是,可以认为当前数据总量较小,比较缺数据,可以将音视频从播放状态切换为暂停状态,以进行适当的缓冲,以增大缓存队列插件当前的第一数据量和其他插件中的第二数据量。
在一些实施例中,若播放器管道中的音视频当前处于暂停状态,可以判断是否需要将音视频从暂停状态切换为播放状态,具体的,可以判断数据总量是否大于预设的播放阈值,若是,可以认为当前数据总量较大,数据比较充足,可以将音视频从暂停状态切换为播放状态,以对音视频进行播放。
为了确定播放器管道中音视频的播放状态信息,在一些实施例中,在确定缓存队列插件当前的第一数据量之后,若播放器管道中的音视频当前处于播放状态,可以判断该第一数据量是否小于预设的缓存阈值,若否,可以认为缓存队列插件当前的第一数据量较大,可以维持播放器管道中音视频当前的播放状态。可以理解的,如果第一数据量不小于预设的缓存阈值,维持播放器管道中音视频当前的播放状态后,可以不进行后续确定其他插件的第二数据量,以及判断数据总量是否小于预设的缓存阈值的步骤。
在一些实施例中,如果播放器管道中的音视频当前处于播放状态,而第一数据量小于预设的缓存阈值,相关技术中在第一数据量小于预设的缓存阈值时,即认为缺数据,认为需要将音视频从播放状态切换为暂停状态。而在音视频刚开始播放时,或者进行用户进行快进快退(seek)等操作后需要将播放器管道中缓存的数据均清零重新开始播放音视频时,解码器插件等其他插件需要缓存较多数据来启动工作,尤其是解码器插件,可能需要缓存十几帧音视频帧才可以开始解码。由于解码器插件等其他插件中缓存了较多的可用数据而只是暂时没有将可用数据输出到缓存队列插件中时,如果只在判断第一数据量小于预设的缓存阈值时即认为缺数据,需要将音视频从播放状态切换为暂停状态可能会引起不必要的暂停,即第一数据量小于预设的缓存阈值时的缺数据可能只是假性缺数据。
为了准确确定播放器管道中音视频的播放状态信息,减少不必要的暂停,提高用户体验,在本申请实施例中,可以在判断第一数据量小于预设的缓存阈值时,可以进而针对播放器管道中除缓存队列插件之外的其他插件,基于其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定其他插件中的第二数据量;并根据第一数据量和第二数据量,确定播放器管道的数据总量,并判断数据总量是否小于预设的缓存阈值。如果数据总量小于预设的缓存阈值,可以认为是真的缺数据,可以将音视频从播放状态切换为暂停状态。而如果数据总量不小于预设的缓存阈值,则可以认为此时并不缺数据,可以不将音视频从播放状态切换为暂停状态,而维持音视频的播放状态。
为方便理解,下面通过一个具体实施例对本申请一些实施例提供的音视频播放控制过程进行说明。图9示出了一些实施例提供的第一种音视频播放控制过程示意图,如图9所示,该过程包括以下步骤:
S901:确定缓存队列插件当前缓存的第一数据量,并针对播放器管道中除所述缓存队列插件和解复用插件之外的其他插件,基于所述其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定所述其他插件中当前保存的第二数据量。
S902:根据所述第一数据量和所述第二数据量,确定所述播放器管道的数据总量。
S903:基于所述数据总量,确定所述播放器管道中音视频的播放状态信息。
为方便理解,下面再通过一个具体实施例对本申请一些实施例提供的音视频播放控制过程进行说明。图10示出了一些实施例提供的第二种音视频播放控制过程示意图,如图10所示,该过程包括以下步骤:
S1001:确定缓存队列插件当前的第一数据量Vt。
S1002:若播放器管道中的音视频当前处于播放状态,判断第一数据量Vt是否小于预设的缓存阈值VL,若否,进行S1003;若是,进行S1004。
S1003:维持音视频的播放状态。
S1004:针对播放器管道中除缓存队列插件和解复用插件之外的其他插件,基于其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定其他插件中的第二数据量Vd。
S1005:根据第一数据量Vt和第二数据量Vd,确定播放器管道的数据总量Vs。
S1006:判断数据总量Vs是否小于预设的缓存阈值VL,若是,进行S1007;若否,进行S1003。
S1007:将音视频从播放状态切换为暂停状态。
为方便描述,可以将判断第一数据量是否小于预设的缓存阈值的过程称为一级检测,将判断数据总量是否小于预设的缓存阈值的过程称为二级检测。本申请中一些实施例可以在一级检测结果显示可能缺数据时,再基于二级检测,判断是否真的缺少数据,从而可以准确的确定播放器管道中音视频的播放状态信息,减小不必要的暂停,提高用户体验;同时,本申请中一些实施例在一级检测结果显示不缺数据时,可以不进行二级检测,也可以简化确定过程,提高效率。
为了确定播放器管道中音视频的播放状态信息,在一些实施例中,在确定缓存队列插件当前的第一数据量之后,若播放器管道中的音视频当前处于暂停状态,可以判断该第一数据量是否小于预设的播放阈值,若否,可以认为缓存队列插件当前的第一数据量较大,可以将音视频从暂停状态切换为播放状态。可以理解的,如果第一数据量不小于预设的播放阈值,将音视频从暂停状态切换为播放状态后,可以不进行后续确定其他插件的第二数据量,以及判断数据总量是否大于预设的播放阈值的步骤。
在一些实施例中,如果播放器管道中的音视频当前处于暂停状态,而第一数据量小于预设的播放阈值,相关技术中在第一数据量小于预设的播放阈值时,可能还需维持音视频的暂停状态。而在本申请一些实施例中,为了准确确定播放器管道中音视频的播放状态信息,减少不必要的暂停,提高用户体验,可以在判断第一数据量小于预设的播放阈值时,可以进而针对播放器管道中除缓存队列插件和解复用插件之外的其他插件,基于其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定其他插件中的第二数据量;并根据第一数据量和第二数据量,确定播放器管道的数据总量,并判断数据总量是否小于预设的播放阈值。如果数据总量小于预设的播放阈值,可以维持音视频的暂停状态。而如果数据总量不小于预设的播放阈值,则可以将音视频从暂停状态切换为播放状态,以对音视频进行播放。
为方便理解,下面通过一个具体实施例对本申请一些实施例提供的音视频播放控制过程进行说明。图11示出了一些实施例提供的第三种音视频播放控制过程示意图,如图11所示,该过程包括以下步骤:
S1101:确定缓存队列插件当前的第一数据量Vt。
S1102:若播放器管道中的音视频当前处于暂停状态,判断第一数据量Vt是否小于预设的播放阈值VH,若否,进行S1103;若是,进行S1104。
S1103:将音视频从暂停状态切换为播放状态。
S1104:针对播放器管道中除缓存队列插件和解复用插件之外的其他插件,基于其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定其他插件中的第二数据量Vd。
S1105:根据第一数据量Vt和第二数据量Vd,确定播放器管道的数据总量Vs。
S1106:判断数据总量Vs是否大于预设的播放阈值VH,若是,进行S1103;若否,进行S1107。
S1107:维持音视频的暂停状态。
为方便描述,可以将判断第一数据量是否小于预设的播放阈值的过程称为一级检测,将判断数据总量是否小于预设的播放阈值的过程称为二级检测。本申请中一些实施例可以在一级检测结果显示可能需要暂停时,再基于二级检测,判断是否真的需要暂停,从而可以准确的确定播放器管道中音视频的播放状态信息,减小不必要的暂停,提高用户体验;同时,本申请中一些实施例在一级检测结果显示不需要暂停时,可以不进行二级检测,也可以简化确定过程,提高效率。
为方便理解,下面再通过一个具体实施例对本申请一些实施例提供的音视频播放控制过程进行说明。以其他插件为解码器插件为例,解码器插件当前的第二数据量用Vd表示,缓存队列插件当前的第一数据量用Vt表示,播放器管道的数据总量用Vs,则数据总量用Vs=Vd+Vt。预设的缓存阈值用VL表示,预设的播放阈值用VH表示:
若播放器管道中的音视频当前处于播放状态,判断数据总量Vs是否小于预设的缓存阈值VL,若Vs<VL,则将音视频从播放状态切换为暂停状态。
若播放器管道中的音视频当前处于暂停状态,判断数据总量Vs是否大于预设的播放阈值VH,若Vs>VH,则将音视频从暂停状态切换为播放状态。
在一些实施例中,电子设备中可以单独运行一个关于管道数据统计的线程,该线程在音视频开始播放时即被拉起,直到音视频播放结束。具体的,该线程中可以包括管道数据统计模块。在本申请一些实施例中,缓存队列插件中缓存的数据量称为第一数据量。其他插件中保存的数据量称为第二数据量,管道数据统计模块可以以设定的频率,周期性的确定缓存队列插件的第一数据量以及其他插件中的第二数据量,并将第一数据量与第二数据量的和,确定为播放器管道的数据总量。
为方便理解,下面再通过一个具体实施例对本申请一些实施例提供的音视频播放控制过程进行说明。图12示出了一些实施例提供的第四种音视频播放控制过程示意图,如图12所示:
S1201:电子设备中的管道数据统计模块确定缓存队列插件的第一数据量Vt,若播放器管道中的音视频当前处于播放状态,进行S1202;若播放器管道中的音视频当前处于暂停状态,进行S1208。
S1202:若播放器管道中的音视频当前处于播放状态,电子设备中的缓冲检测模块判断第一数据量Vt是否小于预设的缓存阈值VL,若否,进行S1203;若是,进行S1204。
S1203:电子设备中的播控模块维持音视频的播放状态。
S1204:针对播放器管道中除缓存队列插件和解复用插件之外的其他插件,管道数据统计模块基于其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定其他插件中的第二数据量Vd。
S1205:管道数据统计模块根据第一数据量Vt和第二数据量Vd,确定播放器管道的数据总量Vs。
S1206:缓冲检测模块判断数据总量Vs是否小于预设的缓存阈值VL,若是,进行S1207;若否,进行S1203。
S1207:缓冲检测模块向播控模块发送开始缓冲通知,播控模块将音视频从播放状态切换为暂停状态,在电子设备的显示器中显示缓冲图标。
S1208:若播放器管道中的音视频当前处于暂停状态,电子设备中的缓冲检测模块判断第一数据量Vt是否小于预设的播放阈值VH,若否,进行S1209;若是,进行S1210。
S1209:缓冲检测模块向播控模块发送缓冲结束通知,播控模块将音视频从暂停状态切换为播放状态。
S1210:针对播放器管道中除缓存队列插件和解复用插件之外的其他插件,管道数据统计模块基于其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定其他插件中的第二数据量Vd。
S1211:管道数据统计模块根据第一数据量Vt和第二数据量Vd,确定播放器管道的数据总量Vs。
S1212:缓冲检测模块判断数据总量Vs是否大于预设的播放阈值VH,若是,进行S1209;若否,进行S1213。
S1213:播控模块维持音视频的暂停状态。
基于相同的技术构思,本申请还提供一种显示装置,该显示装置可实现前述实施例中电子设备所执行的流程。图13示出了一些实施例提供的一种显示装置示意图,如图13所示,所述装置包括:
显示屏131,所述显示屏用于显示;
处理器132,所述处理器用于执行:
确定缓存队列插件当前缓存的第一数据量,并针对播放器管道中除所述缓存队列插件和解复用插件之外的其他插件,基于所述其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定所述其他插件中当前保存的第二数据量;
根据所述第一数据量和所述第二数据量,确定所述播放器管道的数据总量;
基于所述数据总量,确定所述播放器管道中音视频的播放状态信息。
为了实现对显示设备的控制,显示设备中设置有显示屏131和控制器132,其中显示屏131与控制器132连接。
本申请中一些实施例中,所述处理器132用于执行:
确定所述其他插件中输入的音视频帧中最后一帧音视频帧的第一时间戳,以及所述其他插件中输出的音视频帧中最后一帧音视频帧的第二时间戳;
根据所述第一时间戳和第二时间戳的差值,确定所述其他插件中的第二数据量。
本申请中一些实施例中,所述处理器132用于执行:
若所述播放器管道中的音视频当前处于播放状态,判断所述数据总量是否小于预设的缓存阈值,若是,则将所述音视频从播放状态切换为暂停状态。
本申请中一些实施例中,所述处理器132用于执行:
若所述播放器管道中的音视频当前处于暂停状态,判断所述数据总量是否大于预设的播放阈值,若是,则将所述音视频从暂停状态切换为播放状态。
本申请中一些实施例中,所述处理器132用于执行:
所述确定缓存队列插件当前的第一数据量之后,若所述播放器管道中的音视频当前处于播放状态,判断所述第一数据量是否小于预设的缓存阈值,若否,则维持所述音视频的播放状态。
本申请中一些实施例中,所述处理器132用于执行:
所述确定缓存队列插件当前的第一数据量之后,若所述播放器管道中的音视频当前处于暂停状态,判断所述第一数据量是否小于预设的播放阈值,若否,则将所述音视频从暂停状态切换为播放状态。
本申请中一些实施例中,所述处理器132包括音频处理器、视频处理器、数据处理器;
其中,所述音频处理器,用于执行:
基于所述其他插件的子音频插件中输入的音频帧的时间戳信息以及输出的音频帧的时间戳信息,确定所述子音频插件当前保存的音频帧的第三数据量;
所述视频处理器,用于执行:
基于所述其他插件的子视频插件中输入的视频帧的时间戳信息以及输出的视频帧的时间戳信息,确定所述子视频插件当前保存的视频帧的第四数据量;
所述数据处理器,用于执行:
确定所述第三数据量和所述第四数据量中的最小数据量,将所述最小数据量确定为所述其他插件中当前保存的第二数据量。
在本申请中该显示装置所涉及的与本申请提供的技术方案相关的概念,解释和详细说明及其它步骤请参见前述方法或其它实施例中关于这些内容的描述,此处不做赘述。
在上述各实施例的基础上,本申请实施例还提供了一种电子设备,图14示出了一些实施例提供的一种电子设备结构示意图,如图14所示,该电子设备包括:处理器141、通信接口142、存储器143和通信总线144,其中,处理器141,通信接口142,存储器143通过通信总线144完成相互间的通信;
所述存储器143中存储有计算机程序,当所述程序被所述处理器141执行时,使得所述处理器141以完成上述方法中电子设备执行相应功能的步骤。
由于上述电子设备解决问题的原理与音视频播放控制方法相似,因此上述电子设备的实施可以参见方法的实施,重复之处不再赘述。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口142用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
在上述各实施例的基础上,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行时实现如下步骤:
确定缓存队列插件当前缓存的第一数据量,并针对播放器管道中除所述缓存队列插件和解复用插件之外的其他插件,基于所述其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定所述其他插件中当前保存的第二数据量;
根据所述第一数据量和所述第二数据量,确定所述播放器管道的数据总量;
基于所述数据总量,确定所述播放器管道中音视频的播放状态信息。
本申请中一些实施例中,所述基于所述其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定所述其他插件中当前保存的第二数据量包括:
确定所述其他插件中输入的音视频帧中最后一帧音视频帧的第一时间戳,以及所述其他插件中输出的音视频帧中最后一帧音视频帧的第二时间戳;
根据所述第一时间戳和第二时间戳的差值,确定所述其他插件中的第二数据量。
本申请中一些实施例中,所述基于所述数据总量,确定所述播放器管道中音视频的播放状态信息包括:
若所述播放器管道中的音视频当前处于播放状态,判断所述数据总量是否小于预设的缓存阈值,若是,则将所述音视频从播放状态切换为暂停状态。
本申请中一些实施例中,所述基于所述数据总量,确定所述播放器管道中音视频的播放状态信息包括:
若所述播放器管道中的音视频当前处于暂停状态,判断所述数据总量是否大于预设的播放阈值,若是,则将所述音视频从暂停状态切换为播放状态。
本申请中一些实施例中,所述确定缓存队列插件当前的第一数据量之后,所述方法还包括:
若所述播放器管道中的音视频当前处于播放状态,判断所述第一数据量是否小于预设的缓存阈值,若否,则维持所述音视频的播放状态。
本申请中一些实施例中,所述确定缓存队列插件当前的第一数据量之后,所述方法还包括:
若所述播放器管道中的音视频当前处于暂停状态,判断所述第一数据量是否小于预设的播放阈值,若否,则将所述音视频从暂停状态切换为播放状态。
本申请中一些实施例中,所述基于所述其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定所述其他插件中当前保存的第二数据量包括:
基于所述其他插件的子音频插件中输入的音频帧的时间戳信息以及输出的音频帧的时间戳信息,确定所述子音频插件当前保存的音频帧的第三数据量;并基于所述其他插件的子视频插件中输入的视频帧的时间戳信息以及输出的视频帧的时间戳信息,确定所述子视频插件当前保存的视频帧的第四数据量;
确定所述第三数据量和所述第四数据量中的最小数据量,将所述最小数据量确定为所述其他插件中当前保存的第二数据量。
本申请中一些实施例中,所述其他插件包括解码器插件和/或渲染插件。
上述计算机可读存储介质可以是电子设备中的处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器如软盘、硬盘、磁带、磁光盘(MO)等、光学存储器如CD、DVD、BD、HVD等、以及半导体存储器如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD)等。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (9)
1.一种音视频播放控制方法,其特征在于,所述方法包括:
确定缓存队列插件当前缓存的第一数据量,并针对播放器管道中除所述缓存队列插件和解复用插件之外的其他插件,基于所述其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定所述其他插件中当前保存的第二数据量;其中,针对所述其他插件中输入的每个输入音视频帧,分别记录每个输入音视频帧的时间戳信息,并确定该输入音视频帧与上一相邻输入音视频帧的第一时间差,将每个第一时间差的总和作为所述其他插件中输入音视频的第一播放时长;针对所述其他插件中输出的每个输出音视频帧,分别记录每个输出音视频帧的时间戳信息,并确定该输出音视频帧与上一相邻输出音视频帧的第二时间差,将每个第二时间差的总和作为该其他插件中输出音视频的第二播放时长;将所述第一播放时长与所述第二播放时长的差,确定为所述其他插件中当前保存的第二数据量;
根据所述第一数据量和所述第二数据量,确定所述播放器管道的数据总量;
基于所述数据总量,确定所述播放器管道中音视频的播放状态信息。
2.根据权利要求1所述的方法,其特征在于,所述基于所述数据总量,确定所述播放器管道中音视频的播放状态信息包括:
若所述播放器管道中的音视频当前处于播放状态,判断所述数据总量是否小于预设的缓存阈值,若是,则将所述音视频从播放状态切换为暂停状态。
3.根据权利要求1所述的方法,其特征在于,所述基于所述数据总量,确定所述播放器管道中音视频的播放状态信息包括:
若所述播放器管道中的音视频当前处于暂停状态,判断所述数据总量是否大于预设的播放阈值,若是,则将所述音视频从暂停状态切换为播放状态。
4.根据权利要求1或2所述的方法,其特征在于,所述确定缓存队列插件当前的第一数据量之后,所述方法还包括:
若所述播放器管道中的音视频当前处于播放状态,判断所述第一数据量是否小于预设的缓存阈值,若否,则维持所述音视频的播放状态。
5.根据权利要求1或3所述的方法,其特征在于,所述确定缓存队列插件当前的第一数据量之后,所述方法还包括:
若所述播放器管道中的音视频当前处于暂停状态,判断所述第一数据量是否小于预设的播放阈值,若否,则将所述音视频从暂停状态切换为播放状态。
6.根据权利要求1所述的方法,其特征在于,所述基于所述其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定所述其他插件中当前保存的第二数据量包括:
基于所述其他插件的子音频插件中输入的音频帧的时间戳信息以及输出的音频帧的时间戳信息,确定所述子音频插件当前保存的音频帧的第三数据量;并基于所述其他插件的子视频插件中输入的视频帧的时间戳信息以及输出的视频帧的时间戳信息,确定所述子视频插件当前保存的视频帧的第四数据量;
确定所述第三数据量和所述第四数据量中的最小数据量,将所述最小数据量确定为所述其他插件中当前保存的第二数据量。
7.根据权利要求1所述的方法,其特征在于,所述其他插件包括解码器插件和/或渲染插件。
8.一种显示装置,其特征在于,所述装置包括:
显示屏,所述显示屏用于显示;
处理器,所述处理器用于执行:
确定缓存队列插件当前缓存的第一数据量,并针对播放器管道中除所述缓存队列插件和解复用插件之外的其他插件,基于所述其他插件中输入音视频帧的时间戳信息以及输出音视频帧的时间戳信息,确定所述其他插件中当前保存的第二数据量;其中,针对所述其他插件中输入的每个输入音视频帧,分别记录每个输入音视频帧的时间戳信息,并确定该输入音视频帧与上一相邻输入音视频帧的第一时间差,将每个第一时间差的总和作为所述其他插件中输入音视频的第一播放时长;针对所述其他插件中输出的每个输出音视频帧,分别记录每个输出音视频帧的时间戳信息,并确定该输出音视频帧与上一相邻输出音视频帧的第二时间差,将每个第二时间差的总和作为该其他插件中输出音视频的第二播放时长;将所述第一播放时长与所述第二播放时长的差,确定为所述其他插件中当前保存的第二数据量;
根据所述第一数据量和所述第二数据量,确定所述播放器管道的数据总量;
基于所述数据总量,确定所述播放器管道中音视频的播放状态信息。
9.根据权利要求8所述的装置,其特征在于,所述处理器包括音频处理器、视频处理器、数据处理器;
其中,所述音频处理器,用于执行:
基于所述其他插件的子音频插件中输入的音频帧的时间戳信息以及输出的音频帧的时间戳信息,确定所述子音频插件当前保存的音频帧的第三数据量;
所述视频处理器,用于执行:
基于所述其他插件的子视频插件中输入的视频帧的时间戳信息以及输出的视频帧的时间戳信息,确定所述子视频插件当前保存的视频帧的第四数据量;
所述数据处理器,用于执行:
确定所述第三数据量和所述第四数据量中的最小数据量,将所述最小数据量确定为所述其他插件中当前保存的第二数据量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110046284.8A CN112911392B (zh) | 2021-01-14 | 2021-01-14 | 一种音视频播放控制方法和显示装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110046284.8A CN112911392B (zh) | 2021-01-14 | 2021-01-14 | 一种音视频播放控制方法和显示装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112911392A CN112911392A (zh) | 2021-06-04 |
CN112911392B true CN112911392B (zh) | 2022-06-10 |
Family
ID=76113166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110046284.8A Active CN112911392B (zh) | 2021-01-14 | 2021-01-14 | 一种音视频播放控制方法和显示装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112911392B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113709346A (zh) * | 2021-08-27 | 2021-11-26 | 北京八分量信息科技有限公司 | 一种基于去中心化的大数据监控系统 |
CN117193697A (zh) * | 2022-05-30 | 2023-12-08 | 华为技术有限公司 | 音频播放方法、装置及电子设备 |
CN116700660B (zh) * | 2022-11-15 | 2024-05-14 | 荣耀终端有限公司 | 音频播放方法和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101329642A (zh) * | 2008-06-11 | 2008-12-24 | 华中科技大学 | 基于时间戳日志存储的连续数据保护和恢复方法 |
CN107509100A (zh) * | 2017-09-15 | 2017-12-22 | 深圳国微技术有限公司 | 音视频同步方法、系统、计算机装置及计算机可读存储介质 |
CN111327956A (zh) * | 2020-02-13 | 2020-06-23 | 杭州海康威视系统技术有限公司 | 一种视频播放方法、装置及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9276831B2 (en) * | 2013-07-18 | 2016-03-01 | Airmagnet, Inc. | Determining network latency with limited computing resources |
CN104461380B (zh) * | 2014-11-17 | 2017-11-21 | 华为技术有限公司 | 数据存储方法及装置 |
CN108259998B (zh) * | 2018-03-01 | 2021-01-22 | 海信视像科技股份有限公司 | 播放器及播放控制方法、装置、电子设备及播放系统 |
CN111601144B (zh) * | 2020-05-19 | 2021-10-08 | 青岛海信传媒网络技术有限公司 | 流媒体文件播放方法及显示设备 |
-
2021
- 2021-01-14 CN CN202110046284.8A patent/CN112911392B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101329642A (zh) * | 2008-06-11 | 2008-12-24 | 华中科技大学 | 基于时间戳日志存储的连续数据保护和恢复方法 |
CN107509100A (zh) * | 2017-09-15 | 2017-12-22 | 深圳国微技术有限公司 | 音视频同步方法、系统、计算机装置及计算机可读存储介质 |
CN111327956A (zh) * | 2020-02-13 | 2020-06-23 | 杭州海康威视系统技术有限公司 | 一种视频播放方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112911392A (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112911392B (zh) | 一种音视频播放控制方法和显示装置 | |
CN114302190B (zh) | 一种显示设备及画质调整方法 | |
CN113038160B (zh) | 一种显示设备及音视频数据的播放方法 | |
CN111601135B (zh) | 一种音视频基本流同步注入的方法及显示设备 | |
CN112667184A (zh) | 一种显示设备 | |
CN113490042B (zh) | 一种显示设备以及搜台方法 | |
CN114302238B (zh) | 一种音箱模式下提示信息的展示方法及显示设备 | |
CN112887753A (zh) | 一种显示设备及频道列表展示方法 | |
CN117981331A (zh) | 显示设备及其显示方法 | |
CN115776585A (zh) | 显示设备和内容展示方法 | |
CN112752156A (zh) | 字幕调整方法及显示设备 | |
CN114827679A (zh) | 显示设备和音画同步方法 | |
CN112601109A (zh) | 音频播放方法及显示设备 | |
CN113111214A (zh) | 一种播放记录的显示方法及显示设备 | |
CN112911381B (zh) | 一种显示设备、模式调整方法、设备及介质 | |
CN113542765B (zh) | 一种媒体数据跳变续播方法及显示设备 | |
KR20200038150A (ko) | 디스플레이 장치 및 상기 디스플레이 장치와 통신하는 서버 | |
CN113490030A (zh) | 一种显示设备及频道信息展示方法 | |
CN113079400A (zh) | 显示设备、服务器及语音交互方法 | |
US20230020264A1 (en) | Display method and display apparatus | |
CN111586481B (zh) | 一种终端及应用的处理方法 | |
CN113473220B (zh) | 一种音效自动启动方法及显示设备 | |
CN117651196A (zh) | 显示设备以及多媒体字幕显示方法 | |
CN116225275A (zh) | 一种显示设备及界面跳转方法 | |
CN117812374A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |