本例介绍了如何使用MediaPlayer类来播放声音或是视频。涉及的Activity有三个:

  • MediaPlayerDemo:主Activity,显示示例列表。
  • MediaPlayerDemo_Audio: 子Activity,用于播放声音,在Launcher中没有图标。
  • MediaPlayerDemo_Video: 子Activity,用于播放视频,在Launcher中没有图标。

其中MediaPlayerDemo 使用四个按钮用于显示例子列表:

MediaPlayer_第1张图片" src="https://img.it610.com/image/info5/535a59dec0094bdea5afc6015e12fba3.jpg" width="332" height="492" style="border:1px solid black;">

点击按钮后,触发子Activity,比如”Play video from local file” 将启动MediaPlayerDemo_Audio

Intent intent =  new Intent(MediaPlayerDemo.this.getApplication(),  MediaPlayerDemo_Audio.class); intent.putExtra(MEDIA, LOCAL_AUDIO); startActivity(intent);

运行这个例子,需要准备一些声音和视频资源,对于视频,可以使用手机自带的录像程序录一段视频。

修改MediaPlayerDemo_Audio.java 和MediaPlayerDemo_Video.java 中 的Path 赋值,比如在MediaPlayerDemo_Video.java 的case STREAM_VIDEO:下设置

path = “http://www.imobilebbs.com/download/android/boy.3gp”;

指定从Internet上某个位置在线播放视频的地址,同样可以设置其它声音或是视频对于的文件名,如果放在SD卡上,文件名可以为: /sd card/dcim/Camera/demo.3gp”。

有了这些准备工作,使用MediaPlayer 播放声音或是视频非常简单(用法类似于Java Me中的Player). MediaPlayer 支持从文件或是“流”中播放。MediaPlayer 可以处于多个状态,每个状态能够调用的函数是不同,下图为MediaPlayer 的状态转换图:

MediaPlayer_第2张图片" src="https://img.it610.com/image/info5/10ac838366b9497f9bc6b34483450c35.jpg" width="665" height="813" style="border:1px solid black;">

对应状态转换,MediaPlayer允许使用Listener来监视它的状态,具体请参见 http://developer.android.com/reference/android/media/MediaPlayer.html

下面结合本例介绍MediaPlayer 的几种用法:

播放本地文件:提供设置DataSource指向一个本地文件。

path = "/sd card/audio/test.mp3"; mMediaPlayer = new MediaPlayer(); mMediaPlayer.setDataSource(path); mMediaPlayer.prepare(); mMediaPlayer.start();

播放资源文件中的声音或是视频:


mMediaPlayer = MediaPlayer.create(this, R.raw.test_cbr); mMediaPlayer.start();


从本地或是网络播放视频:

path = "/sd card/dcim/camera/test.3gp"; //path = "http://www.imobilebbs.com/download/android/boy.3gp"; // Create a new media player and set the listeners mMediaPlayer = new MediaPlayer(); mMediaPlayer.setDataSource(path); mMediaPlayer.setDisplay(holder); mMediaPlayer.prepare(); mMediaPlayer.setOnBufferingUpdateListener(this); mMediaPlayer.setOnCompletionListener(this); mMediaPlayer.setOnPreparedListener(this); mMediaPlayer.setOnVideoSizeChangedListener(this); mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);


其中Path的可以指向本地文件或是网络资源,并可以设置Media的事件处理器。 MediaPlayer播放视频时需使用SurfaceView 来显示图像,可以参见Android ApiDemos示例解析(57):Graphics->CameraPreview

MediaPlayer_第3张图片" src="https://img.it610.com/image/info5/004be0c9483c47eca150cd341586a67f.jpg" width="320" height="480" style="border:1px solid black;">

更多相关文章

  1. android 通知播放系统声音
  2. Android(安卓)GIF图片显示
  3. GitHub上最著名的Android播放器开源项目大全
  4. Android手机应用开发(八) | 制作简单音乐播放器
  5. android 使用 service 实现音乐
  6. 全套Java、Android、HTML5、前端视频,史上最牛、最适合自学的全套
  7. TeleMCU视频会议之Android版本WebRTC 客户端支持
  8. 视频Android(安卓)studio1.3.1从菜鸟到高手--第一季-IT蓝豹
  9. Android(安卓)音视频流媒体相关知识导航

随机推荐

  1. Android(安卓)并发之CAS(原子操作)简单介绍
  2. Android(安卓)Webview 和Javascript交互,
  3. Android之相对布局
  4. Android调用输入法软键盘,返回输入的内容
  5. Android(安卓)API 中文(13) —— ToggleBut
  6. Android(安卓)已发行多年,移动 App 已经趋
  7. UI布局相关
  8. Android(安卓)已发行多年,移动 App 已经趋
  9. 环形ProgressBar特效
  10. 修改ListView 分割线Seperator line