2021-2022收藏资料基于Android的多媒体播放器课程设计报告.doc

上传人:知****量 文档编号:19288975 上传时间:2022-06-06 格式:DOC 页数:19 大小:1.36MB
返回 下载 相关 举报
2021-2022收藏资料基于Android的多媒体播放器课程设计报告.doc_第1页
第1页 / 共19页
2021-2022收藏资料基于Android的多媒体播放器课程设计报告.doc_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《2021-2022收藏资料基于Android的多媒体播放器课程设计报告.doc》由会员分享,可在线阅读,更多相关《2021-2022收藏资料基于Android的多媒体播放器课程设计报告.doc(19页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、基于Android的多媒体播放器课程设计报告(2014-01-02 22:46:52) 转载标签: android多媒体播放器嵌入式课程设计报告it分类: 我的编程之路 附源码。希望此文能帮助到一些新手。也希望更多的人在网络上分享自己的学习成果。互相交流,扣扣:70876398完整版:1、开发环境Android 是一种基于 Linux V2.6 内核的综合操作环境。最初,Android 的部署目标是移动电话领域,包括智能电话和更廉价的翻盖手机。Android 全面的计算服务和丰富的功能支持完全有能力扩展到移动电话市场以外。Android 也可以用于其他的平台和应用程序。下面搭建Android的

2、开发环境。1.1 JDK安装1、首先把所有要安装文件放在Android_software文件夹中;2、安装jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008文件;3、配置环境变量:(1)新建一个用户变量,变量名是JAVA_HOME,变量值为:JDK的安装路径;(2)查看系统变量Path,如果有显示路径加bin,没有则加%JAVA_HOME%bin;(3)查看class,如果有显示路径加lib,没有则加%JAVA_HOME%lib;4、解压eclipse-jee-juno-win32文件,运行eclipse.exe,在workspace launche

3、r窗口中,设置项目保存路径; 1.2 Android SDK安装以及系统设置在eclipse菜单栏的window子菜单下点击perferences,选择android,在右边的对话框中选择按钮Browse,找到SDK源文件,自动出来SDK包含的Android版本,点击Apply按钮,完成安装;在用户变量里面,新建一个JAVA_SDK变量,值设置的值为SDK安装的路径;在系统变量里面加入%JAVA_HOME%bin,%JAVA_SDK%tools,%JAVA_SDK%platform-tools。 图1.设置环境变量1.3 Eclipse安装以及ADT工具的安装ADT插件的安装:(1)解压ADT

4、文件;(2)打开eclipse菜单上help 子目录下的Install new software;(3)在弹出的Install窗口中点击Add,在弹出的窗口中,name:ADT Location:点击location按钮找到解压的ADT源文件;(4)安装成功后,重新启动eclipse; 1.4 模拟器的配置1、运行eclipse,在window子菜单下点击AVD Manager开始配置模拟器;2、在Android Virtual Device Manager 下点击NEW,开始创建模拟器;3、在create new Android Virtual Manager窗口中,输入模拟器的名称、版本、

5、 存储卡大小,手机屏幕的分辨率,输入完后,点击Create AVD,创建完成;4、在Android Virtual Device Manager窗口中,选中模拟器后,点击start,启 动模拟器。 图2 启动模拟器2、功能说明2.1 软件结构与布局设计布局框架分为三个部分:图形菜单主界面menu_main.xml ,对应类文件MediaPlay.java 媒体功能实现界面menu_main.xml menuForMain.java媒体列表界面 mylist.xml以及listview.xml样式布局listtype.xml MediaList.java 逻辑架构如下: 2.2图像菜单功能 主要

6、控件及功能Gallery MyGallery:用于显示图形菜单,双击图片进入相应的功能界面TextView menuTv:用于显示菜单选项信息 使用说明:1、双击MyGallery中装载的一组图片(屏幕底部)中的其中任何一张图片进入相应的功能面 板2、通过在MyGallery滑动来达到更改菜单选项的功能3、menuTv会实时显示当前选中的菜单项的详细说明 2.3 音频文件播放 主要控件及功能ImageButton ibtnPlayAndPuase 开始/暂停ImageButton ibtnStop 停止ImageButton ibtnLast, 上一曲ImageButton ibtnNext;

7、 下一曲 SeekBar MySeekBar; 进度条TextView MytvScreen;信息显示TextView tbTimer ;用于显示当前播放时间进度 使用说明:1、当进入音乐播放界面时,后台读取保存在本地的音乐列表文件,若不存在列表文件则自动扫描/sdcard/Music/目录下音频文件2、播放和暂停键复用,当第一次点击播放按钮,再次点击则为暂停,再次点击则继续之前的位置播放;停止按钮则是将当前播放进度设置为0并暂停播放;上一曲、下一曲按钮则实现歌曲切换功能3、进度条和tbTimer控件则实时显示当前播放音乐的时间进度,MytvScreen会显示当前正在播放歌曲的详细信息 2.4

8、 视频文件播放 主要控件及功能ImageButton ibtnPlayAndPuase 开始/暂停ImageButton ibtnStop 停止ImageButton ibtnLast, 上一曲ImageButton ibtnNext; 下一曲 SeekBar MySeekBar; 进度条 VideoView MyVideoView; 用于播放视频的组件 使用说明:1、当进入视频播放界面时,后台读取保存在本地的视频列表文件,若不存在列表文件则自动扫描/sdcard/Video/目录下音频文件2、播放、暂停、上一部、下一步、停止以及进度条、时间显示条皆复用音乐界面的按钮,功能也与其一致,这里不赘

9、述。 2.5 录音 主要控件及功能ImageButton ibtnPlayAndPuase 开始/暂停ImageButton ibtnStop 停止ImageButton ibtnLast, 上一曲ImageButton ibtnNext; 下一曲 SeekBar MySeekBar; 进度条 Button btnRecording; 录音开关 使用说明:1、当进入录音界面时,后台读取保存在本地的视频列表文件,若不存在列表文件则自动扫描/sdcard/MyRecords/目录下录音文件2、播放、暂停、上一部、下一步、停止以及进度条、时间显示条皆复用音乐界面的按钮,功能也与其一致,这里不赘述。3

10、、点击开始录音按钮,则按钮显示为“录音中.”,此时播放等按钮无法使用,进度条中间会显示当前的录音时间。在次点击此按钮则停止录音。此时可点击播放按钮试听刚才的录音。4、以上所有操作在主显示区域都会有文字描述 3、软件设计与调试3.1软件在虚拟机上调试及分析 3.1.1图形菜单 核心代码:/图片装载 int MenuImages=R.drawable.menu4,R.drawable.menu1,R.drawable.menu2,R.drawable.menu3,R.drawable.menu5; MyGallery.setAdapter(new ImageAdapter(this);public

11、 class ImageAdapter extends BaseAdapterOverridepublic View getView(int arg0, View arg1, ViewGroup arg2) / TODO Auto-generated method stubImageView i = new ImageView(mContext); i.setImageResource(MenuImagesarg0); i.setAdjustViewBounds(true); i.setLayoutParams(new Gallery.LayoutParams( LayoutParams.WR

12、AP_CONTENT, LayoutParams.WRAP_CONTENT);/ i.setBackgroundResource(R.drawable.e); return i;/页面跳转Overridepublic boolean onDoubleTap(MotionEvent arg0) / TODO Auto-generated method stubIntent MyIntent=new Intent();MyIntent.setClass(menuForMain.this,MediaPlay.class);Bundle MyBundle=new Bundle();MyBundle.p

13、utInt(name, MyGallery.getSelectedItemPosition();MyIntent.putExtras(MyBundle);startActivity(MyIntent);return false; 3.1.2音乐播放 播放: MyMediaPlayer.setDataSource(MusicList.get(Mediasp);MyMediaPlayer.prepare();MyMediaPlayer.start(); /播放MyMediaPlayer.pause();/暂停MyMediaPlayer.pause();MyMediaPlayer.seekTo(0)

14、;/停止(为了能使点击播放按钮能在此播放,这里不调用MyMediaPlayer.stop()方法) 3.1.3视频播放器 MyVideoView.setVideoURI(Uri.parse(VideoList.get(Mediasp);/设置视频源MyVideoView.start();/播放 MyMediaPlayer.pause();/暂停MyVideoView.pause();MyVideoView.seekTo(0);/停止 3.1.4录音 /播放new DateFormat();file=new File(/sdcard/MyRecords/+bear+DateFormat.form

15、at(yyyyMMdd_hhmmss,Calendar.getInstance(Locale.CHINA)+.amr);File destDir = new File(/sdcard/MyRecords/);if (!destDir.exists()destDir.mkdirs();MyMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); MyMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);MyMediaRecorder.setAudioEnc

16、oder(MediaRecorder.AudioEncoder.DEFAULT);file.createNewFile();MyMediaRecorder.setOutputFile(file.getAbsolutePath();MyMediaRecorder.prepare();MyMediaRecorder.start();/停止录音MyMediaRecorder.reset(); 须加一个权限开发,在AndroidManifest.xml:uses-permission android:name=android.permission.RECORD_AUDIO/uses-permissio

17、nuses-permission android:name=android.permission.WRITE_EXTERNAL_STORAGE/uses-permission 3.1.5、公共方法/1、滑动屏幕改变媒体音量/设置音量MyAudioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);/2、添加屏幕触发事件MyGestureDetector =new GestureDetector(this,new MyGestureDetectorListener(); MytvScreen.setOnTou

18、chListener(new OnTouchListener()Overridepublic boolean onTouch(View arg0, MotionEvent arg1) return MyGestureDetector.onTouchEvent(arg1););Private class MyGestureDetectorListener implements OnDoubleTapListenerOverride/ 滚动,触摸屏按下后移动 public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2

19、,float arg3) if(AudioManagerFlag=0)AudioManagerY=arg0.getY();AudioManagerX=arg0.getX();int IsSound=0;if(AudioManagerFlag5)AudioManagerFlag=0;if(AudioManagerY-arg1.getY()1)|(arg1.getY()-AudioManagerYarg1.getX()/左滑动调小音量 MyAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LO

20、WER, AudioManager.FX_FOCUS_NAVIGATION_UP);else/右滑动调大音量 MyAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE,AudioManager.FX_FOCUS_NAVIGATION_UP); elseAudioManagerFlag+;return false; 3、长按调整至列表界面Override/ 长按,触摸屏按下后既不抬起也不移动,过一段时间后触发 public void onLongPress(MotionEvent a

21、rg0) AudioManagerFlag=0;if(MyVideoView.isPlaying()MyVideoView.pause();ibtnPlayAndPuase.setImageResource(R.drawable.ibtnplay);ibtnPlayAndPuase.setTag(play);Intent i=new Intent();i.setClass(MediaPlay.this,MediaList.class);Bundle data=new Bundle();/调出菜单,第一个参数是列表的类型,第二个参数是当前歌曲在播放离别中的位置data.putInt(sp,Med

22、iasp);data.putInt(Type,MyRadioGroup.getCheckedRadioButtonId();i.putExtras(data);startActivityForResult(i,MyRadioGroup.getCheckedRadioButtonId(); 3、列表显示 /接收来自功能面板的列表请求Bundle MyBundle=this.getIntent().getExtras();try int rbtnId=0;rbtnId=MyBundle.getInt(Type);/int Mediasp=MyBundle.getInt(sp);switch(rbt

23、nId)case R.id.rbtnMusic:/MyMediaList=sp.getMusicList();/createList(MyMediaList,0);resultCode=1;getFiles(Filepath+kugou/,.mp3,MyMediaList,true);Filepath+=Music/;getFiles(Filepath,.mp3,MyMediaList,false);sp.setMusicList(MyMediaList);break;case R.id.rbtnVideo:/MyMediaList=sp.getVideoList();/createList(

24、MyMediaList,1);resultCode=2;Filepath+=Videos;getFiles(Filepath,.mp4,MyMediaList,false);getFiles(Filepath,.3gp,MyMediaList,false);sp.setVideoList(MyMediaList);break;case R.id.rbtnRecord:/MyMediaList=sp.getRecordList();/createList(MyMediaList,2);resultCode=3;Filepath+=MyRecords;getFiles(Filepath,.amr,

25、MyMediaList,false);sp.setRecordList(MyMediaList);break;default:break;/获取列表private void getFiles(String dirpath,String fileType,ArrayList List,boolean IsIterative) /List.clear(); File files = new File(dirpath).listFiles(); File f; if(files = null) return; for (int i = 0; i files.length; i+) f = files

26、i; if(!f.canRead() continue; if (f.isFile() if (f.getName().contains(fileType) /判断扩展名 List.add(f.getPath(); else if (f.isDirectory()&IsIterative=true) getFiles(f.getPath(), fileType,List, IsIterative); /listview长按监听事件mylist.setOnItemLongClickListener(new OnItemLongClickListener() SuppressLint(ShowToast)Overridepublic boolean onItemLongClick(AdapterView

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com