第三次课件(媒体播放器).ppt_第1页
第三次课件(媒体播放器).ppt_第2页
第三次课件(媒体播放器).ppt_第3页
第三次课件(媒体播放器).ppt_第4页
第三次课件(媒体播放器).ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Lesson3媒体播放器 第二阶段 长沙华瑞IT培训学校 课堂回顾 如何让控件动起来 自定义控件的原理自定义属性的两种方法实现音量控件 长沙华瑞IT培训学校 多媒体简介 多媒体是计算机和视频技术的结合 实际上它是两个媒体 声音和图像音频和视频的播放 我们都会用到MediaPlayer这个类进行播放 长沙华瑞IT培训学校 从源文件中播放 1 在项目的res raw目录下 放置一个android支持的多媒体文件 如MP3 会在R文件中生成对应的索引2 通过MediaPlayer create this R id et mp3 创建一个文件3 使用start播放 长沙华瑞IT培训学校 核心代码 mediaplayer MediaPlayer create this R raw music02 try mediaplayer start catch IllegalStateExceptione e printStackTrace 注 将muisc02 mp3文件放入res raw的文件夹中 长沙华瑞IT培训学校 从文件系统中播放 1 实例化一个MediaPlayer2 MediaPlayer setData方法调用 输入文件所在路径 3 调用MediaPlayer prepare进行准备4 调用start进行播放 长沙华瑞IT培训学校 核心代码 privatevoidcreateMusicFromPath Stringpath mediaplayer newMediaPlayer try mediaplayer setDataSource path mediaplayer prepare mediaplayer start catch Exceptione TODOAuto generatedcatchblocke printStackTrace 注 将音频文件放入在手机的sdcard 输入路径即可播放 长沙华瑞IT培训学校 播放网络音乐 1 获取音乐链接地址A 通过地址创建Uri 通过MediaPlayer create this uri 创建 获取player对象B new出MediaPlayer对象 通过MediaPlayer setData webPath 创建player对象 然后调用prepare 2 调用start方法进行播放 长沙华瑞IT培训学校 音乐播放器 长沙华瑞IT培训学校 多媒体状态 长沙华瑞IT培训学校 使用SeekBar实现控制播放位置功能 1 在视图xml中拖入SeekBar控件2 设置seekBar setMax mediaPlayer getDuration 为媒体的最大长度3 实现控件的OnSeekBarChangeListener接口4 实现onProgressChanged 当进度状态发生变化时候SeekBarseekBar intprogress 当前的进度booleanfromUser 是否由用户操作导致 publicvoidonProgressChanged SeekBararg0 intprogress booleanisFromUser if isFromUser mediaPlayer seekTo progress 长沙华瑞IT培训学校 实现进度条SeekBar自动移动效果 1 创建一个线程Runnablerun newRunnable publicvoidrun TODOAuto generatedmethodstub 获取当前播放音乐的位置if mediaPlayer null intcurrent mediaPlayer getCurrentPosition progressBar setProgress current if mediaPlayer isPlaying progressHandler postDelayed run 100 2 创建一个handler用于控制线程HandlerprogressHandler newHandler progressHandler post run 启动线程progressHandler postDelayed run 100 延时启动线程progressHandler removeCallbacks run 删除指定的Runnable对象 使线程对象停止运行 长沙华瑞IT培训学校 停止 暂停 重播功能实现 A 停止1 首先判断是否是playing调用player的stop方法2 同时要将还没有执行的线程从handler中移除progressHandler removeCallbacks run 3 将进度条的seekbar的进度设置为0B 暂停1 利用一个boolean变量判断是否是pause状态2 判断playing 调用play的pause方法 并且removeCallbacks3 如果是pause状态 则执行start 并且执行progressHandler post方法C 重播1 mediaPlayer seekTo 0 2 progressBar setProgress 0 长沙华瑞IT培训学校 实现进度条SeekBar缓存条效果 设置缓存更新事件mediaPlayer setOnBufferingUpdateListener newOnBufferingUpdateListener 实现更新方法publicvoidonBufferingUpdate MediaPlayerarg0 intarg1 在每次更新之后 设置缓存条的进度progressBar setSecondaryProgress arg1 progressBar getMax 100 长沙华瑞IT培训学校 MediaPlayer的状态 A 停止1 首先判断是否是playing调用player的stop方法2 同时要将还没有执行的线程从handler中移除progressHandler removeCallbacks run 3 将进度条的seekbar的进度设置为0B 暂停1 利用一个boolean变量判断是否是pause状态2 判断playing 调用play的pause方法 并且removeCallbacks3 如果是pause状态 则执行start 并且执行progressHandler post方法C 重播1 mediaPlayer seekTo 0 2 progressBar setProgress 0 长沙华瑞IT培训学校 核心代码 mediaPlayer reset 重置为idle状态mediaPlayer setDataSource file getAbsolutePath 设置播放的文件mediaPlayer prepare 缓冲mediaPlayer setOnPreparedListener newMyPreparedListener 设置缓冲完成监听mediaPlayer pause 暂停mediaPlayer start 播放音乐mediaPlayer stop 停止mediaPlayer seekTo progress 设置播放进度mediaPlayer release 释放关联的资源progressHandler postDelayed run 100 定时调用Runnable对象progressHandler post run 将Runnable对象发送到消息队列中progressHandler removeCallbacks run 将run从消息队列中移除 长沙华瑞IT培训学校 视频播放器 SurfaceView控件 长沙华瑞IT培训学校 SurfaceView控件 SurfaceView可以直接从内存或者DMA等硬件接口取得图像数据 是个非常重要的绘图容器SurfaceHolder用来操纵surface 处理它在Canvas上画的效果和动画 控制表面 大小 像素等 长沙华瑞IT培训学校 核心代码 SurfaceHoldersurfaceHolder surfaceView getHolder surfaceView的控制对象surfaceHolder setFixedSize 176 144 设置分辨率surfaceHolder setType SurfaceHolder SURFACE TYPE PUSH BUFFERS 不使用surfaceview自身的缓冲机制 把得到的数据直接输出surfaceHolder setKeepScreenOn true 保持屏幕的亮度 在播放前设置显示画面mediaPlayer setDisplay surfaceView getHolder 长沙华瑞IT培训学校 VideoView的使用 获取VideoView对象videoView VideoView this findViewById R id videoView 创建播放视频的URIUriuri Uri parse Environment getExternalStorageDirectory getAbsolutePath video mp4 设置URIvideoView setVideoURI uri uri 设置多媒体控制器videoView setMediaController newMediaController this videoView start 长沙华瑞IT培训学校 SoundPool android中可以用mediaplayer播放音乐 使用soundpool可以播一些短的反应速度要求高的声音 比如点击时候的音效 1 创建SoundPoolsoundPool newSoundPool 3 同时播放的流的最大数量AudioManager STREAM MUSIC 流的类型 一般为STREAM MUSIC0 采样率转化质量 当前无效果 使用0作为默认值 2 载入音效intid load Contextcontext intresId intprior

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论