码迷,mamicode.com
首页 > 移动开发 > 详细

【Android】播放音频的几种方式介绍

时间:2017-12-15 15:40:13      阅读:417      评论:0      收藏:0      [点我收藏+]

标签:div   介绍   tle   tor   get   pat   blog   ima   循环播放   

接下来笔者介绍一下Android中播放音频的几种方式,android.media包下面包含了Android开发中媒体类,当然笔者不会依次去介绍,下面介绍几个音频播放中常用的类:

1.使用MediaPlayer播放音频

MediaPlayer的功能很强大,下面附上一张该类封装音频的生命周期图:

技术分享图片

MediaPlayer支持AAC、AMR、FLAC、MP3、MIDI、OGG、PCM等格式,MediaPlayer可以通过设置元数据和播放源来音频。

 

1.1播放Raw文件夹下面音频的元数据

//直接创建,不需要设置setDataSource
MediaPlayer mMediaPlayer;
mMediaPlayer=MediaPlayer.create(this, R.raw.audio);
mMediaPlayer.start();

 

1.2通过设置播放源来播放音频文件

setDataSource(String path)

//从sd卡中加载音乐
mMediaPlayer.setDataSource("../music/samsara.mp3") ;
//从网路加载音乐
mMediaPlayer.setDataSource("http://..../xxx.mp3") ;
//需使用异步缓冲
mMediaPlayer.prepareAsync() ;

 

setDataSource(FileDescriptor fd)

//需将资源文件放在assets文件夹
 AssetFileDescriptor fd = getAssets().openFd("samsara.mp3");
 mMediaPlayer.setDataSource(fd)
 mMediaPlayer.prepare() ;

 Ps:此方法系统需大于等于android 

 

setDataSource(Context context,Uri uri)

这个方法没什么好说的,一般通过ContentProvider获取Android系统提供
的共享music获取uri,然后设置数据播放

 

setDataSource(FileDescptor fd,long offset,long length)

 //需将资源文件放在assets文件夹
 AssetFileDescriptor fd = getAssets().openFd("samsara.mp3");
 mMediaPlayer.setDataSource(fd, fd.getStartOffset(), fd.getLegth())
 mMediaPlayer.prepare() ;

设置完数据源,不要忘记prepare(),尽量使用异步prepareAync(),这样不会阻塞UI线程。

 

1.3 常用的方法

start();//开始播放
pause();//暂停播放
reset()//清空MediaPlayer中的数据
setLooping(boolean);//设置是否循环播放
seekTo(msec)//定位到音频数据的位置,单位毫秒
stop();//停止播放
relase();//释放资源

 

2.使用SoundPool播放音频

 

3.使用AndroidTrack播放音频

 

4.使用AsyncPlayer播放音频

 

5.使用JetPlayer播放音频

 

6.使用Ringtone播放音频

 

7.总结

 

【Android】播放音频的几种方式介绍

标签:div   介绍   tle   tor   get   pat   blog   ima   循环播放   

原文地址:http://www.cnblogs.com/HDK2016/p/8043247.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!