最近在写一款内置简单的音频播放器的应用,写一点关于音频播放器一些要注意的事项

1、关于按键KeyEvent.KEYCODE_BACK的处理,一定要对MediaPlayer对象是否正在播放以及是否为空(null&&isplay()),进行判断,并对其进行释放

2、关于播放按钮的处理,一般情况下,点击播放按钮后,音频开始播放,播放按钮的状态应该会变成暂停图标或文字,建议可以写几个常量作控制状态,点击暂停按钮后,按钮状态变为暂停状态(pause),图标又变为播放按钮的图标

3、因为播放按钮的特殊性,建议设置成static静态的,以确定在播放类的对播放进度监听时,如果播放完,按钮图标要重新回到播放图标(因为点击播放按钮后,图标已经变成暂停图标了)

4、上一首、下一首的处理,要改变点击播放按钮时,重新加载的音频文件

5、建议最好对音频播放的各个状态进行监听,MediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener()——音频是否出错,MediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener()——音频是否开始缓冲,

MediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener()——音频是否开始准备,

MediaPlayer.setOnCompletionListener(new OnCompletionListener()——音频是否播放完成,这几个监听也可以利于我们进行对程序进行排错。

6、音频播放最好单独开一个线程,否则你不想自己的应该因为只有一个线程被阻塞吧,而不能进行其他操作吧

7、因为MediaPlayer本身的原因,你调用start()播放方法的时候,他总是会延迟那么1-2秒,所以你可以用seekTo()方法跳过1000ms

8、有时候,如果不处理,播放音乐默认是正在播放的时候,才能对其音量的大小,作用音量键调整,那么我们可以用下面这句话,获取音频服务,直接去控制,音乐没有播放的时候,也可以调整好音量的大小

AudioManager am = (AudioManager)Context.getSystemService(Context.AUDIO_SERVICE);

/ /获取音频服务然后强转成一个音频管理器,后面方便用来控制音量大小用

Activity.setVolumeControlStream(AudioManager.STREAM_MUSIC);
// 设定调整音量为媒体音量,当暂停播放的时候调整音量就不会再默认调整铃声音量了

9、针对音乐播放的方法,一定要注意一点,就是在对MediaPlayer对象初始化过,之后,一定要执行一下reset(),重置MediaPlayer对象为初始化状态

posted on 2011-12-18 20:31  Super小宝  阅读(158)  评论(0编辑  收藏  举报