基于安卓android的多功能视频播放器的系统设计与实现毕业论文内容摘要:

varchar 255 Y 文件书签 videoArtist varchar 255 Y 艺术家信息 videoSize varchar 255 Y 文件大小 历史播放文件表 历史播放文件表记录了播放器中播放过的文件信息,这里包括文件名,文件绝对路径两个选项,方便用户读取历史播放记录信息,以及在此播放等功能。 其表详情见表。 表 历史播放文件列表 名称 类型 长度 十进制 允许空。 备注 _id integer 11 0 N 主键 videoName varchar 255 0 N 视频文件名 videoPath varchar 255 N 文件的绝对路径 收藏文件表 收藏 文件表记录了手机内部存储的视频文件,这样方便用户读取收藏文件列表的视频文件进行播放,其表详情见表。 名称 类型 长度 十进制 允许空。 备注 _id integer 11 0 N 主键 videoName varchar 255 0 N 视频文件名 videoPath varchar 255 N 文件的绝对路径 表 收藏文件列表 14 4 基于 Android 的多功能视频播放的系统实现 数据库管理 Android 在运行时( runtime)集成了 SQLite,所以每个 Android 应用程序都可以使用 SQLite 数据库。 对于熟悉 SQL 的开发人员来时,在 Android 开发中使用 SQLite 相当简单。 但是,由于 JDBC 会消耗太多的系统资源,所以 JDBC 对于手机这种内存受限设备来说并不合适。 因此, Android 提供了一些新的 API 来使用 SQLite 数据库, Android 开发中,程序员需要学使用这些 API。 Android 不自动提供数据库。 在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。 Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。 SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。 SQLiteOpenHelper 的子类,至少需要实现三个方法:构造函数,调用父类 SQLiteOpenHelper 的构造函数。 这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模 型版本的整数。 onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。 onUpgrage() 方法,它需要三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。 在 中,继承了 SQLiteOpenHelper 类,定义了需要建立的表,在 onCreate()方法中进行了创建,在 onUpgrage()需要先来判断表的存在性,这样避免出现表的二义性。 SQLiteOpenHelper 构造, onUpgrage(),onCreate()的具体实现如下: public DatabaseHelper(Context context) { super(context, DB_NAME, null, VERSION)。 // TODO Autogenerated constructor stub } @Override public void onCreate(SQLiteDatabase db) { // TODO Autogenerated method stub (DB_CREATE)。 15 (DB_CREATE1)。 (DB_CREATE2)。 } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Autogenerated method stub (drop table if exists + TABLE_NAME)。 (drop table if exists + TABLE_NAME1)。 (drop table if exists + TABLE_NAME2)。 onCreate(db)。 } 在 文件中,对 SQLite 中的数据查询,删除,添加等操作进行了实际操作的封装。 其中需要注意的是,鉴于数据库的操作安全,需要在每次对数据库操作完成之后,执行 close()操作,用于实时同步数据库数据。 其中主要针对,实际建立的 3 个表进行的查询,插入,清楚表操作的封装。 重要代码如下: public void insertLocal(int type,Video_Info vinfo){ (TAG, insert ())。 dBase = ()。 (TAG, insert1 ())。 switch(type){ case localList: (TAG, insert localList ())。 (insert into locallist (videoName,videoPath,videoDuration,videoDescription,videoBookMark,videoArtist,videoSize) + values(?,?,?,?,?,?,?),new Object[]{, ,deoSize})。 break。 } ()。 } public void cleartable(int type){ (TAG, cleartable ())。 dBase = ()。 switch(type){ case localList: (locallist, 1,null)。 (TAG, clear locallist is ok)。 break。 ..... 16 } ()。 } UI 界面的实现 主界面 UI 如图 所示 : 图 主界面 UI 运用到 Android 的滑动效果。 比如菜单栏是滑动而入。 有流动感 ; PlayList的数据要求有记忆功能。 运用到 SQLite; 随着 PlayList 的视窗的可见性,调节播放窗体,以及播放进度条的长度。 智能搜索模块的实现 智能搜索模块主要是用于通过在手机里面通过列表框列出所有的视频文件看,然后,通过文件名的搜索框对指定的文件进行简单的快速定位。 其主要界面结构图如图 所示。 FileOpen PlayList About Favourite PlayList Window of play Video Is Visible when has the mand of search in Inter! WebBrowser 17 图 智能搜索界面框架图 下面为应用程序实例中存在的实际智能搜索模块的界面设计。 智能搜索框实例如图 所示。 图 智能搜索框实例 智能搜索框中对视频文件响应界面实例如图 所示。 Search(智能查找) Listview(获取当前 sdcard 中所有视频文件,显示名称,以及修改时间等信息。 当 listview 中的选项被选中,底部显示多媒体文件详细路径 Play Remove 当单击 listview 中的选项的操作。 More Back 18 图 智能搜索模块当 文件被点击后的界面实例 获取视频文件详细信息实例如图 所示: 图 选择界面中点击 More Info 之后县市的有关文件详细信息实例 在智能搜索框的设计中,主要涉及到的是如何遍历 sdcard 中的视频文件,如何实现智能框的智能化搜索。 再就是控制智能搜索结构与其他控制相关的操作。 在遍历 sdcard中的视频文件的方法是调用 android系统中自带的检测视频文件的功能,然后对其结果进行过滤记录,载入数据库中。 其精简代码如下: cursor = managedQuery(, null, null, null, null)。 19 if (()) { do { = (cursor .getColumnIndex())。 = (cursor .getColumnIndexOrThrow())。 = (cursor .getColumnIndexOrThrow())。 ()。 ........( 省略 ) (TAG, before sql insert)。 (1, myVideoInfo)。 (TAG, after sql insert)。 } while (())。 这里通过 android 的游标特性 , 进行 CONTENT_URI 的查询 , 就是在 sdcard 存储卡中对多媒体进行通过 URI 的扫描。 而对于实现智能搜索框的智能搜索功能的实现如下: ArrayAdapterString searchAdapter = new ArrayAdapterString(this, , searchTextName)。 (searchAdapter)。 (1)。 class searchListOnItemSelectedListener implements OnItemSelectedListener{ 首先建立一个适配器 Adapter,适配类型为前面搜索出来的所有 sdcard 中视频文件,然后将其绑定到 Android 的一个 AutoCompleteTextView 类型的搜索文本。 之后对其控件进行一个状态监听,这里包括选中监听,以及单击监听。 public void onItemSelected(AdapterView? arg0, View arg1, int arg2, long arg3) { // TODO Autogenerated method stub (TAG, onItemSelected()..)。 20 int location = ()。 long id = ()。 if( (location == arg2) amp。 amp。 (id == arg3)){ ()。 Media_Search_Items selectedItem = (location)。 (文件路径: +())。 (())。 } } public void onNothingSelected(AdapterView? arg0) { // TODO Autogenerated method stub (TAG, onNothingSelected()..)。 ()。 } } 以上为单击响应的监听。 单击之后出来的界面也就是上面的表 所示。 这里显示了新的模态对话框,以及在其背后会显示出来的是选中状态的信息。 class searchListOnItemSelectedListener implements OnItemSelectedListener{ public void onItemSelected(AdapterView? arg0, View arg1, int arg2, long arg3) { // TODO Autogenerated method stub (TAG, onItemSelected()..)。 int location = ()。 long id = ()。 if( (location == arg2) amp。 amp。 (id == arg3)){ ()。 Media_Search_Items selectedItem = (location)。 (文件路径 +())。 (())。 } } public void onNothingSelected(AdapterView? arg0) { // TODO Autogenerated。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。