Update RandomMusicPlayer sample for new RemoteControlClient APIs, also add media button support
Change-Id: Ia6ad08dd0ec1e67f1cffa2d6cfca2120ee0a96c7
This commit is contained in:
@@ -19,22 +19,53 @@ package com.example.android.musicplayer;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.widget.Toast;
|
||||
|
||||
/**
|
||||
* Receives broadcasted intents. In particular, we are interested in the
|
||||
* android.media.AUDIO_BECOMING_NOISY intent, which is broadcast, for example, when the user
|
||||
* disconnects the headphones. This class works because we are declaring it in a <receiver>
|
||||
* tag in AndroidManifest.xml.
|
||||
* android.media.AUDIO_BECOMING_NOISY and android.intent.action.MEDIA_BUTTON intents, which is
|
||||
* broadcast, for example, when the user disconnects the headphones. This class works because we are
|
||||
* declaring it in a <receiver> tag in AndroidManifest.xml.
|
||||
*/
|
||||
public class MusicIntentReceiver extends BroadcastReceiver {
|
||||
@Override
|
||||
public void onReceive(Context ctx, Intent intent) {
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (intent.getAction().equals(android.media.AudioManager.ACTION_AUDIO_BECOMING_NOISY)) {
|
||||
Toast.makeText(ctx, "Headphones disconnected.", Toast.LENGTH_SHORT).show();
|
||||
Toast.makeText(context, "Headphones disconnected.", Toast.LENGTH_SHORT).show();
|
||||
|
||||
// send an intent to our MusicService to telling it to pause the audio
|
||||
ctx.startService(new Intent(MusicService.ACTION_PAUSE));
|
||||
context.startService(new Intent(MusicService.ACTION_PAUSE));
|
||||
|
||||
} else if (intent.getAction().equals(Intent.ACTION_MEDIA_BUTTON)) {
|
||||
KeyEvent keyEvent = (KeyEvent) intent.getExtras().get(Intent.EXTRA_KEY_EVENT);
|
||||
if (keyEvent.getAction() != KeyEvent.ACTION_DOWN)
|
||||
return;
|
||||
|
||||
switch (keyEvent.getKeyCode()) {
|
||||
case KeyEvent.KEYCODE_HEADSETHOOK:
|
||||
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
|
||||
context.startService(new Intent(MusicService.ACTION_TOGGLE_PLAYBACK));
|
||||
break;
|
||||
case KeyEvent.KEYCODE_MEDIA_PLAY:
|
||||
context.startService(new Intent(MusicService.ACTION_PLAY));
|
||||
break;
|
||||
case KeyEvent.KEYCODE_MEDIA_PAUSE:
|
||||
context.startService(new Intent(MusicService.ACTION_PAUSE));
|
||||
break;
|
||||
case KeyEvent.KEYCODE_MEDIA_STOP:
|
||||
context.startService(new Intent(MusicService.ACTION_STOP));
|
||||
break;
|
||||
case KeyEvent.KEYCODE_MEDIA_NEXT:
|
||||
context.startService(new Intent(MusicService.ACTION_SKIP));
|
||||
break;
|
||||
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
|
||||
// TODO: ensure that doing this in rapid succession actually plays the
|
||||
// previous song
|
||||
context.startService(new Intent(MusicService.ACTION_REWIND));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user