android学习日记11--音频播放类

一、android 音频播放类
  MediaPlayer和SoundPool都可以用来播放音频
区别是MediaPlayer占用资源高,延迟时间高,播放长音乐的,并且不能同时播放多个音乐,
而SoundPool占用资源较少,没什么延迟,但要提前加载,只能播放1M以下的音频文件,能同时播放多个音乐
因此MediaPlayer一般用来播放背景音乐,而SoundPool主要用来播放游戏音效

1、MediaPlayer

 1 //获取实例:
 2 MediaPlayer.create(Context context,int resId);  //参数一:上下文对象,参数二:音乐资源ID,一般放在raw文件夹下。如果没有raw就自己创建一个  
 3 
 4 //常用方法:
 5 prepare();//为播放音乐文件做准备工作    
 6 start();//播放音乐   
 7 pause();//暂停音乐播放   
 8 stop();//停止音乐播放 
 9 
10 
11 //MediaPlayer其它常用函数
12 setLooping(boolean looping);//设置音乐是否循环播放,true为循环播放  
13 seekTo(int msec);//将音乐播放跳转到某一时间点,以毫秒为单位    
14 getDuration();//获取播放的音乐文件总时间长度   
15 getCurrentPosition();//获取当前播放音乐时间点 

注:pause()和stop(),主要的区别在于:暂停播放后可以调用start()继续播放,停止音乐播放后,需要调用prepare()再调用start()进行播放音乐。

当然不得不提AudioManager(音乐管理类,可以获取当前音乐大小以及最大音量)

1 // 获取实例
2 AudioManager am = new AudioManager(); 
3 
4 //常用方法:
5 setStreamVolume(imt streamType,int index,int flags) ;//设置音量大小,参数一:音乐类型(AudioManager.STREAM_MUSIC),参数二:音量大小,参数三:设置一个或者多个标志  
6 getStreamVolume(int streamType);//获取当前音量大小,参数 获取音量大小类型    
7 getStreamMaxVolume(int streamType);// 获取当前音量最大值,参数获取音量大小的类型  

 

2、SoundPool

 1 // 获取实例
 2 new  SoundPool(int maxStreams,int streamType,int srcQuality);   //参数一:允许同时播放的声音最大值,参数二:声音类型,参数三:声音品质
 3 
 4 //常用方法:
 5 int load(Context context,int resId,int priority);  //加载音乐文件,返回音乐ID(音乐流文件数据) 参数一:Context实例,参数二:音乐文件ID,参数三:标志优先考虑的声音。目前使用没有任何效果,只是具备兼容性价值。一般写个1就可以。   
 6 int play(int soundId,float leftVolume,float rightVolume,int proority,int loop,float rate);   //音乐播放,播放失败返回0,正常则返回非0值,参数一:加载后得到的音乐文件,参数二:音量的左声道 范围0.0~1.0  参数三:音量的右声道,范围 0.0~1.0  参数四:音乐流的优先级,0为最低优先级,参数五:音乐播放次数,-1表示无限循环,0表示正常一次,大于0则表示循环次数,参数六:播放速率,取值范围:0.5~2.0,1.0表示正常播放。    
 7 pause(int streamID);  //暂停音乐播放  ,参数:音乐文件加载后的流ID    
 8 stop(int streamID) ; //结束音乐播放 参数:音乐文件加载后的流ID    
 9 release();  //释放SoundPool的资源   
10 setLoop(int streamID,int loop);  //设置循环次数 参数一:音乐文件加载后的流ID,参数二:循环次数    
11 setReat(int streamID);  //设置播放速率    
12 setVolume(int streamID,float leftVolume,float rightVolume);   //设置音量大小,参数二:左声道音量,参数三:右声道音量    
13 setPriority(int streamID,int priority);   //设置流的优先级,参数二:优先级值。 

android学习日记11--音频播放类,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。