基于android的影音设计,基于Android系统的影音播放器设 - 音响技术 - 电子发烧友网...

news/2024/11/29 3:44:05/

3.2 各模块之间的关系

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

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

be152ced9c41991a9f9ea1bc6bb39428.png

视频播放调用顺序依次是、、、;

音频播放调用顺序依次是、、、、。在的界面上。点击相应的按钮就可以执行歌词同步显示功能。

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

8b0bae6a19379490831a69e98d04a1c7.png

3.3 软件模块

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

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

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

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

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

(4)模块。它包括以下几个模块:

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

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

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

模块的界面用XML配置生成。

实际使用的效果图如图2所示。

aa24be5899d29ffd326d7ee4dd0979ce.png

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

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

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

DATABASE_CREATE是一个SQL原语的字符串宏,其内容是“create table lyric_meta(_id integerprimary key autoincrement,_disp-alay_name text not null,_date text not null);”表示创建一个歌词文件的表,包含_id,_display_name,_data三列。其中_id是自增的且惟一的整数,_display_name是歌词文件名称,_data是歌词文件路径。歌词显示效果如图3所示。

b7bfb08f03bff77e603ff1da27fad0c1.png

4 系统测试

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

5 结语

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


http://www.ppmy.cn/news/535286.html

相关文章

android智能音响,大屏+安卓系统 智能音响的究极形态?

有人说,音乐是上天赐予人类的奇妙礼物。对于我而言,音乐几乎和空气一样重要——无音乐不成活!当你对一种事物痴迷时,自然就会变身“处女座”,处处较真。作为一名音乐发烧友,这么多年烧在音响、耳机等器材上的money,换成硬币绝对能把自己埋住!正所谓,生命不息,发烧不止…

玩音响发烧友必看的博客

据说它是当年的 30万元买大奥的 铁饭? http://blog.sina.com.cn/s/articlelist_1089501353_5_10.html 我的第八对喇叭驾到。全新卡玛DB9三分频四单元重量级喇叭 http://blog.sina.com.cn/s/blog_40f078a90102vbze.html

音响发烧友可以听出电源是水电还是火电

2019独角兽企业重金招聘Python工程师标准>>> 音响发烧友可以听出电源是水电还是火电发电类型和音质的关系如下:1、用火电的力度大点,声音偏暖;用水电的声底偏冷,但解析力很高。水电中,以葛州坝的电音色最好;火电中,以北仑电厂的电音质最好(因为烧的无烟煤的…

signature=29c90d1a8d382ff261d00a931708390a,发烧音响功放(顶级Hi-End音响发烧器材介绍)...

发烧音响功放(顶级Hi-End音响发烧器材介绍) 【音响聚焦】顶级Hi-End音响发烧器材介绍(功放篇) 润丰名线坊 今天,要给大家介绍的是顶级Hi-End音响发烧器材中很重要的一个部分,那就是——功放篇。在一套良好的Hi-End音响系统中,功放的作用功不可没。而世界顶级的Hi-End发烧功放…

写一个demo next(iter(data_iter)) 理解 next(iter())

假设有一个迭代器对象 data_iter,包含了一些数据集。 next() 是 Python 内置的函数,用于获取迭代器中的下一个元素。当迭代器没有更多元素时,将抛出 StopIteration 异常。 而 iter() 函数则是将可迭代对象转换成迭代器。如果一个对象实现了…

几何引擎 约束求解器 3D仿真物理引擎 图形引擎

几何引擎 & 约束求解器 & 3D仿真物理引擎 & 图形引擎 1 介绍技术图谱建模主流CAD/CAM/CAE/AEC所用引擎 2 几何建模引擎2.1 介绍2.2 各家实现 3 图形引擎4 几何约束求解器4.1 介绍4.2 各家实现D-Cubed DCM(西门子)CGM(达索)LGS&am…

继承的基本内容

在面向对象部分提到过,面向对象三大特性(不是只有三个特性,而是指存在感最强的三个特性):封装,继承,多态。 封装:对比C语言,将数据和处理数据的方法放入一个类中&#xf…

综合布线系统-笔记

笔记来源:b站《综合布线系统综述及应用》之布线系统综述 双绞线的最大传输距离是100m 一般每一层楼都有一个管理间子系统 垂直子系统一般用多模光缆 楼和楼之间一般用单模光缆 如果楼层特别高,也用单模光缆