Android背景音乐功能
效果图:
代码 分析:
public class AudioService extends Service implements
MediaPlayer.OnCompletionListener {
MediaPlayer player;
private final IBinder binder = new AudioBinder();
@Override
public IBinder onBind(Intent intent) {
return binder;
}
public void onCreate() {
super.onCreate();
player = MediaPlayer.create(this, R.raw.qq);
player.setOnCompletionListener(this);
player.setLooping(true);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
if (!player.isPlaying()) {
new MusicPlayThread().start();
}
else player.isPlaying();
return START_STICKY;
}
public void onCompletion(MediaPlayer mp) {
stopSelf();
}
public void onDestroy() {
super.onDestroy();
if (player.isPlaying()) {
player.stop();
}
player.release();
}
public class AudioBinder extends Binder {
public AudioService getService() {
return AudioService.this;
}
}
private class MusicPlayThread extends Thread {
public void run() {
if (!player.isPlaying()) {
player.start();
}
}
}
}
<strong><span style="font-size:32px;">点击自动播放并应用后,下次打开软件自动播放音乐。</span></strong>
<strong></strong><pre name="code" class="java"><span style="font-size:18px;">public void Click(View view){
if(ckName.isChecked()){
SharedPreferences sharedPreferences=getSharedPreferences("data",MODE_PRIVATE);
Editor editor=sharedPreferences.edit();
editor.putBoolean("press", true);
editor.commit();
}
else{
SharedPreferences sharedPreferences=getSharedPreferences("data",MODE_PRIVATE);
Editor editor=sharedPreferences.edit();
editor.putBoolean("press", false);
editor.commit();
}
}
public void paly(View view){
startService(new Intent(this,AudioService.class));
}
public void close(View view){
stopService(new Intent(this,AudioService.class));
}
@Override
protected void onResume() {
super.onResume();
SharedPreferences sharedPreferences=getSharedPreferences("data",MODE_PRIVATE);
if(sharedPreferences.getBoolean("press",true)){
ckName.setChecked(true);
startService(new Intent(this,AudioService.class));
}
}</span><span style="font-size:32px;">
</span>