CN113395581A - 音频播放方法、装置、电子设备及存储介质 - Google Patents
音频播放方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113395581A CN113395581A CN202110661517.5A CN202110661517A CN113395581A CN 113395581 A CN113395581 A CN 113395581A CN 202110661517 A CN202110661517 A CN 202110661517A CN 113395581 A CN113395581 A CN 113395581A
- Authority
- CN
- China
- Prior art keywords
- data
- audio
- audio data
- playing
- decoded
- 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.)
- Granted
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/439—Processing of audio elementary streams
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
-
- 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/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47217—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本公开实施例提供一种音频播放方法、装置、电子设备及存储介质,通过获取媒体数据,媒体数据中包括基于ACC格式编码的音频数据;响应跳转播放指令,确定媒体数据中的待解码音频数据,其中,待解码音频数据中包括目标数据和前置数据,目标数据为媒体数据中,跳转播放指令所指示的播放时间点对应的音频数据包,前置数据为位于目标数据之前预设长度内的音频数据包,前置数据用于作为目标数据的无声数据;对待解码音频数据进行解码,生成目标数据对应的第一音频数据,由于在对媒体数据进行跳转播放时,生成了由目标数据和前置数据构成的待解码音频数据,再对待解码音频数据进行解码和播放,避免了缺失无声数据而导致的音频噪声问题。
Description
技术领域
本公开实施例涉及音频处理技术领域,尤其涉及一种音频播放方法、装置、电子设备及存储介质。
背景技术
视频播放软件中,用于解码和播放音频和视频的算法,是视频播放软件的核心功能模块,其直接决定的视频播放软件的性能和视频播放质量。其中,高级音频编码(Advanced Audio Coding,AAC)是当前流行的音频编码算法之一,能够在保证较高压缩比的前提下,提供更好的音频质量,因此被众多的软硬件厂商所采用。目前,在ACC算法的基础上,还开发出了改良的ACC算法,例如高效ACC(High Efficiency AAC,HE-AAC v1),以及HE-AAC v2。
然而,现有技术中,在使用一些解码器对ACC格式的音频数据进行解码和播放过程中,当进行跳转播放(seek)时,会出现噪声的问题,从而影响音频的播放质量。
发明内容
本公开实施例提供一种音频播放方法、装置、电子设备及存储介质,以克服对音频数据进行跳转播放时出现的噪声问题。
第一方面,本公开实施例提供一种音频播放方法,包括:
获取媒体数据,所述媒体数据中包括基于ACC格式编码的音频数据;响应跳转播放指令,确定所述媒体数据中的待解码音频数据,其中,所述待解码音频数据中包括目标数据和前置数据,所述目标数据为所述媒体数据中,所述跳转播放指令所指示的播放时间点对应的音频数据包,所述前置数据为位于所述目标数据之前预设长度内的音频数据包,所述前置数据用于作为所述目标数据的无声数据;对所述待解码音频数据进行解码,生成所述目标数据对应的第一音频数据,并播放所述第一音频数据。
第二方面,本公开实施例提供一种音频数据播放装置,包括:
获取模块,用于获取媒体数据,所述媒体数据中包括基于ACC格式编码的音频数据;
确定模块,用于响应跳转播放指令,确定所述媒体数据中的待解码音频数据,其中,所述待解码音频数据中包括目标数据和前置数据,所述目标数据为所述媒体数据中,所述跳转播放指令所指示的播放时间点对应的音频数据包,所述前置数据为所述目标数据之前预设长度内的音频数据包,所述前置数据用于作为所述目标数据的无声数据;
生成模块,用于对所述待解码音频数据进行解码,生成所述目标数据对应的第一音频数据和所述前置数据对应的第二音频数据,并播放所述第一音频数据。
第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的音频播放方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的音频播放方法。
第五方面,本公开实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上第一方面以及第一方面各种可能的设计所述的音频播放方法。
本实施例提供的音频播放方法、装置、电子设备及存储介质,通过获取媒体数据,所述媒体数据中包括基于ACC格式编码的音频数据;响应跳转播放指令,确定所述媒体数据中的待解码音频数据,其中,所述待解码音频数据中包括目标数据和前置数据,所述目标数据为所述媒体数据中,所述跳转播放指令所指示的播放时间点对应的音频数据包,所述前置数据为位于所述目标数据之前预设长度内的音频数据包,所述前置数据用于作为所述目标数据的无声数据;对所述待解码音频数据进行解码,生成所述目标数据对应的第一音频数据,并播放所述第一音频数据,由于在对媒体数据进行跳转播放时,首先生成了由跳转播放指令对应的目标数据和前置数据构成的待解码音频数据,再对待解码音频数据进行解码和播放,从而避免了由于缺失无声数据而导致的音频噪声问题,提高了音频播放质量。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的音频播放方法的一种应用场景图;
图2为本公开实施例提供的一种ACC格式的音频数据的示意图;
图3为本公开实施例提供的音频播放方法的流程示意图一;
图4为本公开实施例提供的一种待解码音频数据的示意图;
图5为本公开实施例提供的音频播放方法的流程示意图二;
图6为本公开实施例提供的一种生成第一音频数据并进行播放的过程示意图;
图7为本公开实施例提供的音频播放装置的结构框图;
图8为本公开实施例提供的一种电子设备的结构示意图;
图9为本公开实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
下面对本公开实施例的应用场景进行解释:
图1为本公开实施例提供的音频播放方法的一种应用场景图,如图1所示,本公开实施例提供的音频播放方法的执行主体可以为终端设备11,例如为智能手机。具体地,终端设备11内运行有用于播放视频和音频内容的视频播放应用(application,APP),终端设备包括触摸显示屏12,终端设备11在通过触摸显示屏12播放媒体数据的过程中,还可以接收用户的触摸操作,更具体地,例如跳转播放操作,生成对应的跳转播放指令,从而控制正在播放的视频或音频进行跳转播放。
高级音频编码(Advanced Audio Coding,AAC)是基于MPEG-2的音频编码技术,相比动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer III,MP3)格式的音频,具有更高的压缩比和更好的音质,因此能够节约30%储存空间与带宽,ACC格式编码的音频,需要使用ACC解码器的支持才能进行解码播放。在ACC算法的基础上,现有技术中还有改良的ACC算法,例如结合了谱带复制(Spectral Band Replication,SBR)技术的高效ACC(High Efficiency AAC,HE-AAC v1),以及进一步结合了结合了参数化立体声(Parametric Stereo,PS)技术的HE-AAC v2。
图2为本公开实施例提供的一种ACC格式的音频数据的示意图,如图2所示,ACC格式的音频数据由多个音频数据包(ACC packet)组成,每一音频数据包中包括若干音频样本(audio samples),该音频样本是由脉冲编码调制(Pulse Code Modulation,PCM)音频数据编码生成,其中,PCM音频数据是未经压缩的音频采样数据裸流,它是由模拟信号经过采样、量化、编码转换成的标准数字音频数据。在该ACC格式的音频数据的起始位置的音频数据包中,还存在一段启动数据(Priming signal),该段数据包含了后面的音频样本的编码信息,使编码器能够基于该段数据进行正确的编解码,而其本身不能够像音频样本一样,在解码后生成音频流,因此,该启动数据也称为无声数据,即ACC格式的音频数据中,包含一段位于音频起始位置的不用于生成音频流的无声数据。在对音频数据进行播放时,需要对无声数据进行解码,但是并不进行播放。
现有技术中,由于ACC格式的高压缩、高音质的特效,被广泛的应用在各种媒体文件中。在通过一些特定的ACC解码器对ACC格式的音频数据进行解码播放的过程中,当从ACC格式的音频数据从起始位置开始播放时,可以正常播放,然而,当进行跳转播放(seek)时,从跳转后的目标位置对ACC格式音频进行解码播放,会导致出现一种类似破音的噪声,这是由于seek过程中,seek的目标位置之前,不存在无声数据,解码器直接对目标位置的数据进行解码,而未对其之前的无声数据进行解码,由于缺失了该过程,导致出现了此类的的噪声。
本公开实施例提供了一种音频播放方法,以解决上述问题。参考图3,图3为本公开实施例提供的音频播放方法的流程示意图一。本实施例的方法可以应用在终端设备中,例如智能手机,该音频播放方法包括:
步骤S101,获取媒体数据,媒体数据中包括基于ACC格式编码的音频数据。
示例性地,媒体数据可以是包含音频和视频的音视频数据,或者是仅包含音频的音频数据,媒体数据可以是预存在终端设备本地存储介质中的文件中,也可以是终端设备实时从网络获取的,此次不一一举例。其中,媒体数据可以包含一段完整的音频、视频,也可以是一段完整音频、视频中的片段,媒体数据的长度由具体的视频、音频解码和播放策略确定,此处不再赘述。
进一步的,媒体文件中,包括基于ACC格式编码的音频数据,该音频数据用于在终端设备上播放音频,当媒体数据为音视频数据时,其中的音频数据和视频数据具有时间维度上的对应关系。示例性地,终端设备上安装有用于对ACC格式编码的音频数据进行解码的ACC解码器。该解码器可以将ACC格式的音频数据解码为音频流,从而使终端设备能够对该音频数据进行播放。在一种可能的实现方式中,ACC解码器为FFmpeg的ACC解码器。下面具体对FFmpeg以及其自带的ACC解码器进行简要介绍。
FFmpeg快速前进动态图像专家组(fast forward moving picture expertgroup,FFmpeg)是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案,它包含了非常先进的音频/视频编解码库,提供了高编解码质量,FFmpeg可以在多种操作系统环境中编译运行,具有较好的可移植性。基于上述优点,FFmpeg是当前常用的视频播放器架构之一。然而,FFmpeg的ACC解码器,在对ACC格式的音频数据进行跳转播放时,会在播放音频前出现一小段噪声。
步骤S102,响应跳转播放指令,确定媒体数据中的待解码音频数据,其中,待解码音频数据中包括目标数据和前置数据,目标数据为媒体数据中,跳转播放指令所指示的播放时间点对应的音频数据包,前置数据为位于目标数据之前预设长度内的音频数据包,前置数据用于作为目标数据的无声数据。
示例性地,指令是用户对终端设备进行操作后,终端设备通过解析用户操作,生成的与用户操作对应的,用于指示终端设备完成特定功能的指令,本实施例步骤中,跳转播放播放指令,是终端设备生成的对应于用户的跳转播放操作的程序指令,终端设备通过对该跳转播放指令进行响应,从而执行对应的媒体数据的跳转播放。
具体地,跳转播放指令中包括指示包括播放时间点的指示信息,用于指示跳转播放时媒体数据的播放位置,根据跳转播放指令中的指示信息,确定一段用于后续进行解码和播放的音频数据,即待解码音频数据。其中,待解码音频数据中包括目标数据和前置数据,目标数据是播放时间点对应的音频数据包,前置数据是播放时间点的之前的一段预设长度内的音频数据包。图4为本公开实施例提供的一种待解码音频数据的示意图,如图4所示,通过跳转播放指令所指示的播放时间点,确定对应的目标数据,并确定目标数据之前的前置数据,将前置数据用于作为目标数据的无声数据,之后,将目标数据和前置数据共同作为后续解码播放的待解码音频数据,从而解决在跳转播放过程中,由于略过了对无声数据进行解码的过程而导致的音频噪声问题。
步骤S103,对待解码音频数据进行解码,生成目标数据对应的第一音频数据,并播放第一音频数据。
示例性地,在确定待解码音频数据后,将待解码音频数据中的目标数据和前置数据均输入解码器进行解码,其中,目标数据解码后生成第一音频数据,前置数据解码后生成第二音频数据,此时,将第二音频数据直接丢弃,而将第一音频数据送入播放器进行播放,实现对播放时间点位置的数据帧的播放,即跳转播放的过程,此过程中,前置数据是通过额外截取一段在播放时间点之前的音频数据,作为无声数据输入解码器,使跳转播放的过程,与音频数据从起始位置正常播放的过程一致,从而避免跳转播放过程中所导致的噪声问题。
本实施例中,通过获取媒体数据,媒体数据中包括基于ACC格式编码的音频数据;响应跳转播放指令,确定媒体数据中的待解码音频数据,其中,待解码音频数据中包括目标数据和前置数据,目标数据为媒体数据中,跳转播放指令所指示的播放时间点对应的音频数据包,前置数据为位于目标数据之前预设长度内的音频数据包,前置数据用于作为目标数据的无声数据;对待解码音频数据进行解码,生成目标数据对应的第一音频数据,并播放第一音频数据,由于在对媒体数据进行跳转播放时,首先生成了由跳转播放指令对应的目标数据和前置数据构成的待解码音频数据,再对待解码音频数据进行解码和播放,从而避免了由于缺失无声数据而导致的音频噪声问题,提高了音频播放质量。
图5为本公开实施例提供的音频播放方法的流程示意图二。本实施例中的媒体数据为音视频数据,跳转播放指令中包括跳转时间戳,本实施例中进一步细化了确定音视频数据中的待解码音频数据的过程,并增加了针对音视频数据解复用的过程,如图5所示,该音频播放方法包括:
步骤S201:对音视频数据进行解复用,生成多个音频数据包。
示例性地,当媒体文件为包含音频数据和视频数据的音视频数据是,需要其进行解复用,从而获得其中的音频数据,音频数据是有多个音频数据包构成的,对音视频数据进行解复用的过程,为本领域技术人员知晓的现有技术,此次不再进行赘述。
步骤S202:根据音视频数据中基于ACC格式编码的音频数据的无声数据的长度,确定预设长度。
示例性地,在对音视频数据进行解复用后,生成的基于ACC格式编码的音频数据中,在该音频数据的起始位置,存在一段固定长度的无声数据,也即启动数据(Primingsignal),该无声数据的用于记录该音频数据的相关信息,而不包含具体的音频流。该无声数据的长度是预设的,例如1024个样本(音频数据包)长度。为了使后续生成的前置数据能够“模仿”该无声数据,因此,前置数据的长度,与无声数据的长度一致。
步骤S203:获取各音频数据包所对应的音频时间戳。
步骤S204:将距离跳转时间戳最近的音频时间戳对应的音频数据包,确定为目标数据。
示例性地,在音频数据中,各音频数据包对应有音频时间戳,音频时间戳用于描述每一音频数据包的播放时间,根据跳转操作指令对应的跳转时间戳和音频时间戳之间的位置关系,将距离跳转时间戳最近的音频时间戳对应的音频数据包,确定为目标数据,该目标数据即为跳转操作指令所指示的播放时间点位置的音频数据。在响应跳转操作指令后,对该目标数据进行播放,即可实现终端设备对媒体数据的跳转播放的过程。
步骤S205:将位于跳转时间戳之前预设长度内的音频时间戳所对应的音频数据包,确定为前置数据。
示例性地,根据跳转时间戳,以及步骤S202中确定的预设长度,向跳转时间戳之前查找,可以确定预设长度内的多个对音频时间戳,之后,将该查找到的各音频时间戳对应的音频数据包,确定为前置数据。
步骤S206:调用预设解码器,依次对前置数据和目标数据进行解码,生成前置数据对应的第二音频数据,以及目标数据对应的第一音频数据。
示例性地,在确定前置数据和目标数据后,通过运行预设的解码器程序,依次对前置数据和目标数据进行解码,可以生成对应的第二音频数据和第一音频数据。其中,示例性地,预设解码器为FFmpeg的ACC解码器。ACC格式为HE-AAC v2,或者,ACC格式为HE-AAC v1,或者,ACC格式为AAC-LC。
步骤S207:播放第一音频数据。
示例性地,在生成第一音频数据和第二音频数据后,将前置数据对应的第二音频数据丢弃,只对第一音频数据进行播放即可。具体地,包括,将第一音频数据转化为第三音频数据,并通过多媒体音频组件播放第三音频数据,其中,示例性地,多媒体音频组件为DirectSound,第一音频数据的数据格式为AV_SAMPLE_FMT_FLTP,第三音频数据的数据格式为AV_SAMPLE_FMT_S16P。
为了更好的说明本实施例中对音视频数据进行跳转播放的过程,下面以一个更具体的实施例进行说明。图6为本公开实施例提供的一种生成第一音频数据并进行播放的过程示意图,如图6所示,对音视频数据A进行解复用,生成音频数据和视频数据,音频数据中包含多个音频数据包,根据跳转播放指令,确定音频数据中距离跳转时间戳最近的音频时间戳对应的目标数据,以及对应的前置数据,将目标数据和前置数据作为待解码音频数据输入解码器,解码器对目标数据进行解码,生成第一音频数据和第二音频数据,将第二音频数据丢弃,播放第一音频数据,以及对应播放位置的视频数据,实现音视频数据的同步播放。另外,图中对视频数据进行处理的流程,本实施例中不涉及,且对视频数据进行跳转播放为本领域技术人员知晓的现有技术,因此未在图中示出,也不进行具体介绍。
在本实施例中,通过对音视频数据进行解复用,生成音频数据包,根据跳转播放指令中的跳转时间戳以及各音频数据包的播放时间戳,确定目标数据和前置数据,并通过对前置数据和目标数据的依次解码,以及丢弃前置数据对应的第二音频数据并播放目标数据对应的第一音频数据,实现避免对音视频数据进行跳转播放过程中,出现的噪声问题,提高音视频数据的播放质量。
对应于上文实施例的音频播放方法,图7为本公开实施例提供的音频播放装置的结构框图。为了便于说明,仅示出了与本公开实施例相关的部分。参照图7,音频播放装置3包括:
获取模块31,用于获取媒体数据,媒体数据中包括基于ACC格式编码的音频数据;
确定模块32,用于响应跳转播放指令,确定媒体数据中的待解码音频数据,其中,待解码音频数据中包括目标数据和前置数据,目标数据为媒体数据中,跳转播放指令所指示的播放时间点对应的音频数据包,前置数据为目标数据之前预设长度内的音频数据包,前置数据用于作为目标数据的无声数据;
生成模块33,用于对待解码音频数据进行解码,生成目标数据对应的第一音频数据和前置数据对应的第二音频数据,并播放第一音频数据。
在本公开的一个实施例中,跳转播放指令中包括跳转时间戳,确定模块32,具体用于:获取各音频数据包所对应的音频时间戳;将距离跳转时间戳最近的音频时间戳对应的音频数据包,确定为目标数据。
在本公开的一个实施例中,确定模块32,还用于:将位于跳转时间戳之前预设长度内的音频时间戳所对应的音频数据包,确定为前置数据。
在本公开的一个实施例中,生成模块33还用于:对待解码音频数据进行解码,生成前置数据对应的第二音频数据。
在本公开的一个实施例中,生成模块33在对待解码音频数据进行解码,生成目标数据对应的第一音频数据时,具体用于:调用预设解码器,依次对前置数据和目标数据进行解码,生成前置数据对应的第二音频数据,以及目标数据对应的第一音频数据。
在本公开的一个实施例中,预设解码器为FFmpeg的ACC解码器。
在本公开的一个实施例中,生成模块33,具体用于:将第一音频数据转化为第三音频数据,并通过多媒体音频组件播放第三音频数据,其中,第一音频数据的数据格式为AV_SAMPLE_FMT_FLTP,第三音频数据的数据格式为AV_SAMPLE_FMT_S16P。
在本公开的一个实施例中,ACC格式为HE-AAC v2。
在本公开的一个实施例中,预设长度是根据基于ACC格式编码的音频数据的无声数据的长度确定的。
在本公开的一个实施例中,媒体数据为音视频数据,获取模块31还用于:对音视频数据进行解复用,生成多个音频数据包。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图8为本公开实施例提供的一种电子设备的结构示意图,如图8所示,该电子设备4包括至少一个处理器41和存储器42;
存储器42存储计算机执行指令;
至少一个处理器41执行存储器42存储的计算机执行指令,使得至少一个处理器41执行如图3-图6所示实施例中的音频数据播放方法。
其中,处理器41和存储器42通过总线43连接。
相关说明可以对应参见图3-图6所对应的实施例中的步骤所对应的相关描述和效果进行理解,此处不做过多赘述。
参考图9,其示出了适于用来实现本公开实施例的电子设备900的结构示意图,该电子设备900可以为终端设备或服务器。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑(Portable Android Device,简称PAD)、便携式多媒体播放器(Portable MediaPlayer,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900可以包括处理装置(例如中央处理器、图形处理器等)901,其可以根据存储在只读存储器(Read Only Memory,简称ROM)902中的程序或者从存储装置908加载到随机访问存储器(Random Access Memory,简称RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有电子设备900操作所需的各种程序和数据。处理装置901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
通常,以下装置可以连接至I/O接口905:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置906;包括例如液晶显示器(Liquid CrystalDisplay,简称LCD)、扬声器、振动器等的输出装置907;包括例如磁带、硬盘等的存储装置908;以及通信装置909。通信装置909可以允许电子设备900与其他设备进行无线或有线通信以交换数据。虽然图9示出了具有各种装置的电子设备900,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置909从网络上被下载和安装,或者从存储装置908被安装,或者从ROM902被安装。在该计算机程序被处理装置901执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network,简称LAN)或广域网(Wide Area Network,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
第一方面,根据本公开的一个或多个实施例,提供了一种音频播放方法,包括:
获取媒体数据,所述媒体数据中包括基于ACC格式编码的音频数据;响应跳转播放指令,确定所述媒体数据中的待解码音频数据,其中,所述待解码音频数据中包括目标数据和前置数据,所述目标数据为所述媒体数据中,所述跳转播放指令所指示的播放时间点对应的音频数据包,所述前置数据为位于所述目标数据之前预设长度内的音频数据包,所述前置数据用于作为所述目标数据的无声数据;对所述待解码音频数据进行解码,生成所述目标数据对应的第一音频数据,并播放所述第一音频数据。
根据本公开的一个或多个实施例,所述跳转播放指令中包括跳转时间戳,响应跳转播放指令,确定所述媒体数据中的待解码音频数据,包括:获取各所述音频数据包所对应的音频时间戳;将距离所述跳转时间戳最近的音频时间戳对应的音频数据包,确定为目标数据。
根据本公开的一个或多个实施例,响应跳转播放指令,确定所述媒体数据中的待解码音频数据,还包括:将位于所述跳转时间戳之前预设长度内的音频时间戳所对应的音频数据包,确定为前置数据。
根据本公开的一个或多个实施例,所述方法还包括:对所述待解码音频数据进行解码,生成所述前置数据对应的第二音频数据。
根据本公开的一个或多个实施例,对所述待解码音频数据进行解码,生成所述目标数据对应的第一音频数据,包括:调用预设解码器,依次对前置数据和目标数据进行解码,生成所述前置数据对应的第二音频数据,以及所述目标数据对应的第一音频数据。
根据本公开的一个或多个实施例,所述预设解码器为FFmpeg的ACC解码器。
根据本公开的一个或多个实施例,播放所述第一音频数据,包括:将所述第一音频数据转化为第三音频数据,并通过多媒体音频组件播放第三音频数据,其中,所述第一音频数据的数据格式为AV_SAMPLE_FMT_FLTP,所述第三音频数据的数据格式为AV_SAMPLE_FMT_S16P。
根据本公开的一个或多个实施例,所述ACC格式为HE-AAC v2。
根据本公开的一个或多个实施例,所述预设长度是根据所述基于ACC格式编码的音频数据的无声数据的长度确定的。
根据本公开的一个或多个实施例,所述媒体数据为音视频数据,所述方法还包括:对所述音视频数据进行解复用,生成多个所述音频数据包。
第二方面,根据本公开的一个或多个实施例,提供了一种音频数据播放装置,包括:
获取模块,用于获取媒体数据,所述媒体数据中包括基于ACC格式编码的音频数据;
确定模块,用于响应跳转播放指令,确定所述媒体数据中的待解码音频数据,其中,所述待解码音频数据中包括目标数据和前置数据,所述目标数据为所述媒体数据中,所述跳转播放指令所指示的播放时间点对应的音频数据包,所述前置数据为所述目标数据之前预设长度内的音频数据包,所述前置数据用于作为所述目标数据的无声数据;
生成模块,用于对所述待解码音频数据进行解码,生成所述目标数据对应的第一音频数据和所述前置数据对应的第二音频数据,并播放所述第一音频数据。
根据本公开的一个或多个实施例,跳转播放指令中包括跳转时间戳,确定模块,具体用于:获取各音频数据包所对应的音频时间戳;将距离跳转时间戳最近的音频时间戳对应的音频数据包,确定为目标数据。
根据本公开的一个或多个实施例,确定模块,还用于:将位于跳转时间戳之前预设长度内的音频时间戳所对应的音频数据包,确定为前置数据。
根据本公开的一个或多个实施例,生成模块还用于:对待解码音频数据进行解码,生成前置数据对应的第二音频数据。
根据本公开的一个或多个实施例,生成模块在对待解码音频数据进行解码,生成目标数据对应的第一音频数据时,具体用于:调用预设解码器,依次对前置数据和目标数据进行解码,生成前置数据对应的第二音频数据,以及目标数据对应的第一音频数据。
根据本公开的一个或多个实施例,预设解码器为FFmpeg的ACC解码器。
根据本公开的一个或多个实施例,生成模块,具体用于:将第一音频数据转化为第三音频数据,并通过多媒体音频组件播放第三音频数据,其中,第一音频数据的数据格式为AV_SAMPLE_FMT_FLTP,第三音频数据的数据格式为AV_SAMPLE_FMT_S16P。
根据本公开的一个或多个实施例,ACC格式为HE-AAC v2。
根据本公开的一个或多个实施例,预设长度是根据基于ACC格式编码的音频数据的无声数据的长度确定的。
根据本公开的一个或多个实施例,媒体数据为音视频数据,获取模块还用于:对音视频数据进行解复用,生成多个音频数据包。
第三方面,根据本公开的一个或多个实施例,提供了一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的音频播放方法。
第四方面,根据本公开的一个或多个实施例,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的音频播放方法。
第五方面,本公开实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上第一方面以及第一方面各种可能的设计所述的音频播放方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (14)
1.一种音频播放方法,其特征在于,包括:
获取媒体数据,所述媒体数据中包括基于高级音频编码ACC格式编码的音频数据;
响应跳转播放指令,确定所述媒体数据中的待解码音频数据,其中,所述待解码音频数据中包括目标数据和前置数据,所述目标数据为所述媒体数据中,所述跳转播放指令所指示的播放时间点对应的音频数据包,所述前置数据为位于所述目标数据之前预设长度内的音频数据包,所述前置数据用于作为所述目标数据的无声数据;
对所述待解码音频数据进行解码,生成所述目标数据对应的第一音频数据,并播放所述第一音频数据。
2.根据权利要求1所述的方法,其特征在于,所述跳转播放指令中包括跳转时间戳,响应跳转播放指令,确定所述媒体数据中的待解码音频数据,包括:
获取各所述音频数据包所对应的音频时间戳;
将距离所述跳转时间戳最近的音频时间戳对应的音频数据包,确定为目标数据。
3.根据权利要求2所述的方法,其特征在于,响应跳转播放指令,确定所述媒体数据中的待解码音频数据,还包括:
将位于所述跳转时间戳之前预设长度内的音频时间戳所对应的音频数据包,确定为前置数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述待解码音频数据进行解码,生成所述前置数据对应的第二音频数据。
5.根据权利要求4所述的方法,其特征在于,对所述待解码音频数据进行解码,生成所述目标数据对应的第一音频数据,包括:
调用预设解码器,依次对前置数据和目标数据进行解码,生成所述前置数据对应的第二音频数据,以及所述目标数据对应的第一音频数据。
6.根据权利要求4所述的方法,其特征在于,所述预设解码器为快速前进动态图像专家组FFmpeg的ACC解码器。
7.根据权利要求1-6任一项所述的方法,其特征在于,播放所述第一音频数据,包括:
将所述第一音频数据转化为第三音频数据,并通过多媒体音频组件播放第三音频数据,其中,所述第一音频数据的数据格式为AV_SAMPLE_FMT_FLTP,所述第三音频数据的数据格式为AV_SAMPLE_FMT_S16P。
8.根据权利要求1-6任一项所述的方法,其特征在于,所述ACC格式为HE-AAC v2。
9.根据权利要求1-6任一项所述的方法,其特征在于,所述预设长度是根据所述基于ACC格式编码的音频数据的无声数据的长度确定的。
10.根据权利要求1-6任一项所述的方法,其特征在于,所述媒体数据为音视频数据,所述方法还包括:
对所述音视频数据进行解复用,生成多个所述音频数据包。
11.一种音频数据播放装置,其特征在于,包括:
获取模块,用于获取媒体数据,所述媒体数据中包括基于ACC格式编码的音频数据;
确定模块,用于响应跳转播放指令,确定所述媒体数据中的待解码音频数据,其中,所述待解码音频数据中包括目标数据和前置数据,所述目标数据为所述媒体数据中,所述跳转播放指令所指示的播放时间点对应的音频数据包,所述前置数据为所述目标数据之前预设长度内的音频数据包,所述前置数据用于作为所述目标数据的无声数据;
生成模块,用于对所述待解码音频数据进行解码,生成所述目标数据对应的第一音频数据和所述前置数据对应的第二音频数据,并播放所述第一音频数据。
12.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至10任一项所述的音频播放方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至10任一项所述的音频播放方法。
14.一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现权利要求1至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110661517.5A CN113395581B (zh) | 2021-06-15 | 2021-06-15 | 音频播放方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110661517.5A CN113395581B (zh) | 2021-06-15 | 2021-06-15 | 音频播放方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113395581A true CN113395581A (zh) | 2021-09-14 |
CN113395581B CN113395581B (zh) | 2023-07-25 |
Family
ID=77621270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110661517.5A Active CN113395581B (zh) | 2021-06-15 | 2021-06-15 | 音频播放方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113395581B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150179224A1 (en) * | 2013-12-24 | 2015-06-25 | JBF Interlude 2009 LTD - ISRAEL | Methods and systems for seeking to non-key frames |
CN104918120A (zh) * | 2014-03-12 | 2015-09-16 | 联想(北京)有限公司 | 一种播放进度调节方法及电子设备 |
CN105208463A (zh) * | 2015-08-31 | 2015-12-30 | 北京暴风科技股份有限公司 | 针对m3u8文件进行帧确定的方法和系统 |
US20160269803A1 (en) * | 2013-11-21 | 2016-09-15 | Le Shi Zhi Xin Electronic Technology (Tianjin) Limited | Smart tv media player and playback progress adjustment method thereof, and smart tv |
CN107566918A (zh) * | 2017-09-21 | 2018-01-09 | 中国电子科技集团公司第二十八研究所 | 一种视频分发场景下的低延时取流秒开方法 |
CN107948735A (zh) * | 2017-12-06 | 2018-04-20 | 北京金山安全软件有限公司 | 一种视频播放方法、装置及电子设备 |
CN108401188A (zh) * | 2018-03-05 | 2018-08-14 | 青岛海信传媒网络技术有限公司 | 一种媒体播放的方法及装置 |
CN110234031A (zh) * | 2018-03-05 | 2019-09-13 | 青岛海信传媒网络技术有限公司 | 一种媒体播放的方法及装置 |
-
2021
- 2021-06-15 CN CN202110661517.5A patent/CN113395581B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160269803A1 (en) * | 2013-11-21 | 2016-09-15 | Le Shi Zhi Xin Electronic Technology (Tianjin) Limited | Smart tv media player and playback progress adjustment method thereof, and smart tv |
US20150179224A1 (en) * | 2013-12-24 | 2015-06-25 | JBF Interlude 2009 LTD - ISRAEL | Methods and systems for seeking to non-key frames |
CN104918120A (zh) * | 2014-03-12 | 2015-09-16 | 联想(北京)有限公司 | 一种播放进度调节方法及电子设备 |
CN105208463A (zh) * | 2015-08-31 | 2015-12-30 | 北京暴风科技股份有限公司 | 针对m3u8文件进行帧确定的方法和系统 |
CN107566918A (zh) * | 2017-09-21 | 2018-01-09 | 中国电子科技集团公司第二十八研究所 | 一种视频分发场景下的低延时取流秒开方法 |
CN107948735A (zh) * | 2017-12-06 | 2018-04-20 | 北京金山安全软件有限公司 | 一种视频播放方法、装置及电子设备 |
CN108401188A (zh) * | 2018-03-05 | 2018-08-14 | 青岛海信传媒网络技术有限公司 | 一种媒体播放的方法及装置 |
CN110234031A (zh) * | 2018-03-05 | 2019-09-13 | 青岛海信传媒网络技术有限公司 | 一种媒体播放的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113395581B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8947596B2 (en) | Alignment of closed captions | |
CN112437345B (zh) | 视频倍速播放方法、装置、电子设备及存储介质 | |
US20170111414A1 (en) | Video playing method and device | |
CN102143382A (zh) | 用于提供终端中的广播流的暂停功能的装置和方法 | |
CN101364941A (zh) | 内容重放设备、方法、系统和计算机可读存储介质 | |
CN111755017B (zh) | 云会议的音频录制方法、装置、服务器及存储介质 | |
CN110418183B (zh) | 音视频同步方法、装置、电子设备及可读介质 | |
CN111182315A (zh) | 一种多媒体文件拼接方法、装置、设备及介质 | |
WO2023284437A1 (zh) | 媒体文件处理方法、装置、设备、可读存储介质及产品 | |
CN113676769B (zh) | 视频解码方法、设备及存储介质 | |
CN110164413B (zh) | 语音合成方法、装置、计算机设备和存储介质 | |
CN111356023B (zh) | 播放方式确定方法及装置 | |
CN114299972A (zh) | 音频处理方法、装置、设备及存储介质 | |
WO2022228179A1 (zh) | 视频处理方法、装置、电子设备和存储介质 | |
CN109076250B (zh) | 交互式音频元数据处置 | |
CN111385576A (zh) | 视频编码方法、装置、移动终端及存储介质 | |
CN108600813A (zh) | 一种媒体文件播放方法、装置以及媒体播放系统 | |
CN113395581B (zh) | 音频播放方法、装置、电子设备及存储介质 | |
CN110753259A (zh) | 视频数据的处理方法、装置、电子设备及计算机可读介质 | |
US20240040191A1 (en) | Livestreaming audio processing method and device | |
WO2021093500A1 (zh) | 视频数据的处理方法、装置、电子设备及计算机可读介质 | |
US20050015570A1 (en) | Replay apparatus, replay method, recording medium, and computer program | |
CN109375892B (zh) | 用于播放音频的方法和装置 | |
CN111866542B (zh) | 音频信号处理方法、多媒体信息处理方法、装置及电子设备 | |
CN113542764A (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 |