Android之多媒体使用——MediaPlayer播放音频
来源:互联网 发布:交易软件登录不了 编辑:程序博客网 时间:2024/05/18 01:03
MediaPlayer类
静态构造方法
常用方法
绑定事件监听器
播放音频
1、播放应用的资源文件(res/raw/)
通过我们上面介绍的几个静态构造函数创建MediaPlayer对象
2、播放应用的原始资源文件(assets)1) 通过Context.getAssets()方法获得AssetManager对象
2) 通过AssetManager对象的openFd(String name)方法打开指定的原生资源文件夹,返回一个AssetFileDescriptor对象
3) 通过AssetFileDescriptor的getFileDescriptor()得到一个FileDescriptor对象
4) 通过public void setDataSource (FileDescriptor fd, long offset, long length)来创建MediaPlayer对象
5) 调用MediaPlayer.prepare()方法准备音频
6) 调用MediaPlayer的start()、pause()、stop()等方法控制
2) 调用MediaPlayer对象的prepare()方法准备音频
3) 调用MediaPlayer的start()、pause()、stop()等方法控制
4、播放网络上的音频文件
1) 根据网络上的地址创建Uri对象
2) 通过public void setDataSource (Context context, Uri uri)设置音频来源装载音频文件
3) 调用MediaPlayer对象的prepare()方法准备音频
4) 调用MediaPlayer的start()、pause()、stop()等方法控制当然也可以通过我们的另一种静态构造方法直接创建一个MediaPlayer对象
实现效果:
贴上源代码:
源代码下载:http://download.csdn.net/detail/jiahui524/3847987
http://blog.csdn.net/jiahui524
静态构造方法
常用方法
绑定事件监听器
播放音频
1、播放应用的资源文件(res/raw/)
通过我们上面介绍的几个静态构造函数创建MediaPlayer对象
MediaPlayer mediaPlayer = MediaPlayer.create(MediaPlayerDemoActivity.this, R.raw.a1);
2) 通过AssetManager对象的openFd(String name)方法打开指定的原生资源文件夹,返回一个AssetFileDescriptor对象
3) 通过AssetFileDescriptor的getFileDescriptor()得到一个FileDescriptor对象
4) 通过public void setDataSource (FileDescriptor fd, long offset, long length)来创建MediaPlayer对象
5) 调用MediaPlayer.prepare()方法准备音频
6) 调用MediaPlayer的start()、pause()、stop()等方法控制
AssetFileDescriptor fileDescriptor = assetManager .openFd("a2.mp3"); mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(), fileDescriptor.getStartOffset(), fileDescriptor.getLength()); mediaPlayer.prepare();<p> mediaPlayer.start();</p>
3、播放外部存储上的音频资源文件(sdcard)
1) 创建MediaPlayer对象,通过MediaPlayer对象的setDataSource(String path)方法装载预定的音频文件2) 调用MediaPlayer对象的prepare()方法准备音频
3) 调用MediaPlayer的start()、pause()、stop()等方法控制
mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource("/mnt/sdcard/a3.mp3"); mediaPlayer.prepare(); mediaPlayer.start();
1) 根据网络上的地址创建Uri对象
2) 通过public void setDataSource (Context context, Uri uri)设置音频来源装载音频文件
3) 调用MediaPlayer对象的prepare()方法准备音频
4) 调用MediaPlayer的start()、pause()、stop()等方法控制
mediaPlayer = new MediaPlayer(); // 通过Uri解析一个网络地址 Uri uri = Uri .parse("http://zhangmenshiting2.baidu.com/data2/music/9138619/9138619.mp3?xcode=dd0d0d0df7218eb9a79c7fd72cefb648&mid=0.18926789458694"); mediaPlayer.setDataSource(MediaPlayerDemoActivity.this, uri); mediaPlayer.prepare(); mediaPlayer.start();
-
Uri uri = Uri .parse("http://zhangmenshiting2.baidu.com/data2/music/9138619/9138619.mp3?xcode=dd0d0d0df7218eb9a79c7fd72cefb648&mid=0.18926789458694"); mediaPlayer = MediaPlayer.create(MediaPlayerDemoActivity.this, uri); mediaPlayer.start();
贴上源代码:
package com.jiahui.media; import java.io.IOException; public class MediaPlayerDemoActivity extends Activity implements OnClickListener { private Button btnAppStart, btnAssetsStart, btnSdcardStart, btnNetworkStart; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btnAppStart = (Button) this.findViewById(R.id.btnAppStart); btnAssetsStart = (Button) this.findViewById(R.id.btnAssetsStart); btnSdcardStart = (Button) this.findViewById(R.id.btnSdcardStart); btnNetworkStart = (Button) this.findViewById(R.id.btnNetworkStart); btnAppStart.setOnClickListener(this); btnAssetsStart.setOnClickListener(this); btnSdcardStart.setOnClickListener(this); btnNetworkStart.setOnClickListener(this); } @Override public void onClick(View v) { MediaPlayer mediaPlayer = null; switch (v.getId()) { case R.id.btnAppStart: System.out.println("---播放应用的资源文件----"); // 使用raw下的资源文件创建MediaPlayer对象 mediaPlayer = MediaPlayer.create(MediaPlayerDemoActivity.this, R.raw.a1); mediaPlayer.start(); break; case R.id.btnAssetsStart: System.out.println("---播放assest的资源文件----"); AssetManager assetManager = this.getAssets(); try { AssetFileDescriptor fileDescriptor = assetManager .openFd("a2.mp3"); mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(), fileDescriptor.getStartOffset(), fileDescriptor.getLength()); mediaPlayer.prepare(); mediaPlayer.start(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } break; case R.id.btnSdcardStart: System.out.println("---播放SDcard上的文件---"); try { mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource("/mnt/sdcard/a3.mp3"); mediaPlayer.prepare(); mediaPlayer.start(); } catch (Exception e) { } break; case R.id.btnNetworkStart: System.out.println("播放网络上的音频"); // http://zhangmenshiting2.baidu.com/data2/music/9138619/9138619.mp3? // xcode=dd0d0d0df7218eb9a79c7fd72cefb648&mid=0.18926789458694 try { // mediaPlayer = new MediaPlayer(); // 通过Uri解析一个网络地址 Uri uri = Uri .parse("http://zhangmenshiting2.baidu.com/data2/music/9138619/9138619.mp3?xcode=dd0d0d0df7218eb9a79c7fd72cefb648&mid=0.18926789458694"); mediaPlayer.setDataSource(MediaPlayerDemoActivity.this, uri); // mediaPlayer.prepare(); // 也可以直接通过这种方式装载网络上的音频文件 mediaPlayer = MediaPlayer.create(MediaPlayerDemoActivity.this, uri); mediaPlayer.start(); } catch (Exception e) { // TODO: handle exception } break; default: break; } } }
http://blog.csdn.net/jiahui524
- Android之多媒体使用——MediaPlayer播放音频
- Android之多媒体--使用MediaPlayer播放音频
- 24、从头学Android之多媒体--使用MediaPlayer播放音频
- 从头学Android之多媒体--使用MediaPlayer播放音频
- 01.Android之多媒体--使用MediaPlayer播放音频01
- 01.Android之多媒体--使用MediaPlayer播放音频02
- 24、从头学Android之多媒体--使用MediaPlayer播放音频
- Android之多媒体--使用SoundPool播放音频
- android开发笔记之多媒体—MediaPlayer + SurfaceView播放视频
- android开发笔记之多媒体—播放音频(音乐)
- Android之多媒体--使用MediaPlayer和SurfaceView播放视频
- 25、从头学Android之多媒体--使用SoundPool播放音频
- 25、从头学Android之多媒体--使用SoundPool播放音频
- android使用MediaPlayer播放音频
- Android 使用MediaPlayer播放音频
- 28、从头学Android之多媒体--使用MediaPlayer和SurfaceView播放视频
- 28、从头学Android之多媒体--使用MediaPlayer和SurfaceView播放视频
- 从头学Android之多媒体--使用MediaPlayer和SurfaceView播放视频
- 前谷歌高管给初入职场新人的14条忠告
- ShellExecute与ShellExecuteEx的用法
- VC2008编译libthrift
- java中常见的一些错误
- Ecmall 商品浏览历史
- Android之多媒体使用——MediaPlayer播放音频
- 第七次C程序上机报告
- posix多线程有感--线程高级编程(线程和fork,exec)
- Android提高第二十一篇之MediaPlayer播放网络视频
- 关于页面隐藏传值
- 程序猿的一些幽默 程序猿段子大全
- matlab GUI读取图片提示CDataMapping什么的
- Android提高第二十篇之MediaPlayer播放网络音频
- html点击按钮后,显示层,锁定背景