android 语音播放
MediaPlayer可以播放本地或者网络的音频,流程如下:
Uri myUri = ....; // initialize Uri here
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(getApplicationContext(), myUri);
mediaPlayer.prepare();
mediaPlayer.start();
注意,mediaPlayer的prepare最好不要在主线程中使用,以免发生卡顿。如果要在主线程中用,应该使用prepareAsync,并设置回调接口。
音频播放完,记得要释放资源:
mediaPlayer.release();
mediaPlayer = null;
当手机休眠的时候,可能会停止诸如WiFi,CPU的一些模块。如果这个时候你的程序仍要在后台运行播放音乐,就需要放置一些功能诸如WiFi休眠。
Wake Lock 的作用就是在手机休眠时,通知手机你的程序仍然在使用某些模块,不要试图去关闭它们。
当初始化时,调用 mMediaPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK); 可以保持CPU不被关闭。然而,这里仅仅保证了CPU的运行。如果播放的是流媒体音乐,需要使用wifi,那么还要获取wifi loc