最近试着做了一个简单的音乐播放器,下面是一些自己的小小总结:
1、我用的是MediaPlayer来播放,掌握它的生命周期很重要
2、在准备播放的时候,即由Initialized变成Prepared的时候,推荐使用异步的prepareAsnc()方法,我们可以在监听回调方法onPrepared()中去执行start()方法。
3、在开始准备播放一个音乐(prepareAsync())之前,应该确保应用获得声音焦点,否则就没有必要再执行下去了。调用AudioManager 的requestAudioFocus(Context,AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN)方法可以申请获得焦点。
4、播放音乐的任务应该由一个服务来执行,我们应该先把这个服务启动起来,然后在播放界面刚刚创建的时候去绑定这个服务,通过返回回来的Ibinder来拿到操作播放服务的句柄。