四年级信息技术上册第9课媒体播放器-精选教学PPT课件1冀教版.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《四年级信息技术上册第9课媒体播放器-精选教学PPT课件1冀教版.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 四年级 信息技术 上册 媒体播放器 精选 教学 PPT 课件 冀教版 下载 _四年级_冀教版_信息_小学
- 资源描述:
-
1、Lesson3媒体播放器第二阶段第二阶段课堂回顾1. 如何让控件动起来?2. 自定义控件的原理3. 自定义属性的两种方法4. 实现音量控件多媒体简介v 多媒体是计算机和视频技术的结合,实际上它是两个媒体:声音和图像v 音频和视频的播放,我们都会用到MediaPlayer这个类进行播放从源文件中播放1,在项目的res/raw目录下,放置一个android支持的多媒体文件,如MP3,会在R文件中生成对应的索引2,通过MediaPlayer.create(this, R.id.et_mp3)创建一个文件3,使用start播放核心代码mediaplayer = MediaPlayer.create(t
2、his, R.raw.music02);try mediaplayer.start(); catch (IllegalStateException e) e.printStackTrace(); 注:将muisc02.mp3文件放入res/raw的文件夹中从文件系统中播放1,实例化一个MediaPlayer2,MediaPlayer.setData方法调用(输入文件所在路径)3,调用MediaPlayer.prepare进行准备4,调用start进行播放核心代码private void createMusicFromPath(String path)mediaplayer = new Medi
3、aPlayer();try mediaplayer.setDataSource(path);mediaplayer.prepare();mediaplayer.start(); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace(); 注:将音频文件放入在手机的sdcard,输入路径即可播放播放网络音乐1,获取音乐链接地址A,通过地址创建Uri,通过 MediaPlayer.create(this, uri)创建,获取player对象B,new出MediaPlayer对象,通过MediaPlayer.se
4、tData(webPath)创建player对象,然后调用prepare();2,调用start方法进行播放音乐播放器多媒体状态使用SeekBar实现控制播放位置功能1,在视图xml中拖入SeekBar控件2,设置seekBar.setMax(mediaPlayer.getDuration()为媒体的最大长度3,实现控件的OnSeekBarChangeListener接口4,实现onProgressChanged(/当进度状态发生变化时候 SeekBar seekBar, int progress,/当前的进度 boolean fromUser)/是否由用户操作导致public void on
5、ProgressChanged(SeekBar arg0, int progress, boolean isFromUser) if(isFromUser)mediaPlayer.seekTo(progress);实现进度条SeekBar自动移动效果/1,创建一个线程创建一个线程Runnable run = new Runnable() public void run() / TODO Auto-generated method stub/获取当前播放音乐的位置获取当前播放音乐的位置if(mediaPlayer != null)int current = mediaPlayer.getCurr
6、entPosition();progressBar.setProgress(current);if(mediaPlayer.isPlaying()progressHandler.postDelayed(run,100);/2,创建一个创建一个handler用于控制线程用于控制线程Handler progressHandler = new Handler();progressHandler.post(run);/启动线程启动线程progressHandler.postDelayed(run,100);/延时启动线程延时启动线程progressHandler.removeCallbacks(run
7、);/删除指定的删除指定的Runnable对象,使线程对象停止运行。对象,使线程对象停止运行。停止,暂停,重播功能实现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方
8、法C,重播1,mediaPlayer.seekTo(0),2,progressBar.setProgress(0);实现进度条SeekBar缓存条效果/设置缓存更新事件mediaPlayer.setOnBufferingUpdateListener(new OnBufferingUpdateListener()/实现更新方法public void onBufferingUpdate(MediaPlayer arg0, int arg1) /在每次更新之后,设置缓存条的进度progressBar.setSecondaryProgress(arg1*progressBar.getMax()/100
9、););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,progres
10、sBar.setProgress(0);核心代码v mediaPlayer.reset();/重置为idle状态v mediaPlayer.setDataSource(file.getAbsolutePath();/设置播放的文件v mediaPlayer.prepare();/缓冲v mediaPlayer.setOnPreparedListener(new MyPreparedListener();/设置缓冲完成监听v mediaPlayer.pause();/暂停v mediaPlayer.start();/播放音乐v mediaPlayer.stop(); ();/停止v mediaP
11、layer.seekTo(progress);/设置播放进度v mediaPlayer.release();/释放关联的资源v progressHandler.postDelayed(run,100);/定时调用Runnable对象v progressHandler.post(run);/将Runnable对象发送到消息队列中v progressHandler.removeCallbacks(run);/将run从消息队列中移除视频播放器SurfaceView控件SurfaceView控件控件vSurfaceView 可以直接从内存或者DMA等硬件接口取得图像数据,是个非常重要的绘图容器vSu
12、rfaceHolder 用来操纵surface,处理它在Canvas上画的效果和动画,控制表面,大小,像素等核心代码SurfaceHolder surfaceHolder = surfaceView.getHolder();/surfaceView的控制对象surfaceHolder.setFixedSize(176, 144);/设置分辨率surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);/不使用surfaceview自身的缓冲机制,把得到的数据直接输出surfaceHolder.setKeepScreenOn(tr
13、ue);/保持屏幕的亮度/在播放前设置显示画面mediaPlayer.setDisplay(surfaceView.getHolder();VideoView的使用/获取VideoView对象videoView = (VideoView) this.findViewById(R.id.videoView);/创建播放视频的URIUri uri = Uri.parse(Environment.getExternalStorageDirectory().getAbsolutePath()+/video.mp4);/设置URIvideoView.setVideoURI(uri);/uri/设置多媒体
14、控制器videoView.setMediaController(new MediaController(this);videoView.start();SoundPoolandroid中可以用mediaplayer播放音乐,使用soundpool可以播一些短的反应速度要求高的声音,比如点击时候的音效/1,创建SoundPoolsoundPool = new SoundPool(3,/同时播放的流的最大数量 AudioManager.STREAM_MUSIC,/ 流的类型,一般为STREAM_MUSIC0);/采样率转化质量,当前无效果,使用0作为默认值 /2,载入音效int id = load
15、(Context context, int resId, int priority) /从APK资源载入 /3,通过id播放音效soundPool.play(soundMap.get(id),/音频的id100, /左边声音大小100, /右边声音大小1, /优先级别0, /循环次数1);/速率,1为正常速度本章总结1. 如何使用MediaPlayer播放MP32. 多媒体有哪些状态3. 使用seekBar4. 如何使用SurfaceView播放视频?作业1. 完成音乐播放器和视频播放器知识就是力量知识就是力量你知道吗?我昨晚又梦到你了,梦中的你一如既往地帅气,你背对着我,坐在那家我们常去的咖
16、啡馆常坐的位置,我进门径直朝着那个位置走去,却看到了你,我就愣在那儿停顿了好久,然后你转过头来看到了我,你朝我笑,我鼓起勇气试着向你走近,却始终走不到那你知道吗?我昨晚又梦到你了,梦中的你一如既往地帅气,你背对着我,坐在那家我们常去的咖啡馆常坐的位置,我进门径直朝着那个位置走去,却看到了你,我就愣在那儿停顿了好久,然后你转过头来看到了我,你朝我笑,我鼓起勇气试着向你走近,却始终走不到那个位置,眼睁睁地看着你近在咫尺,却偏偏难以靠近,最后直到你消失不见。个位置,眼睁睁地看着你近在咫尺,却偏偏难以靠近,最后直到你消失不见。我猛然醒来,睁眼,漆黑,宁静,我放空了几秒,然后才终于认清你已经离开我的事实
展开阅读全文