每日一贴,今天的内容关键字为对象方法
MediaPlayer类
静态构造方法
常用方法
绑定事件监听器
播放音频
1、播放应用的资源文件(res/raw/)
通过我们下面介绍的几个静态构造函数创立MediaPlayer对象
MediaPlayer mediaPlayer = MediaPlayer.create(MediaPlayerDemoActivity.this,
R.raw.a1);
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()等方法控制
AssetFileDescriptor fileDescriptor = assetManager
.openFd("a2.mp3");
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(),
fileDescriptor.getStartOffset(),
fileDescriptor.getLength());
mediaPlayer.prepare();<p> mediaPlayer.start();</p>
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();
4、播放网络上的音频文件
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();
当然也可以通过我们的另一种静态构造方法直接创立一个MediaPlayer对象
-
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://download.csdn.net/detail/jiahui524/3847987
http://blog.csdn.net/jiahui524
文章结束给大家分享下程序员的一些笑话语录: 程序员打油诗
写字楼里写字间,写字间里程序员;
程序人员写程序,又拿程序换酒钱。
酒醒只在网上坐,酒醉还来网下眠;
酒醉酒醒日复日,网上网下年复年。
但愿老死电脑间,不愿鞠躬老板前;
奔驰宝马贵者趣,公交自行程序员。
别人笑我忒疯癫,我笑自己命太贱;
不见满街漂亮妹,哪个归得程序员。