欢迎来到天天文库
浏览记录
ID:32572497
大小:463.50 KB
页数:19页
时间:2019-02-12
《ophone程序开发入门之音乐播放器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、...OPhone平台提供了完整的多媒体解决方案。为开发者提供了统一的,简单易用的开发接口。本文首先介绍了OPhone平台的多媒体框架,然后详细介绍了在OPhone平台上开发音乐播放程序所需的基本知识。通过一步一步构建一个简单的音乐播放器示例程序,来帮助读者了解具体的开发过程。该示例涵盖了Application,Activity,Service,Intent,BroadCastReceiver等基本概念,使读者对OPhone程序的开发有一个全面的了解,进一步巩固和熟悉这些基本概念。最后介绍了如何利用MAT工具分析
2、OPhone程序。 本文适合OPhone平台开发的初学者阅读。(作者:CMRI孟钊)OPhone平台的多媒体架构 在开始构建我们的示例程序前,先让我们大概了解一下OPhone平台的多媒体框架。 图 一 图一是OPhone平台的整体框架结构,从图上我们可以看出OPhone平台大致可以分成以下几个层次:1.最上层是Application层。它包含了主屏,电话,浏览器,地址本等核心的应用程序。我们将开发的音乐播放器也属于这一层。2.第二层是ApplicationFramework层。
3、这一层为开发者提供了完整的编程接口。多媒体部分提供了MediaPlayer,MediaRecorder等接口。同时MediaProvider,MediaScanner等系统服务也对媒体文件的管理提供了支持。本文将重点介绍它们的使用。3.第三层是Library层,它由一系列的c/c++库组成,这些库的能力通过JNI封装成java接口,由ApplicationFramework层提供给开发者。多媒体系统库OpenCore,它是OPhone多媒体的核心,来源于PacketVideo。它非常复杂,提供了完整的多媒体解决方
4、案。......1.最底层为LinuxKernel和驱动,负责与硬件的数据交互等。 图二说明了在OPhone平台中播放音乐文件时的调用关系。 对于应用程序开发者来说,需要重点学习和关注的是如何使用AppliationFramework层提供给开发者的接口。音乐媒体信息的管理 在开始构架程序之前,我们需要准备一下必须的基本知识。首先来了解一下在OPhone平台中应该如何获取音乐文件的信息以及如何管理这些信息。 OPhone系统提供了MediaScanner,MediaProvider,MediaStore
5、等接口,并且提供了一套数据库表格,通过ContentProvider的方式提供给用户。当手机开机或者有SD卡插拔等事件发生时,系统将会自动扫描SD卡和手机内存上的媒体文件,如audio,video,图片等,将相应的信息放到定义好的数据库表格中。在这个程序中,我们不需要关心如何去扫描手机中的文件,只要了解如何查询和使用这些信息就可以了。 MediaStore中定义了一系列的数据表格,通过ContentResolver提供的查询接口,我们可以得到各种需要的信息。下面我们重点介绍如何管理SD卡上的音乐文件信息。 先
6、来了解一下ContentResolver的查询接口: viewplaincopytoclipboardprint?......1.Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder); Cursorquery(Uriuri,String[]projection,Stringselection,String[]selectionArgs,StringsortOrd
7、er); Uri:指明要查询的数据库名称加上表的名称,从MediaStore中我们可以找到相应信息的参数,具体请参考开发文档。 Projection:指定查询数据库表中的哪几列,返回的游标中将包括相应的信息。Null则返回所有信息。 selection:指定查询条件 selectionArgs:参数selection里有?这个符号是,这里可以以实际值代替这个问号。如果selection这个没有?的话,那么这个String数组可以为null。 SortO
8、rder:指定查询结果的排列顺序 查询所有歌曲: viewplaincopytoclipboardprint?1.Cursor cursor = query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
此文档下载收益归作者所有