欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

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

    • 资源ID:19288975       资源大小:1.36MB        全文页数:19页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    基于Android的多媒体播放器课程设计报告(2014-01-02 22:46:52) 转载标签: android多媒体播放器嵌入式课程设计报告it分类: 我的编程之路 附源码。希望此文能帮助到一些新手。也希望更多的人在网络上分享自己的学习成果。互相交流,扣扣:70876398完整版: 1、 开发环境Android 是一种基于 Linux® V2.6 内核的综合操作环境。最初,Android 的部署目标是移动电话领域,包括智能电话和更廉价的翻盖手机。Android 全面的计算服务和丰富的功能支持完全有能力扩展到移动电话市场以外。Android 也可以用于其他的平台和应用程序。下面搭建Android的开发环境。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 launcher窗口中,设置项目保存路径; 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文件;(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窗口中,输入模拟器的名称、版本、 存储卡大小,手机屏幕的分辨率,输入完后,点击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图像菜单功能 主要控件及功能Gallery MyGallery:用于显示图形菜单,双击图片进入相应的功能界面TextView menuTv:用于显示菜单选项信息 使用说明:1、双击MyGallery中装载的一组图片(屏幕底部)中的其中任何一张图片进入相应的功能面 板2、通过在MyGallery滑动来达到更改菜单选项的功能3、menuTv会实时显示当前选中的菜单项的详细说明 2.3 音频文件播放 主要控件及功能ImageButton ibtnPlayAndPuase 开始/暂停ImageButton ibtnStop 停止ImageButton ibtnLast, 上一曲ImageButton ibtnNext; 下一曲 SeekBar MySeekBar; 进度条TextView MytvScreen;信息显示TextView tbTimer ;用于显示当前播放时间进度 使用说明:1、当进入音乐播放界面时,后台读取保存在本地的音乐列表文件,若不存在列表文件则自动扫描/sdcard/Music/目录下音频文件2、播放和暂停键复用,当第一次点击播放按钮,再次点击则为暂停,再次点击则继续之前的位置播放;停止按钮则是将当前播放进度设置为0并暂停播放;上一曲、下一曲按钮则实现歌曲切换功能3、进度条和tbTimer控件则实时显示当前播放音乐的时间进度,MytvScreen会显示当前正在播放歌曲的详细信息 2.4 视频文件播放 主要控件及功能ImageButton ibtnPlayAndPuase 开始/暂停ImageButton ibtnStop 停止ImageButton ibtnLast, 上一曲ImageButton ibtnNext; 下一曲 SeekBar MySeekBar; 进度条 VideoView MyVideoView; 用于播放视频的组件 使用说明:1、当进入视频播放界面时,后台读取保存在本地的视频列表文件,若不存在列表文件则自动扫描/sdcard/Video/目录下音频文件2、播放、暂停、上一部、下一步、停止以及进度条、时间显示条皆复用音乐界面的按钮,功能也与其一致,这里不赘述。 2.5 录音 主要控件及功能ImageButton ibtnPlayAndPuase 开始/暂停ImageButton ibtnStop 停止ImageButton ibtnLast, 上一曲ImageButton ibtnNext; 下一曲 SeekBar MySeekBar; 进度条 Button btnRecording; 录音开关 使用说明:1、当进入录音界面时,后台读取保存在本地的视频列表文件,若不存在列表文件则自动扫描/sdcard/MyRecords/目录下录音文件2、播放、暂停、上一部、下一步、停止以及进度条、时间显示条皆复用音乐界面的按钮,功能也与其一致,这里不赘述。3、点击开始录音按钮,则按钮显示为“录音中.”,此时播放等按钮无法使用,进度条中间会显示当前的录音时间。在次点击此按钮则停止录音。此时可点击播放按钮试听刚才的录音。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 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.WRAP_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.putInt("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);/停止(为了能使点击播放按钮能在此播放,这里不调用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.format("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.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);file.createNewFile();MyMediaRecorder.setOutputFile(file.getAbsolutePath();MyMediaRecorder.prepare();MyMediaRecorder.start();/停止录音MyMediaRecorder.reset(); 须加一个权限开发,在AndroidManifest.xml:<</SPAN>uses-permission android:name="android.permission.RECORD_AUDIO"></</SPAN>uses-permission><</SPAN>uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></</SPAN>uses-permission> 3.1.5、公共方法/1、滑动屏幕改变媒体音量/设置音量MyAudioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);/2、添加屏幕触发事件MyGestureDetector =new GestureDetector(this,new MyGestureDetectorListener(); MytvScreen.setOnTouchListener(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,float arg3) if(AudioManagerFlag=0)AudioManagerY=arg0.getY();AudioManagerX=arg0.getX();int IsSound=0;if(AudioManagerFlag>5)AudioManagerFlag=0;if(AudioManagerY-arg1.getY()<1)|(arg1.getY()-AudioManagerY<1)if(arg0.getX()>arg1.getX()/左滑动调小音量 MyAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER, 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 arg0) 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",Mediasp);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(rbtnId)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(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",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 = filesi; 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

    注意事项

    本文(2021-2022收藏资料基于Android的多媒体播放器课程设计报告.doc)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开