音乐播放:
MediaPlay播放音频:(资源占用量较高、延迟时间较长、不支持多个音频同时播放等。这些缺点决定了MediaPlayer在某些场合的使用情况不会很理想)。
prepare():准备播放;
start():开始或者恢复播放;
stop():停止播放;
pause():暂停播放;
static MediaPaly create(Context context, Uri uri):指定Uri装载音频文件。
static MediaPlay create(Context context, int resid):从resid资源id播放音频文件。
void setDataSource(String path):指定路径装载文件;
void setDataSource(FileDescriptor fd):指定装载fd代表的文件。
例子:
MediaPlayer mediaPlayer = new MediaPlayer();
if (mediaPlayer.isPlaying()) {
mediaPlayer.reset();//重置为初始状态
}
mediaPlayer.setDataSource("/mnt/sdcard/god.mp3");
mediaPlayer.prepare();
mediaPlayer.start();//开始或恢复播放
mediaPlayer.pause();//暂停播放
mediaPlayer.start();//恢复播放
mediaPlayer.stop();//停止播放
mediaPlayer.release();//释放资源
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {//播出完毕事件
@Override
public void onCompletion(MediaPlayer arg0) {
mediaPlayer.release();
}
});
mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {// 错误处理事件
@Override
public boolean onError(MediaPlayer player, int arg1, int arg2) {
mediaPlayer.release();
return false;
}
});
SoundPool播放音频:(android.media.SoundPool),顾名思义是声音池的意思,主要用于播放一些较短的声音片段,支持从程序的资源或文件系统加载。
SoundPool(int maxStreams,int streamType,int srcQuality):maxStreams多个声音,streamType类别,srcQuality品质。
int load(Context context,int resId,int priority):从resId加载声音;
int load(String path,int priority):从路径加载声音;
int play(int soundID,float leftVolume,float rightVolume,int priority,int loop,float rate):soundID播放哪个音频,leftVolume、rightVolume:左右音量,priority优先级,大的较高,loop是否循环:0不循环、1循环,rate播放比率,0.5-2,1为正常。