英语原文共 4 页,剩余内容已隐藏,支付完成后下载完整资料
2012年第9届模糊系统与知识发现国际会议(FSKD 2012)
基于Android的媒体播放器研究
金双燕,李浩良,刘永飞
信息工程系
郑州大学
中国郑州
摘要 - 介绍了层次结构和应用 Android平台的组件。 鉴于其内置媒体用户有很多限制,本文设计了一款媒体播放器,基于文件浏览器的方式来管理媒体库。 当它启动后,媒体播放器可以稳定和快速的扫描存储设备,然后将扫描的歌词文件保存到数据库。 随着播放歌曲,媒体播放器可以根据音乐名称检索它的歌词文件快速更新同步显示歌词。
关键词:Android的; 媒体播放器; 应用;Android的模拟器
I. 导言
Android系统是是谷歌基于Linux平台并由其开发的一个开源操作系统。凭借良好的用户体验和高度的开放性,Android系统不仅用于表格的高端电脑和智能手机,也可用于低端机顶盒,MP4等多媒体设备,吸引越来越多的制造商采用它。如Android是一个完全开放的平台,第三方软件开发人员有更大的自由发展空间和计划,而其开放和免费服务也减少发展的成本。 Android现在很快就赢得了运营商,手机厂商的支持和应用软件开发,并一直是下一代主流运营系统最好的选择。
随着科学与技术的不断发展,手机不再只是在我们的日常生活中的沟通工具,而是一个提供强大的多媒体功能的多媒体平台,越来越多人们使用手机听音乐和观看电影。内置Android系统的媒体播放器管理基于媒体库的歌曲并不显示歌词时。对于用户已经有基于文件形式的媒体播放器浏览器的习惯,操作它有一些不便之处。因此,本文设计了一种新的媒体播放器[1]。
II. ANDROID建筑
Android的体系结构由五个组件组成:Linux内核,Android运行,库,应用程序
框架和应用[2]。
A. Linux内核
Android依靠Linux(内核版本2.6)作为核心系统服务,如安全性,内存管理,进程管理,网络堆栈和驱动程序模型。该Linux内核也充当了硬件抽象层应用程序和所有硬件,开发人员不需要关心硬件。
B. Android运行和库
Android包含一组使用的C / C 库Android系统的各种组件。 Android系统为应用程序提供基本的Java运行时环境和它自己的Dalvik虚拟机及其基本的Java类图书馆。 每个Android应用程序都在自己的进程中运行并拥有自己的Dalvik虚拟机实例。Dalvik虚拟机依赖于Linux内核提供的基本功能,并且可以运行多个虚拟机,同时具有很高的效率。
C.应用程序框架
在Android系统中,开发人员可以访问API
核心应用程序使用的框架。 应用程序架构旨在简化所有的重用组件,每个应用程序都可以释放其组件和其他应用程序可以使用发布的组件(需要服从框架的安全限制)。同样的,这个应用程序的重用机制允许用户替换程序组件。 所有应用程序实际上是一个一套服务和系统。
D.申请
应用程序是用Java编程编写的语言并运行在Dalvik虚拟机中。 核心Android发布的应用程序包括电子邮件客户端,日历,地图应用程序,短信应用程序,网页浏览器,contacts-app等。用户开发的Android应用程序和Android应用程序的核心是相同的级别,它们都是基于API构建的Android系统。
III. ANDROID应用程序组件
Android应用程序由四个组件组成:活动,服务,广播接收器和内容提供者[3]。
bull;Activity是一个基本的Android组件。 一个活动代表具有用户界面的单个屏幕。每个活动都由一个独立的单元来实现并从作为基类的Activity继承。Activity类将显示那个用户界面由几个Views控件和响应组成到事件。 大部分应用程序将包括不止一个屏幕。 每个屏幕都是一个活动。当一个新的屏幕被打开时,前一个屏幕会被打开被暂停,并存储在历史堆栈中。用户可以返回到历史记录中的前一个屏幕叠加。 当屏幕不再使用时,它仍然可以从历史堆栈中删除。 默认Android将从主屏幕保留到每个屏幕运行应用程序的屏幕。
bull;服务是一项长时间运行的操作,并不提供用户界面。 一个典型的例子是媒体播放器。应该有很多活动媒体播放器应用程序供用户选择歌曲并应用他们。 当用户想要离开玩家界面导航到其他屏幕,媒体玩家活动可以启动服务以保持在后台播放音乐,并保持服务正在运行,直到服务关闭
bull;广播接收负责接收系统广播。 广播接收可以使用开始一项活动或服务并用于进程间通信。
bull;Android应用程序彼此独立,如果,它们中的每一个都运行在不同的进程中,你想分享不同的数据应用程序,那么你可以使用Content Provider。内容提供者提供了一组标准访问接口供其他应用程序访问和操作数据
IV. ANDROID MEDIA PLAYER软件发展
A. Android媒体Playe的总结
Android提供了常见的媒体编解码机制,所以它可以很容易地集成多媒体文件,如音频,
视频和图片在应用程序中。 Android媒体播放器播放来自多个来源的音频文件,例如本地文件,资源文件和网络文件流。 本文播放来自SD卡的音频文件,并显示歌词同步。 “图1”显示了Media的系统进程播放器。
图1. Media Player的系统进程
B.软件模块和核心代码
1)lt;主菜单gt;模块:当用户输入媒体播放器的初始界面有三种选择:全部音乐,最近播放的列表,以及最常播放的列表;鼠标事件侦听器按钮触发事件。点击一个项目。部分键盘代码如下:
listview = new ListView(this);
listview.setAdapter(适配器);
listview.setOnItemClickListener(新
OnItemClickListener(){
public void onItemClick(){
intent = new Intent();
intent.setClass(MainActivity.this,ListActivity.class);
startActivity(意向);
...
}});
当Android系统启动时,它会自动启动扫描SD卡中的多媒体文件,并存储收到的系统数据库中的信息。为了制作数据在多媒体数据库更新中,您可以使用广播机制并在应用程序中发送广播进行更新多媒体数据库通过扫描SD卡。然后注册scanSdReceiver,广播接收器可以接收广播意图。关键代码如下所示:
private voidscanSdCard(){
IntentFilter intentfilter = new
IntentFilter(Intent.ACTION_MEDIA_SCANNER_START
ED)
intentfilter.addAction(Intent.ACTION_MEDIA_SCA
NNER_FINISHED);
intentfilter.addDataScheme( “文件”);
scanSdReceiver = new ScanSdReceiver();
registerReceiver(scanSdReceiver,intentfilter);
sendBroadcast(新
意图(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse(“file://”
Environment.getExternalStorageDirectory()。getAbsolutePat
H())));
}
主菜单模块显示在“图2”中
图2.主菜单
2)lt;播放列表gt;模块:显示音频的名称文件,歌手和持续时间。播放列表主要是创建一个列表,当使用鼠标点击其中一个项目时
列表显示,它会触setOnItemClickListener监视器。部分键盘代码如下:
listview = new ListView(this); Cursor c = this.getContentResolver()
.query(MediaStore.Audio.Media.EXTERNAL_C ONTENT_URI,
new String[]{MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DISPLAY_NAME }, null, null, null);
...........
listview.setAdapter(new
MusicListAdapter(this, c)); listview.setOnItemClickListener(new
ListItemClickListener());
The layout of the Play List is shown as follows:
lt;LinearLayout
android:orientation='horizontal' android:layout_width='fill_parent' android:layout_height='wrap_content' android:layout_marginTop='2dip'gt;
lt;LinearLayout
...gt;
lt;TextView android:id='@ id/music' .../gt;
lt;TextView android:id='@ id/singer'
...lt;/LinearLayoutgt;
lt;TextView android:id='@ id/time' .../gt; lt;/LinearLayoutgt;
Play Lists is shown in “Fig 3”.
播放列表显示在“图3”中。
3)lt;最近播放的gt;模块和lt;最常见的播放gt;模块 :主要工作是创建工具类DBHelper来操作从类继承的数据库SQLiteOpenHelper。函数onCreate()和onUpgrade()用于创建和更新数据库。然后调用queryResently()通过查询实现最近播放的列表歌曲根据播放时间降序调用queryByClicks()来实现最常播放的列表根据击中的降序查询歌曲。
4)lt;Playgt;模块:主要功能是显示关于歌曲的标题,歌词和时间的信息,以及一些媒体播放器的功能键,比如播放,暂停,停止,上一个,下一个,后退和前进,然后显示歌词。部分键盘代码如下:
显示歌词。部分键盘代码如下:
playBtn =
(ImageButton)findViewById(R.id.playBtn);
playBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { } }); private void loadClip(){
mp = new MediaPlayer();
mp.setOnCompletionListener(this);
DBOperate(pos);
uri =
Uri.withAppendedPath(MediaStore.Audio.Media.EXTERN
AL_CONTENT_URI,'' pos); }
在播放的歌曲结尾处,调用onCompletion
(MediaPlayer mp)来实现回收功能。点击时功能按钮,setup()被称为做准备工作,如设置时间,初始化播放位置等MediaPlayer,启动播放进度条等。read(String path)被调用来读取歌词和显示他们同步。 play(),pause()和stop()是实现播放,暂停和停止的功能。
播放界面的布局如下所示:
lt;LinearLayout android:orientation='vertical'
android:layout_width='fill_parent'
android:layout_height='fill_parent'
gt;
lt;FrameLayout gt;
lt;ImageView
android:id='@ id/bg' .../gt;
...
lt;TextView
android:id='@ id/lrc' .../gt;
...
lt;SeekBar 全文共6281字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[9022],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。