新闻中心

EEPW首页 > 测试测量 > 设计应用 > Android系统WMA文件播放功能的设计与实现

Android系统WMA文件播放功能的设计与实现

作者:时间:2011-12-18来源:网络收藏

音频解码主要是在Decoder的read函数中完成的:首先,先会判断是否是音乐定点,如果不是,Decoder会调用WMAExtrac-tor的read函数读取一个未解码的数据包;然后,对该数据进行解码,将解码后的音频数据存放在MediaBuffer的Data()中,再设置MediaBu-ffer的mRangeOffset和mRangeLength,在读取数据包时会从包中获取该数据包中的时间戳,把该时间戳存放在MediaBuffer的Meta_ data()中的kKeyTime里;最后,WMAdecoder把该MediaBuffer传回给AudioPlayer。如果是音乐定点,首先,WMADecoder会从AudioPtayer传过来的ReadOption中获取时间(option->getSeekTo(seekTimeUs,mode)),在调用WMASource的read函数来读取未解码音频数据时会把该时间(seekTimeUs)传给WMASource。WMASource的read函数获取到该时间后,通过计算得出该时间要播放的音频数据包的起始位置,然后读取该数据包并传给WMADecoder对其进行解码,最后将该解码后的音频数据传给AudioPlayer。

3 实验结果
基于平台的多媒体进行设计的WMA音频播放,在多媒体框架的本地实现核心Stagefright框架里,添加WMA音频格式。实现对WMA音频格式的支持,使Android手机可以播放WMA音频格式的文件。经过实际测试,播放效果达到了预期的要求,声音清晰、音质好。图4为增加WMA音频播放模块后Android源码编译结果的截图。图5为播放WMA格式文件时对播放界面的截图。图6为拉动滚动条后正常运行的截图。

本文引用地址:http://www.eepw.com.cn/article/194616.htm

a.JPG

b.JPG



4 结束语
基于Android多媒体模块中的Stagefright框架,在智能手机上实现了对WMA音频格式的支持,使Android智能手机可以播放WMA音频格式的媒体文件或流媒体。该设计在现有基础上实现了对Android操作中多媒体功能的增强。目前Android平台手机仍然不支持RMVB、WAV等视频格式,所以Android多媒体系统的功能还需继续增强和扩展。

c++相关文章:c++教程



上一页 1 2 3 4 下一页

关键词: Android WMA 系统 播放

评论


相关推荐

技术专区

关闭