您现在的位置: 通信界 >> 视频通信 >> 技术正文  
 
基于Android系统的影音播放器开发[图]
[ 通信界 / 佚名 / www.cntxj.net / 2012/7/5 21:25:21 ]
 

摘要:基于开源移动终端操作系统Android开发了一个影音播放器。影音播放器由文件浏览器、视频播放、音频播放、播放列表管理及歌词同步显示等模块组成,界面采用XML脚本配置生成。软件基于文件浏览器的方式实现了媒体库的管理,大大方便了用户的操作。软件每次启动时都会对储存设备进行扫描,将扫描到的歌词文件信息保存到歌词数据库中。对正在播放的歌曲,根据歌曲名字检索歌词文件,并同步显示歌词。在Android模拟器和OMAP 3530开发板上对播放器进行了功能测试与验证。

0 引言

Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源移动终端操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件。

随着科技的不断发展,手机不再只是人们日常生活的移动通信工具,而是一个多媒体平台,可提供强大的多媒体功能,越来越多的人喜欢用手机听音乐、看电影。

Android系统内置的音乐播放器基于媒体库对歌曲进行管理,并且不支持歌词的同步显示。对于部分已经习惯的基于文件浏览器形式播放器的用户,操作起来会有所不便。对于Android手机操作系统,可以充分利用它丰富的可编程扩展性,开发出新的播放器应用软件。

1 Android平台

Android软件开发主要涉及到的相关技术包括Android SDK(开发插件、调试工具包等)、Android系统架构和Android应用程序组件。

1.1 Android SDK

Android SDK(Software Development Kit)提供了Android平台上使用Java语言进行Android应用开发的API接口和工具。其中,最重要的工具是Android模拟器和Eclipsel2 的Android开发工具插件,同时SDK也包含了各种在模拟器上用于调试、打包和安装的工具。

Eclipse IDE的Android开发工具插件(AndroidDevelopment Tools Plugin for the Eclipse IDE,ADT)大大扩展了Eclipse集成环境功能,使得生成和调试Android应用程序既容易又迅速。使用Eclipse,ADT插件可以加快开发Android应用程序的速度。

Android模拟器是在计算机上运行的一个虚拟移动设备,可以使用模拟器来模拟一个实际的Android运行环境,来设计、调试和测试应用程序。

Dalvik调试监视器服务(Dalvik Debug MONitorService,DDMS)集成了Dalvik(为Android平台定制的虚拟机(VM)),能够在模拟器或者设备上管理进程并协助调试。DDMS提供进程管理,产生跟踪数据,观察堆和线程信息,截取模拟器屏幕画面,模拟来电或短信等功能。

1.2 Android系统架构

Android是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。

Android的系统架构从上往下依次是应用程序、应用程序框架和组件、Android运行时库和其他库、优化的Linux内核。

1.3 Android应用程序的组件

手机的运行环境比较复杂,一个程序运行时经常会出现很多的突发情况,例如,来电或者短信及电量不足等。这些问题在Android中都有解决方案,在Android的应用程序中,以下几个组件特别重要:

(1) AcTIvity顾名思义,Activity就是活动。应用程序必须至少包含一个Activity。Activity提供了一个虚拟的用户接口,每一个Activity都有一个默认的窗口可以用来显示用户界面,一般情况下,它是全屏的窗口。例如,影音播放软件的每个用户界面就是Activity。

(2)ServiceService与Activity的主要区别在于,Service是在后台活动的,它没有用户界面 ]。典型的应用场景是,用户选择了一个播放列表开始播放后,离开了该用户界面(Activity),如果仍然希望歌曲不会暂停,就可以用Service去调用播放器,而不是在Activity中调用播放器。

(3)Intent在Android中,每一个行为都可以抽象为一个Intent。可以简单地把Intent理解为一个包含了数据的消息。Intent可以用于启动一个Activity或者Service,可以用于进程间的通信。事实上,应用程序的启动也是通过Intent实现的。

(4)Content providersAndroid平台内置了一套SQLite数据储存机制,并包含一系列管理SQLite Database的相关方法_7]。

在应用程序中,可以通过Content providers访问数据库。每个Content provider都定义了一系列的方法用于访问它对应的数据库。应用程序在新建数据库时也可以定义相应的Content provider用于向其他应用程序共享数据。一般情况下,应用程序不直接调用Con—tent provider定义的函数,而是通过ContentResolve间接调用。这样设计的好处是一个ContentResolver可以访问任何的Content provider,统一了接口。

2 硬件平台

系统的硬件平台采用基于OMAP3530的开发板DevKit8000。美国TI公司的OMAP3530应用处理器_8 集成了600 MHz的ARM Cortex-A8 CPU 内核和430 MHz的C64x+ DSP内核,并提供了USB 2.0OTG,SD/MMC和LCD等丰富的外设接口,适用于各种无线手持终端应用。DevKit8000开发板外接了一个4.3寸的LCD屏、电阻式触摸屏和音频输入/输出接口,可以用于对基于Android系统的影音播放器的开发。

通过打补丁包和开发LCD驱动、触摸屏驱动、按键驱动等外设驱动,在DevKit8000开发板上移植了版本为6.2.29的Linux内核和版本为1.6的Android系统。

3 Android影音播放器软件开发

3.1 软件功能

Android的影音播放软件主要包括以下功能:

(1)播放视频支持快进、快退、暂停、继续和进度拖拽。

(2)播放音频支持快进、快退、上一首、下一首、暂停、继续、停止和进度拖拽;支持随机播放、循环播放两种模式;支持歌词同步显示。

3.2 各模块之间的关系

影音播放软件工程文件主要包括src文件夹(Java源码)、res文件夹(资源文件)和AndroidManifeST.xml(程序清单)。软件主要由8个Activities组成,每个Activity对应于一个模块。不同的Activities通过In—tent进行通信和相互调用。

各个模块之间的关系如图1所示。

视频播放调用顺序依次是<启动画面>、< 主菜单>、<文件浏览器>、<视频播放器>;音频播放调用顺序依次是<启动画面>、< 主菜单>、<播放列表管理> 、<播放列表内容管理> 、<正在播放> 。在<正在播放>的界面上,点击相应的按钮就可以执行歌词同步显示功能。

在工程目录的AndroidManifest:.xml(清单文件)里面,添加各Activity的说明。下面为对应启动画面的描述:

3.3 软件模块

根据影音播放软件功能,可以将软件划分为以下几个模块:

(1)<启动画面>模块。主要功能是显示软件启动画面。利用定时器线程去控制启动画面显示时间,并且当用户按下按键的时候,会立即中断启动画面的显示并跳转到<主菜单>模块。

(2)<主菜单>模块。主要功能是提供播放软件的用户界面。用户界面由Android的XML配置生成。

主菜单提供三个选项,分别是视频播放、音频播放和退出程序;视频播放时,调用<文件浏览器>模块,让用户选择需要播放的视频文件。音频播放时,调用<播放列表管理>模块,让用户选择需要播放的列表。

(3)<文件浏览器>模块。用于浏览内存卡上的文件。如果路径是文件夹,则列出该文件夹下的所有文件;如果路径是文件,则先检查文件扩展名是否为支持的视频格式,如果是,则调用系统内置的播放器播放。

(4)<音频播放>模块。它包括以下几个模块:

① <播放列表管理>模块。主要功能是添加、删除、重命名列表。通过Content providers访问系统的播放列表数据库,并利用修改的结果更新数据库。因为采用的是系统的数据库,所以与系统内置的音乐播放器列表共用。同时,它还提供添加列表内容的接口。通过播放列表管理模块进入到<播放列表内容管理>模块。

② <播放列表内容管理>模块。主要功能是添加、删除、多选播放列表中的歌曲。在Android中,每个列表都会有一个相应的列表内容库,保存了该列表里面所包含的歌曲ID。通过Content Providers可以访问并修改。其中,添加功能是基于文件浏览器实现的,在文件浏览器中可以对音乐文件的进行标记和添加。

③ <正在播放>模块。主要功能是显示歌曲的相关信息(专辑封面、专辑名称、歌手、长度等)和显示正在播放歌曲的时间进度,控制歌曲的播放。

<正在播放>模块的界面用XML配置生成。

在Android的音乐库已经将歌曲的Idv2或Idv3标签进行解析,并将歌曲的相关信息(包括演唱者、流派、时长等)保存在媒体数据库中。只需要通过Con—tent providers对该数据库进行访问,就可以得到相关的信息并送显示。获取歌曲相关信息的程序源码如下:

通过创建MediaPlayer播放器类对象,调用An—droid提供的API就可以实现文件的解码和播放。

④ <歌词同步显示>模块。程序启动时,对内存卡进行扫描,将扫描到的歌词文件名字和路径保存到歌词数据库中。对正在播放的歌曲,根据歌曲名字自动检索歌词文件,并同步显示歌词。第一次启动该程序时,需要新建歌词数据库,用于保存歌词文件信息。An—droid提供了类SQLiteOpenHelper用于新建数据库。

DATABASE— CREATE是一个SQL原语的字符串宏,其内容是“create table lyric—meta(一id integerprimary key autoincrement,一display— nam e text notnull,一data text not nul1);”表示创建一个歌词文件的表,包含一id,一display_name,一data三列。其中jd是自增的且惟一的整数,一display—nAME是歌词文件名称,一data是歌词文件路径。

4 系统测试

首先在Android SDK 1.6的模拟器上对影音播放器的各项功能进行调试和测试。调试结束后,将编译生成的安装文件(.APK)拷贝到SD卡,利用Android文件管理器将播放器软件安装到OMAP3530开发板的系统上,然后将测试用的视频文件、MP3音乐文件及对应的歌词文件(.1rc)拷贝到SD卡,0MAP3530开发板上的影音播放器可以通过文件浏览器选择音视频文件并正常播放,在播放音频文件时可以正常显示匹配的歌词,支持快进、快退、暂停等控制功能。

5 结语

本文以Android上影音播放器的开发为范例,详细给出了Android上应用的开发方法。开发的影音播放器在Android手机模拟器和OMAP3530开发板上测试通过。

 

作者:佚名 合作媒体:不详 编辑:顾北

 

 

 
 热点技术
普通技术 “5G”,真的来了!牛在哪里?
普通技术 5G,是伪命题吗?
普通技术 云视频会议关键技术浅析
普通技术 运营商语音能力开放集中管理方案分析
普通技术 5G网络商用需要“无忧”心
普通技术 面向5G应运而生的边缘计算
普通技术 简析5G时代四大关键趋势
普通技术 国家网信办就《数据安全管理办法》公开征求意见
普通技术 《车联网(智能网联汽车)直连通信使用5905-5925MHz频段管理规定(
普通技术 中兴通讯混合云解决方案,满足5G多元业务需求
普通技术 大规模MIMO将带来更多无线信道,但也使无线信道易受攻击
普通技术 蜂窝车联网的标准及关键技术及网络架构的研究
普通技术 4G与5G融合组网及互操作技术研究
普通技术 5G中CU-DU架构、设备实现及应用探讨
普通技术 无源光网络承载5G前传信号可行性的研究概述
普通技术 面向5G中传和回传网络承载解决方案
普通技术 数据中心布线系统可靠性探讨
普通技术 家庭互联网终端价值研究
普通技术 鎏信科技CEO刘舟:从连接层构建IoT云生态,聚焦CMP是关键
普通技术 SCEF引入需求分析及部署应用
  版权与免责声明: ① 凡本网注明“合作媒体:通信界”的所有作品,版权均属于通信界,未经本网授权不得转载、摘编或利用其它方式使用。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:通信界”。违反上述声明者,本网将追究其相关法律责任。 ② 凡本网注明“合作媒体:XXX(非通信界)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。 ③ 如因作品内容、版权和其它问题需要同本网联系的,请在一月内进行。
通信视界
华为余承东:Mate30总体销量将会超过两千万部
赵随意:媒体融合需积极求变
普通对话 苗圩:建设新一代信息基础设施 加快制造业数字
普通对话 华为余承东:Mate30总体销量将会超过两千万部
普通对话 赵随意:媒体融合需积极求变
普通对话 韦乐平:5G给光纤、光模块、WDM光器件带来新机
普通对话 安筱鹏:工业互联网——通向知识分工2.0之路
普通对话 库克:苹果不是垄断者
普通对话 华为何刚:挑战越大,成就越大
普通对话 华为董事长梁华:尽管遇到外部压力,5G在商业
普通对话 网易董事局主席丁磊:中国正在引领全球消费趋
普通对话 李彦宏:无人乘用车时代即将到来 智能交通前景
普通对话 中国联通研究院院长张云勇:双轮驱动下,工业
普通对话 “段子手”杨元庆:人工智能金句频出,他能否
普通对话 高通任命克里斯蒂安诺·阿蒙为公司总裁
普通对话 保利威视谢晓昉:深耕视频技术 助力在线教育
普通对话 九州云副总裁李开:帮助客户构建自己的云平台
通信前瞻
杨元庆:中国制造高质量发展的未来是智能制造
对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 杨元庆:中国制造高质量发展的未来是智能制造
普通对话 对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 对话倪光南:“中国芯”突围要发挥综合优势
普通对话 黄宇红:5G给运营商带来新价值
普通对话 雷军:小米所有OLED屏幕手机均已支持息屏显示
普通对话 马云:我挑战失败心服口服,他们才是双11背后
普通对话 2018年大数据产业发展试点示范项目名单出炉 2
普通对话 陈志刚:提速又降费,中国移动的两面精彩
普通对话 专访华为终端何刚:第三代nova已成为争夺全球
普通对话 中国普天陶雄强:物联网等新经济是最大机遇
普通对话 人人车李健:今年发力金融 拓展汽车后市场
普通对话 华为万飚:三代出贵族,PC产品已走在正确道路
普通对话 共享退潮单车入冬 智享单车却走向盈利
普通对话 Achronix发布新品单元块 推动eFPGA升级
普通对话 金柚网COO邱燕:天吴系统2.0真正形成了社保管