CN102857833A - 一种适配android stagefright 多媒体框架的音频解码系统及方法 - Google Patents
一种适配android stagefright 多媒体框架的音频解码系统及方法 Download PDFInfo
- Publication number
- CN102857833A CN102857833A CN2012103894191A CN201210389419A CN102857833A CN 102857833 A CN102857833 A CN 102857833A CN 2012103894191 A CN2012103894191 A CN 2012103894191A CN 201210389419 A CN201210389419 A CN 201210389419A CN 102857833 A CN102857833 A CN 102857833A
- Authority
- CN
- China
- Prior art keywords
- audio
- data
- decoding
- buffering
- decoder
- 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
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种适配android stagefright多媒体框架的音频解码方法和系统,方法包括以下步骤:保存Awesome Player输入的解包装组件,完成音频解码器的注册;获取音频的媒体元数据并保存至本地;获取上下文环境数据项,申请内存资源作为解码输出缓冲;以及根据上下文环境,打开并初始化所述音频解码器中与音频流格式相匹配的解码器,申请内存资源作为解码输入缓冲;通过解包装组件读取音频编码数据至输入缓冲,进行音频解码;更新本地的媒体元数据中的采样率数据为音频编码数据的采样率;根据本地的媒体元数据计算得到解码输出数据的时间戳并保持至输出缓冲,从输出缓冲返回携带时间戳的原始音频数据。本发明能够扩展安卓系统对音频格式的支持。
Description
技术领域
本发明涉及多媒体信息处理技术领域,具体是涉及一种适配android stagefright 多媒体框架的音频解码系统及方法。
背景技术
移动手机操作系统的诞生引发了手机等移动终端的智能化。其中较有代表性的是Apple的iOS和Google的android。android在近几年内得到了迅速发展,android的多媒体框架最初采用的是openCore架构,由于其大而复杂,到android 2.3,多媒体框架完全采用了stagefright。android软件栈从底至顶分为四层:linux内核、本地库及android运行库、java框架、核心应用。stagefright多媒体框架位于第二层,是一个本地库。stagefright将多媒体音视频的包装格式解析、编解码和显示进行封装,提供对整个多媒体信息处理的支持。
如图1为stagefright与linux驱动、多媒体服务和解码插件间的关系。
android底层名为“mediaserver”的linux进程通过访问MediaPlayerService调用stagefright多媒体框架完成音视频的包装格式解析、解码和播放等。stagefright主要包括了AwesomePlayer、MediaExtractor、OMXCodec、AwesomeRenderer和AudioPlayer等。其中AwesomePlayer作为所有其他对象的组合,可依次通过DataSource获取多媒体数据源、再通过MediaExtractor解包装组件完成文件格式(如.mp3)解析并提取音视频流、进而通过OMXCodec调用解码插件完成音视频流的解码、最后通过AwesomeRenderer和AudioPlayer将最终数据送往音视频I/O设备,完成播放显示。
android 2.3作为目前市场渗透率最深的android版本,以其子版本android 2.3.4的音频软解码器为例,仅支持MP3、AMR、AAC、G711和Vorbis音频格式,不支持AC3、PCM、RealVideo Cooker、MP2、WMA和FLAC等音频编码。这种局限性不仅使得有些音频文件无法在android系统上播放,也使得包含某些音频流的视频文件无法在android系统上播放。
android软件栈具备很好的设计模式,可采用实现MediaSource抽象类通用接口的形式,设计一个适配stagefright框架的新插件,通过新插件达到扩充stagefright多媒体框架音频解码功能的目的。
发明内容
本发明所要解决的技术问题是,提供一种适配android stagefright 多媒体框架的音频解码方法及系统,以扩大该多媒体框架对音频编码格式的支持。
本发明的技术问题通过以下技术手段予以解决:
一种适配android stagefright 多媒体框架的音频解码方法,包括以下步骤:
音频解码系统构造步骤:保存AwesomePlayer输入的解包装组件,完成音频解码器的注册;通过所述解包装组件获取音频的媒体元数据并保存至本地;
开始步骤:从本地的媒体元数据中获取上下文环境数据项,申请内存资源作为解码输出缓冲;以及根据所述上下文环境,打开并初始化所述音频解码器中与所述音频流格式相匹配的解码器,申请内存资源作为解码输入缓冲;
读取步骤:通过所述解包装组件读取音频编码数据至所述输入缓冲,进行音频解码;更新所述本地的媒体元数据中的采样率数据为所述音频编码数据的采样率;根据本地的媒体元数据计算得到解码输出数据的时间戳并保持至所述输出缓冲,从所述输出缓冲返回携带时间戳的原始音频数据;
停止步骤:释放所述开始接口模块申请作为解码输出缓冲和解码输入缓冲的内存资源。
优选地:
述音频解码系统构造步骤包括:
1-1)保存AwesomePlayer输入的解包装组件,通过ffmpeg工具箱完成其支持格式的音频解码器的注册;1-2)通过所述解包装组件获取音频的媒体元数据;1-3)在步骤1-2)得到的媒体元数据中搜索音频声道数、采样率、和持续时间信息;1-4)将步骤1-3)得到的音频声道数、采样率、和持续时间信息复制保存至本地的媒体元数据中。
所述开始步骤包括:
2-1)获取所述本地的媒体元数据的地址;2-2)从所述本地的媒体元数据中获取上下文环境数据项;2-3)从所述本地的媒体元数据中获取音频流在多媒体源中的编号,通过该编号判断从多媒体源中获取的流是否为音频流,若是,则进行解码,否则跳过;2-4)申请一个容量大于音频解码最大输出字节数的内存资源作为输出缓冲;2-5)通过ffmpeg工具箱找到并打开与所述上下文环境数据项中的解码格式ID相匹配的解码器;2-6)申请一个容量大于AUDIO_REFILL_THRESH*2的内存资源作为输入缓冲,并将输入缓冲中带解码数据的字节数和地址偏移量均初始化为0,其中,AUDIO_REFILL_THRESH为开始音频解码时所需数据量阈值。
所述读取步骤包括:
3-1)获取输出缓冲作为后续所有步骤的解码输出缓冲;3-2)设置音频解码所需最少字节数为AUDIO_REFILL_THRESH,以避面因数据不足而导致解码失败;3-3)判断所述输入缓冲中待解码数据字节数是否小于阈值AUDIO_REFILL_THRESH,若是,则滑动输入缓冲中待解码数据,使得其地址偏移量恢复为0;若不是,跳过该步骤;3-4)如果所述输入缓冲中待解码数据小于AUDIO_REFILL_THRESH,则通过解包装组件从多媒体源中读取音频流数据,并将这些新数据添加到输入缓冲中待解码数据的尾部,接着累加待解码数据字节数、保存当前音频包的时间戳等;如果待解码数据的字节数仍小于AUDIO_REFILL_THRESH,则继续步骤3-4),否则进入步骤3-5);3-5)通过ffmpeg工具箱对输入缓冲中待解码数据进行解码,解码输出数据存储在步骤3-1)获取的输出缓冲中,记解码输出字节数为output_frame_size,ffmpeg工具箱从输入缓冲中消耗的字节数为byte_used;3-6)将输入缓冲待解码数据的地址偏移量加byte_used而字节数减byte_used;3-7)若output_frame_size小于或等于0,则回到步骤3-3),否则进入步骤3-8);3-8)将输出缓冲的地址偏移量和字节总数分别设置为0和output_frame_size;3-9)根据步骤3-4)得到的音频包时间戳、媒体元数据的采样率和声道数,以及解码累计输出总采样点数等计算得到解码输出数据的时间戳;3-10)将携带时间戳信息的解码输出缓冲返回。
一种适配android stagefright 多媒体框架的音频解码系统,包括:
音频解码系统构造模块,用于:保存AwesomePlayer输入的解包装组件,完成音频解码器的注册;通过所述解包装组件获取音频的媒体元数据并保存至本地;
开始接口模块,用于:从本地的媒体元数据中获取上下文环境数据项,申请内存资源作为解码输出缓冲;以及根据所述上下文环境,打开并初始化所述音频解码器中与所述音频流格式相匹配的解码器,申请内存资源作为解码输入缓冲;
读取接口模块,用于:通过所述解包装组件读取音频编码数据至所述输入缓冲,进行音频解码;更新所述本地的媒体元数据中的采样率数据为所述音频编码数据的采样率;根据本地的媒体元数据计算得到解码输出数据的时间戳并保持至所述输出缓冲,从所述输出缓冲返回携带时间戳的原始音频数据;
停止接口模块,用于释放所述开始接口模块申请作为解码输出缓冲和解码输入缓冲的内存资源。
与现有技术相比,本发明音频解码系统和方法不但能够支持Andriod原来支持的MP3、AMR等音频格式的解码外,通过新的解码器扩展支持更多格式的音频的解码,例如:AC3、PCM、RealVideo Cooker、MP2、WMA和FLAC等格式的音频,本发明的音频解码系统具有音频解码复杂度第,具有优良的移植性。
优选方案中采用的输入缓冲控制方式不但能够避免缓冲溢出,同时也避免了大量数据的频繁拷贝。
附图说明
图1为android stagefright框架与android其他模块的关系图;
图2为本发明具体实施例解码过程中输入缓冲一个典型的状态变化过程;
图3为本发明具体实施例解码过程中输入缓冲正常工作时的状态转移图;
图4为本发明具体实施例音频解码方法构造过程的流程图;
图5为本发明具体实施例音频解码方法中开始步骤的流程图;
图6为本发明具体实施例音频解码方法缓冲的组织形式原理图;
图7为本发明具体实施例音频解码方法中读取步骤的流程图。
具体实施方式
下面对照附图并结合优选的实施方式对本发明作进一步说明。
本实施例的一种适配android stagefright 多媒体框架的音频解码方法,主要包括解码系统构造步骤、开始步骤、读取步骤、停止步骤,分别有本实施例的一种适配android stagefright 多媒体框架的音频解码系统的解码系统构造模块、开始接口模块、读取接口模块和停止接口模块完成。其中,音频解码系统构造步骤包括:保存AwesomePlayer输入的解包装组件,完成音频解码器的注册;通过所述解包装组件获取音频的媒体元数据并保存至本地;开始步骤包括:从本地的媒体元数据中获取上下文环境数据项,申请内存资源作为解码输出缓冲;以及根据所述上下文环境,打开并初始化所述音频解码器中与所述音频流格式相匹配的解码器,申请内存资源作为解码输入缓冲;读取步骤包括:通过所述解包装组件读取音频编码数据至所述输入缓冲,进行音频解码;更新所述本地的媒体元数据中的采样率数据为所述音频编码数据的采样率;根据本地的媒体元数据计算得到解码输出数据的时间戳并保持至所述输出缓冲,从所述输出缓冲返回携带时间戳的原始音频数据;停止步骤包括:释放所述开始接口模块申请作为解码输出缓冲和解码输入缓冲的内存资源。
在更加具体的实施方式中,上述各个步骤的具体过程如下文所述:
如图4所示,音频解码系统构造步骤具体包括:
步骤一:保存AwesomePlayer输入的解包装组件并依次通过ffmpeg工具箱的av_register_all、avcodec_init和avcodec_register_all完成其支持格式的解码器注册;
步骤二:通过解包装组件获取音频媒体元数据的地址。本实施例设计的android媒体元数据对音频解码系统数据项的组织形式如表2所示:
表2 音频解码系统媒体元数据
媒体元数据中的key值必须唯一,获取数据项时需指定key值和存储value值的地址,如存储地址为meta的媒体元数据中声道数的获取方法为:
meta->findInt32(kKeyChannelCount, &mNumChannels)
填充数据项的方法与获取数据项方法一一对应,如setInt32对应findInt32。填充数据项时需指定key值和value值。
步骤三:通过相应获取方法,从步骤二得到的媒体元数据中获取音频声道数、采样率和持续时间信息;
步骤四:通过系统内媒体元数据的setInt32和setInt64填充方法,将步骤三得到的音频声道数、采样率和持续时间信息复制至本地;
步骤五:通过本地媒体元数据的setCString填充其“MIME类型”和“解码系统名字”数据项。MIME指多媒体文件格式,MIME类型有很多种,如普通文本、JPEG图形和AVI文件等等,此处我们将之设为音频RAW数据,即"audio/raw"。音频解码插件名称无特殊要求,我们将新插件取名为“MultiAudioDecoder”,取多格式音频解码之意。
如图5所示,开始步骤包括:
步骤一:获取本地媒体元数据的地址;
步骤二:通过findPointer从步骤一的媒体元数据中获取“上下文环境”数据项。如表2所示,上下文环境是解包装组件媒体元数据项之一,我们将其指向ffmpeg工具箱的AVFormatContext数据结构,其存储了多媒体源URI、音频编码ID和音频流信息等;
步骤三:多媒体源中可能存在非音频流,如视频流和字幕流等,因此需将音频流标识出来,标识方法很简单,只需获取音频流在多媒体流中的编号,它可从步骤一得到的媒体元数据中获取;
步骤四:申请一个AVCODEC_MAX_AUDIO_FRAME_SIZE+64长度的输出缓冲,为了保证缓冲不溢出,AVCODEC_MAX_AUDIO_FRAME_SIZE为音频解码输出帧最大字节数,等于192000。系统内的数据缓冲均以android stagefright框架下MediaBuffer的形式组织,如图6所示。MediaBuffer一旦创建,其可用空间的起始地址和大小便固定了,其中有效数据的位置信息包括:地址偏移量和尺寸。有效数据位置信息根据实际应用不断变化,利用“set_range(地址偏移量,尺寸)”对其进行更新。
步骤五:依次通过ffmpeg工具箱的avcodec_find_decoder和avcodec_open找到并打开与被解码格式ID匹配的音频解码器;
步骤六:申请内存资源作为解码输入缓冲,缓冲容量为AUDIO_REFILL_THRESH*2字节,AUDIO_REFILL_THRESH为8192,并将其待解码数据量和地址偏移量均设置为0。AUDIO_REFILL_THRESH为开始音频解码所需数据量的阈值。
如图7所示,读取步骤包括:
步骤一:获取输出缓冲,作为后续所有步骤的解码输出缓冲;
步骤二:设置音频解码所需最少字节数为AUDIO_REFILL_THRESH,以避免部分格式因数据不足而导致解码失败,AUDIO_REFILL_THRESH为8192;
步骤三:判断解码输入缓冲中待解码数据是否小于AUDIO_REFILL_THRESH字节,若是,则滑动输入缓冲中待解码数据,使得其地址偏移量恢复为0;若不是,跳过该步骤;
步骤四:如果输入缓冲中待解码数据小于AUDIO_REFILL_THRESH,则通过解包装组件从多媒体源中读取音频流数据,并将这些数据添加到缓冲待解码数据尾部,并累加待解码数据的字节数、保存当前音频包的时间戳等;如果待解码数据的字节数仍小于AUDIO_REFILL_THRESH,则继续步骤四,否则进入步骤五;
步骤五:通过ffmpeg工具箱的avcodec_decode_audio2对待解码数据进行解码,解码输出存储在步骤一的缓冲中,记解码输出字节数为output_frame_size,记avcodec_decode_audio2从输入缓冲中消耗的字节数为byte_used;
步骤六:通过输入缓冲的set_range,将其待解码数据的地址偏移量加byte_used而字节数减byte_used;
步骤七:若output_frame_size小于或等于0,则回到步骤三,否则进入步骤八;步骤三至步骤七的滑动式输入缓冲状态变化如图3所示;
步骤八:通过输出缓冲的set_range,将其有效数据的地址偏移量和尺寸分别设置为0和output_frame_size;
步骤九:根据步骤四得到的音频包时间戳、本地媒体元数据中的采样率和声道数、解码输出的总采样点数等,计算得到解码输出数据的时间戳,该时间戳烙在输出缓冲上,与解码输出数据一起返回,以供音视频同步;
步骤十:将携带时间戳信息的解码输出缓冲buffer返回。
读取步骤解码过程中解码过程中一个比较典型的输入缓冲的变化过程如图2所示。图2中箭头指向待解码数据起始地址,黑色部分为待解码数据,白色部分为空闲空间,最多可容纳AUDIO_REFILL_THRESH*2个待解码字节。刚开始时,缓冲为状态1;随着解包装组件读取音频流并填充该输入缓冲,缓冲进入状态2,状态2待解码数据仍小于AUDIO_REFILL_THRESH,即小于缓冲容量的一半,解包装组件将继续读取数据,直到该输入缓冲的有效数据大于AUDIO_REFILL_THRESH,进入状态3;进入状态3后便可以开始音频解码了;解码过程会消耗缓冲中待解码数据,导致数据慢慢减少,进入状态4,在状态4下,剩余的待解码数据量仍大于AUDIO_REFILL_THRESH,则继续停留在状态4进行解码,直到数据量小于AUDIO_REFILL_THRESH,进入状态5;在状态5下,需滑动残余数据至首地址,避免缓冲溢出,最后回到状态2。
输入缓冲的状态转移图如图3所示,其中输入缓冲各个正常状态如表1所示。
表1输入缓冲正常状态
状态 | 偏移地址offset | 数据长度size |
1 | offset = 0 | size = 0 |
2 | offset = 0 | 0 < size < AUDIO_REFILL_THRESH |
3 | offset = 0 | size >= AUDIO_REFILL_THRESH |
4 | offset > 0 | 0 <= size < AUDIO_REFILL_THRESH |
5 | offset > 0 | size >= AUDIO_REFILL_THRESH |
表中仅列出来缓冲不溢出的正常状态,即offset+size <= 2* AUDIO_REFILL_THRESH。为了避免输入缓冲溢出,除了将其最大容量申请为解码阈值的两倍外,关键在于其定期滑动,而且滑动仅发生在有效数据小于AUDIO_REFILL_THRESH的情况,避免了大量数据的频繁滑动。读取工作模式下的输入缓冲,只要每次读入的音频包小于AUDIO_REFILL_THRESH,就一定不会溢出。
停止步骤包括:
步骤一:释放start接口申请的解码输出缓冲组;
步骤二:释放start接口申请的解码输入缓冲;
步骤三:通过ffmpeg工具箱的avcodec_close关闭解码器。
本实施例还包括getFormat步骤,其包括“
步骤一:返回MetaData类媒体元数据mFormat。
本发明的系统,具有良好的移植性能,仅需要在android stagefright 多媒体框架例的OMXCodec进行简单配置即可进行工作,包括:1、在插件生产工厂中增添新插件,只需在OMXCodec中添加“FACTORY_CREATE(MultiAudioDecoder)”即可;2、将新插件的基本信息增添到备选插件集中,只需在kFactoryInfo中增添“FACTORY_REF(MultiAudioDecoder)”即可。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。
Claims (5)
1.一种适配android stagefright 多媒体框架的音频解码方法,其特征在于,包括以下步骤:
音频解码系统构造步骤:保存AwesomePlayer输入的解包装组件,完成音频解码器的注册;通过所述解包装组件获取音频的媒体元数据并保存至本地;
开始步骤:从本地的媒体元数据中获取上下文环境数据项,申请内存资源作为解码输出缓冲;以及根据所述上下文环境,打开并初始化所述音频解码器中与所述音频流格式相匹配的解码器,申请内存资源作为解码输入缓冲;
读取步骤:通过所述解包装组件读取音频编码数据至所述输入缓冲,进行音频解码;更新所述本地的媒体元数据中的采样率数据为所述音频编码数据的采样率;根据本地的媒体元数据计算得到解码输出数据的时间戳并保持至所述输出缓冲,从所述输出缓冲返回携带时间戳的原始音频数据;
停止步骤:释放所述开始接口模块申请的作为解码输出缓冲和解码输入缓冲的内存资源。
2.根据权利要求1所述的解码方法,其特征在于:所述音频解码系统构造步骤包括:
1-1)保存AwesomePlayer输入的解包装组件,通过ffmpeg工具箱完成其支持格式的音频解码器的注册;
1-2)通过所述解包装组件获取音频的媒体元数据;
1-3)在步骤1-2)得到的媒体元数据中获取音频声道数、采样率、和持续时间信息;
1-4)将步骤1-3)得到的音频声道数、采样率、和持续时间信息复制保存至本地的媒体元数据中。
3.根据权利要求1所述的解码方法,其特征在于,所述开始步骤包括:
2-1)获取所述本地的媒体元数据的地址;
2-2)从所述本地的媒体元数据中获取上下文环境数据项;
2-3)从所述本地的媒体元数据中获取音频流在多媒体源中的编号,通过该编号判断从多媒体源中获取的流是否为音频流,若是,则进行解码,否则跳过;
2-4)申请一个容量大于音频解码最大输出字节数的内存资源作为输出缓冲;
2-5)通过ffmpeg工具箱找到并打开与所述上下文环境数据项中的解码格式ID相匹配的解码器;
2-6)申请一个容量大于AUDIO_REFILL_THRESH*2的内存资源作为输入缓冲,并将输入缓冲中带解码数据的字节数和地址偏移量均初始化为0,其中,AUDIO_REFILL_THRESH为开始音频解码时所需数据量阈值。
4.根据权利要求1所述的解码方法,其特征在于,所述读取步骤包括:
3-1)获取输出缓冲作为后续所有步骤的解码输出缓冲;
3-2)设置音频解码所需最少字节数为AUDIO_REFILL_THRESH,以避免因数据不足而导致解码失败;
3-3)判断所述输入缓冲中待解码数据字节数是否小于阈值AUDIO_REFILL_THRESH,若是,则滑动输入缓冲中待解码数据,使得其地址偏移量恢复为0;若不是,跳过该步骤;
3-4)如果所述输入缓冲中待解码数据小于AUDIO_REFILL_THRESH,则通过解包装组件从多媒体源中读取音频流数据,并将这些新数据添加到输入缓冲中待解码数据的尾部,接着累加待解码数据字节数、保存当前音频包的时间戳等;如果待解码数据的字节数仍小于AUDIO_REFILL_THRESH,则继续步骤3-4),否则进入步骤3-5);
3-5)通过ffmpeg工具箱对输入缓冲中待解码数据进行解码,解码输出数据存储在步骤3-1)获取的输出缓冲中,记解码输出字节数为output_frame_size,ffmpeg工具箱从输入缓冲中消耗的字节数为byte_used;
3-6)将输入缓冲待解码数据的地址偏移量加byte_used而字节数减byte_used;
3-7)若output_frame_size小于或等于0,则回到步骤3-3),否则进入步骤3-8);
3-8)将输出缓冲的地址偏移量和字节总数分别设置为0和output_frame_size;
3-9)根据步骤3-4)得到的音频包时间戳、媒体元数据的采样率和声道数,以及解码累计输出总采样点数等计算得到解码输出数据的时间戳;
3-10)将携带时间戳信息的解码输出缓冲返回。
5.一种适配android stagefright 多媒体框架的音频解码系统,其特征在于,包括:
音频解码系统构造模块,用于:保存AwesomePlayer输入的解包装组件,完成音频解码器的注册;通过所述解包装组件获取音频的媒体元数据并保存至本地;
开始接口模块,用于:从本地的媒体元数据中获取上下文环境数据项,申请内存资源作为解码输出缓冲;以及根据所述上下文环境,打开并初始化所述音频解码器中与所述音频流格式相匹配的解码器,申请内存资源作为解码输入缓冲;
读取接口模块,用于:通过所述解包装组件读取音频编码数据至所述输入缓冲,进行音频解码;更新所述本地的媒体元数据中的采样率数据为所述音频编码数据的采样率;根据本地的媒体元数据计算得到解码输出数据的时间戳并保持至所述输出缓冲,从所述输出缓冲返回携带时间戳的原始音频数据;
停止接口模块,用于释放所述开始接口模块申请作为解码输出缓冲和解码输入缓冲的内存资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210389419.1A CN102857833B (zh) | 2012-10-15 | 2012-10-15 | 一种适配android stagefright 多媒体框架的音频解码系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210389419.1A CN102857833B (zh) | 2012-10-15 | 2012-10-15 | 一种适配android stagefright 多媒体框架的音频解码系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102857833A true CN102857833A (zh) | 2013-01-02 |
CN102857833B CN102857833B (zh) | 2015-02-18 |
Family
ID=47403959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210389419.1A Active CN102857833B (zh) | 2012-10-15 | 2012-10-15 | 一种适配android stagefright 多媒体框架的音频解码系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102857833B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731672A (zh) * | 2013-12-16 | 2014-04-16 | 乐视致新电子科技(天津)有限公司 | 一种音视频解码方法及智能电视 |
CN104050021A (zh) * | 2013-03-15 | 2014-09-17 | 联想(北京)有限公司 | 多媒体文件处理方法和电子设备 |
CN105245795A (zh) * | 2014-06-24 | 2016-01-13 | 艾杜菲尔传媒有限公司 | 多媒体数据复合法及安卓系统中播放动图的视频播放器 |
CN106331649A (zh) * | 2016-09-26 | 2017-01-11 | 广东威创视讯科技股份有限公司 | 视频数据拷贝、拼接方法和系统 |
CN108053831A (zh) * | 2017-12-05 | 2018-05-18 | 广州酷狗计算机科技有限公司 | 音乐生成、播放、识别方法、装置及存储介质 |
CN112507148A (zh) * | 2020-12-16 | 2021-03-16 | 北京华宇信息技术有限公司 | 媒体文件自动合成方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120053710A1 (en) * | 2010-09-01 | 2012-03-01 | Apple Inc. | Audio crossfading |
CN102546926A (zh) * | 2010-11-08 | 2012-07-04 | 三星电子株式会社 | 在便携式终端中更新媒体数据库的方法 |
CN102625071A (zh) * | 2011-02-01 | 2012-08-01 | 上海晨兴希姆通电子科技有限公司 | 手机电视音频信息处理方法及其处理装置 |
CN102693728A (zh) * | 2012-06-07 | 2012-09-26 | 深圳市路友网络科技有限公司 | 一种手机跨平台语言传输解码方法 |
-
2012
- 2012-10-15 CN CN201210389419.1A patent/CN102857833B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120053710A1 (en) * | 2010-09-01 | 2012-03-01 | Apple Inc. | Audio crossfading |
CN102546926A (zh) * | 2010-11-08 | 2012-07-04 | 三星电子株式会社 | 在便携式终端中更新媒体数据库的方法 |
CN102625071A (zh) * | 2011-02-01 | 2012-08-01 | 上海晨兴希姆通电子科技有限公司 | 手机电视音频信息处理方法及其处理装置 |
CN102693728A (zh) * | 2012-06-07 | 2012-09-26 | 深圳市路友网络科技有限公司 | 一种手机跨平台语言传输解码方法 |
Non-Patent Citations (1)
Title |
---|
白璐等: "Android系统WMA文件播放功能的设计与实现", 《电子科技》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050021A (zh) * | 2013-03-15 | 2014-09-17 | 联想(北京)有限公司 | 多媒体文件处理方法和电子设备 |
CN104050021B (zh) * | 2013-03-15 | 2018-12-14 | 联想(北京)有限公司 | 多媒体文件处理方法和电子设备 |
CN103731672A (zh) * | 2013-12-16 | 2014-04-16 | 乐视致新电子科技(天津)有限公司 | 一种音视频解码方法及智能电视 |
CN105245795A (zh) * | 2014-06-24 | 2016-01-13 | 艾杜菲尔传媒有限公司 | 多媒体数据复合法及安卓系统中播放动图的视频播放器 |
CN106331649A (zh) * | 2016-09-26 | 2017-01-11 | 广东威创视讯科技股份有限公司 | 视频数据拷贝、拼接方法和系统 |
CN108053831A (zh) * | 2017-12-05 | 2018-05-18 | 广州酷狗计算机科技有限公司 | 音乐生成、播放、识别方法、装置及存储介质 |
CN112507148A (zh) * | 2020-12-16 | 2021-03-16 | 北京华宇信息技术有限公司 | 媒体文件自动合成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102857833B (zh) | 2015-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102857833B (zh) | 一种适配android stagefright 多媒体框架的音频解码系统及方法 | |
CA2578190C (en) | Device and method for generating a coded multi-channel signal and device and method for decoding a coded multi-channel signal | |
CN102110458B (zh) | 一种播放终端及其音视频文件的播放方法和装置 | |
CN102385864B (zh) | 一种音频数据解码方法、装置及音频播放器 | |
EP2193418A2 (en) | Power efficient batch-frame audio decoding apparatus, system and method | |
CN102934162B (zh) | 搜索随后被重放的包括基本层和至少一个增强层分层分级比特流的方法和设备 | |
CN102014262A (zh) | 一种硬盘录像机、多媒体格式转换的系统及方法 | |
US10535355B2 (en) | Frame coding for spatial audio data | |
CN105551512A (zh) | 音频格式转换方法和装置 | |
JP2010501090A (ja) | 音声復号化 | |
US10025787B2 (en) | Systems and methods for selecting digital data for archival | |
CN102904857A (zh) | 客户端视频播放系统及其方法 | |
CN1463441A (zh) | Mp3的特技播放 | |
TW200719723A (en) | Apparatus and method for updating television firmware therefor | |
CN101802803B (zh) | 用于产生和再现基于媒体对象的元数据的方法和装置 | |
CN112689194B (zh) | 功能机视频配乐方法、装置、终端设备及存储介质 | |
CN102447673A (zh) | 一种用于解封装携有封装格式的多媒体文件的方法与设备 | |
CN101741391B (zh) | 在定点dsp进行mp3音频解码时优化内存空间的方法 | |
CN101753579B (zh) | 一种用于移动通讯设备的多媒体播放方法 | |
CN102122300A (zh) | 一种视频格式转换的方法 | |
CN101911184B (zh) | 记录再现装置 | |
CN103531224B (zh) | 应用于嵌入式系统平台的简易语音播放方法 | |
TW200635384A (en) | Reproduction apparatus, data processing system, reproduction method, program, and storage medium | |
CN102955809A (zh) | 媒体文件编辑和播放的方法和系统 | |
CN105139859A (zh) | 音频数据的解码方法和装置以及应用其的片上系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |