android 学习笔记 播放音频 和视频
来源:互联网 发布:mysql offset 效率 编辑:程序博客网 时间:2024/05/16 13:37
MediaPlayer类中一些较为常用的控制方法。
方法名 功能描述
setDataSource() 设置要播放的音频文件的位置。
prepare() 在开始播放之前调用这个方法完成准备工作。
start() 开始或继续播放音频。
pause() 暂停播放音频。
reset() 将MediaPlayer对象重置到刚刚创建的状态。
seekTo() 从指定的位置开始播放音频。
stop() 停止播放音频。调用这个方法后的MediaPlayer对象无法再播放音频。
release() 释放掉与MediaPlayer对象相关的资源。
isPlaying() 判断当前MediaPlayer是否正在播放音频。
getDuration() 获取载入的音频文件的时长。
简单播放音乐的代码 如下所示
public class MainActivity extends Activity implements OnClickListener { private Button play; private Button pause; private Button stop; private MediaPlayer mediaPlayer = new MediaPlayer(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); play = (Button) findViewById(R.id.play); pause = (Button) findViewById(R.id.pause); stop = (Button) findViewById(R.id.stop); play.setOnClickListener(this); pause.setOnClickListener(this); stop.setOnClickListener(this); initMediaPlayer(); // 初始化MediaPlayer } private void initMediaPlayer() { try { File file= new File(Environment.getExternalStorageDirectory(),"music.mp3"); mediaPlayer.setDataSource(file.getPath()); // 指定音频文件的路径 mediaPlayer.prepare(); // 让MediaPlayer进入到准备状态 } catch (Exception e) { e.printStackTrace(); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.play: if (!mediaPlayer.isPlaying()) { mediaPlayer.start(); // 开始播放 } break; case R.id.pause: if (mediaPlayer.isPlaying()) { mediaPlayer.pause(); // 暂停播放 } break; case R.id.stop: if (mediaPlayer.isPlaying()) { mediaPlayer.reset(); // 停止播放 initMediaPlayer(); } break; default: break; } } @Override protected void onDestroy() { super.onDestroy(); if (mediaPlayer != null) { mediaPlayer.stop(); mediaPlayer.release(); } } }
简单了解了上述方法后,我们再来梳理一下MediaPlayer的工作流程。首先需要创建出一个MediaPlayer对象,然后调用setDataSource()方法来设置音频文件的路径,再调用prepare() 方法使MediaPlayer进入到准备状态,接下来调用start()方法就可以开始播放音频,调用pause() 方法就会暂停播放,调用reset()方法就会停止播放。
播放视频
播放视频文件其实并不比播放音频文件复杂,主要是使用VideoView类来实现的。这个类将视频的显示和控制集于一身,使得我们仅仅借助它就可以完成一个简易的视频播放器。 VideoView的用法和MediaPlayer也比较类似,主要有以下常用方法:
方法名 功能描述
setVideoPath() 设置要播放的视频文件的位置。
start() 开始或继续播放视频。
pause() 暂停播放视频。
resume() 将视频重头开始播放。
seekTo() 从指定的位置开始播放视频。
isPlaying() 判断当前是否正在播放视频。
getDuration() 获取载入的视频文件的时长。
简单的播放视频代码 如下所示
public class MainActivity extends Activity implements OnClickListener { private VideoView videoView; private Button play; private Button pause; private Button replay; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); play = (Button) findViewById(R.id.play); pause = (Button) findViewById(R.id.pause); replay = (Button) findViewById(R.id.replay); videoView = (VideoView) findViewById(R.id.video_view); play.setOnClickListener(this); pause.setOnClickListener(this); replay.setOnClickListener(this); initVideoPath(); } private void initVideoPath() { File file = new File(Environment.getExternalStorageDirectory(), "movie.3gp"); videoView.setVideoPath(file.getPath()); // 指定视频文件的路径 } @Override public void onClick(View v) { switch (v.getId()) { case R.id.play: if (!videoView.isPlaying()) { videoView.start(); // 开始播放 } break; case R.id.pause: if (videoView.isPlaying()) { videoView.pause(); // 暂时播放 } break; case R.id.replay: if (videoView.isPlaying()) { videoView.resume(); // 重新播放 } break; } } @Override protected void onDestroy() { super.onDestroy(); if (videoView != null) { videoView.suspend(); } } }
- android 学习笔记 播放音频 和视频
- Android 播放音频和视频
- Android播放音频和视频
- 在Android中播放音频和视频--值得学习
- 在Android中播放音频和视频
- 在Android中播放音频和视频
- 在Android中播放音频和视频
- 在Android中播放音频和视频
- Android中的多媒体音频和视频播放
- Android视频音频播放
- 音频和视频播放
- 音频播放和视频播放
- Android视频播放学习笔记
- 安卓学习笔记2——视频和音频的播放
- Krpano学习:视频音频播放
- Android播放本地视频音频
- Android音视频-音频播放
- JavaFX:播放视频和音频
- 日经社説 20150827 中国発の市場動揺に警戒怠るな
- _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)错误
- MySQL中可为空的字段设置为NULL还是NOT NULL
- PS学习笔记------图层样式
- js json转excel
- android 学习笔记 播放音频 和视频
- Sublime Text3 快捷键汇总及设置快捷键配置环境变量(转)
- Android 离线播放 (HLS)m3u8文件
- Ubuntu配置FTP,SSH,NFS服务
- 2015.6.15(nut-console结合SpringMVC)
- block一点也不神秘————如何利用block进行回调
- 使用代码修改材质的属性
- Bootstarp3 模态对话框
- mysql修改表、字段、库的字符集