MediaPlayer播放不同来源的音频文件

1、播放应用的资源文件(在/res/raw中的)

播放应用的资源文件需要两步:
1:调用MediaPlayer的create(Context context,int resid)方法,加载指 定资源文件;
2:调用MediaPlayer的start()、stop()、pause()等控制播放方法;

实例代码:

MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.sound);
mediaPlayer.start();

2、播放应用的原始资源文件

1:调用Context的getAsserts()方法,获取应用的AssetManager;
2:调用AssetManager的openFd(String fileName)打开指定的原生资源,该方法返回AssetFileDescriptor ;
3:调用AssetFileDescriptor 的getFileDescriptor()、getStartOffset()、getLength()获取音频文件的FileDescriptor、开始位置、长度;
4:创建MediaPlayer对象,并调用MediaPlayer对象的setDataSource(FileDescriptor fd, long offset, long length)来装载音频资源;
5:调用MediaPlayer的prepare()准备音频;
6:调用MediaPlayer的start(),stop(),pause()控制音频的播放;

实例代码:

AssetManager assetManager = getAssets();
AssetFileDescriptor afd = assetManager.openFd("music");
FileDescriptor fd = afd.getFileDescriptor();
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(fd,afd.getStartOffset(), afd.getLength());
mediaPlayer.prepare();
mediaPlayer.start();

3、播放外部存储上的音频文件

1:创建MediaPlayer对象,并调用MediaPlayer对象的setDataSource(String path)装载指定的音频文件;
2:调用MediaPlayer对象的prepare()方法准备音频;
3:调用MediaPlayer对象的start()、stop()、pause()等方法控制音频的播放;

实例代码:

File file = new File("/mnt/sdcard/sound.mp4");
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(file.getAbsolutePath());
mediaPlayer.prepare();
mediaPlayer.start();

4、播放来自网络的音频文件

播放来自网络的音频文件有两种方式:
1:直接调用MediaPlayer的静态方法create(Context context, Uri uri);
2:调用MediaPlayer的setDataSource(Context context, Uri uri)装载指定Uri对应的Uri文件;

以第二种方式播放来自网络的音频文件的步骤如下:
1:根据网络上的音频文件所在的位置创建Uri对象;
2:创建MediaPlayer对象,并调用MediaPlayer对象的setDatasetDataSource(Context context, Uri uri)方法装载Uri对应的音频文件;
3:调用MediaPlayer对象的prepare()方法准备音频;
4:调用MediaPlayer对象的start()、stop()、pause()等方法控制音频的播放;

实例代码:

Uri uri = Uri.parse("http://127.0.0.1:8080/myserver/sound.mp4");
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(this, uri);
mediaPlayer.prepare();
mediaPlayer.start();
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值