Rename methods of RouteController.
Add basic support for returning stream ids. Change-Id: Iaa11980e6195e23bd598075cb066c6234f000198
This commit is contained in:
@@ -32,6 +32,8 @@ import android.support.v7.media.MediaRouter.ControlRequestCallback;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Demonstrates how to create a custom media route provider.
|
* Demonstrates how to create a custom media route provider.
|
||||||
*
|
*
|
||||||
@@ -138,6 +140,10 @@ final class SampleMediaRouteProvider extends MediaRouteProvider {
|
|||||||
setDescriptor(providerDescriptor);
|
setDescriptor(providerDescriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String generateStreamId() {
|
||||||
|
return UUID.randomUUID().toString();
|
||||||
|
}
|
||||||
|
|
||||||
private final class SampleRouteController extends MediaRouteProvider.RouteController {
|
private final class SampleRouteController extends MediaRouteProvider.RouteController {
|
||||||
private final String mRouteId;
|
private final String mRouteId;
|
||||||
|
|
||||||
@@ -147,22 +153,22 @@ final class SampleMediaRouteProvider extends MediaRouteProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void release() {
|
public void onRelease() {
|
||||||
Log.d(TAG, mRouteId + ": Controller released");
|
Log.d(TAG, mRouteId + ": Controller released");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void select() {
|
public void onSelect() {
|
||||||
Log.d(TAG, mRouteId + ": Selected");
|
Log.d(TAG, mRouteId + ": Selected");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void unselect() {
|
public void onUnselect() {
|
||||||
Log.d(TAG, mRouteId + ": Unselected");
|
Log.d(TAG, mRouteId + ": Unselected");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setVolume(int volume) {
|
public void onSetVolume(int volume) {
|
||||||
Log.d(TAG, mRouteId + ": Set volume to " + volume);
|
Log.d(TAG, mRouteId + ": Set volume to " + volume);
|
||||||
if (mRouteId.equals(VARIABLE_VOLUME_ROUTE_ID)) {
|
if (mRouteId.equals(VARIABLE_VOLUME_ROUTE_ID)) {
|
||||||
setVolumeInternal(volume);
|
setVolumeInternal(volume);
|
||||||
@@ -170,7 +176,7 @@ final class SampleMediaRouteProvider extends MediaRouteProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateVolume(int delta) {
|
public void onUpdateVolume(int delta) {
|
||||||
Log.d(TAG, mRouteId + ": Update volume by " + delta);
|
Log.d(TAG, mRouteId + ": Update volume by " + delta);
|
||||||
if (mRouteId.equals(VARIABLE_VOLUME_ROUTE_ID)) {
|
if (mRouteId.equals(VARIABLE_VOLUME_ROUTE_ID)) {
|
||||||
setVolumeInternal(mVolume + delta);
|
setVolumeInternal(mVolume + delta);
|
||||||
@@ -186,7 +192,7 @@ final class SampleMediaRouteProvider extends MediaRouteProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean sendControlRequest(Intent intent, ControlRequestCallback callback) {
|
public boolean onControlRequest(Intent intent, ControlRequestCallback callback) {
|
||||||
Log.d(TAG, mRouteId + ": Received control request " + intent);
|
Log.d(TAG, mRouteId + ": Received control request " + intent);
|
||||||
if (intent.getAction().equals(MediaControlIntent.ACTION_PLAY)
|
if (intent.getAction().equals(MediaControlIntent.ACTION_PLAY)
|
||||||
&& intent.hasCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)
|
&& intent.hasCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)
|
||||||
@@ -194,11 +200,26 @@ final class SampleMediaRouteProvider extends MediaRouteProvider {
|
|||||||
mPlaybackCount +=1;
|
mPlaybackCount +=1;
|
||||||
|
|
||||||
Uri uri = intent.getData();
|
Uri uri = intent.getData();
|
||||||
Log.d(TAG, mRouteId + ": Received play request, uri=" + uri);
|
int queueBehavior = intent.getIntExtra(
|
||||||
|
MediaControlIntent.EXTRA_QUEUE_BEHAVIOR,
|
||||||
|
MediaControlIntent.QUEUE_BEHAVIOR_PLAY_NOW);
|
||||||
|
int position = intent.getIntExtra(
|
||||||
|
MediaControlIntent.EXTRA_STREAM_POSITION, 0);
|
||||||
|
Bundle metadata = intent.getBundleExtra(MediaControlIntent.EXTRA_STREAM_METADATA);
|
||||||
|
Bundle headers = intent.getBundleExtra(MediaControlIntent.EXTRA_HTTP_HEADERS);
|
||||||
|
String streamId = generateStreamId();
|
||||||
|
|
||||||
|
Log.d(TAG, mRouteId + ": Received play request, uri=" + uri
|
||||||
|
+ ", queueBehavior=" + queueBehavior
|
||||||
|
+ ", position=" + position
|
||||||
|
+ ", metadata=" + metadata
|
||||||
|
+ ", headers=" + headers);
|
||||||
Toast.makeText(getContext(), "Route received play request: uri=" + uri,
|
Toast.makeText(getContext(), "Route received play request: uri=" + uri,
|
||||||
Toast.LENGTH_LONG).show();
|
Toast.LENGTH_LONG).show();
|
||||||
if (callback != null) {
|
if (callback != null) {
|
||||||
callback.onResult(ControlRequestCallback.REQUEST_SUCCEEDED, null);
|
Bundle result = new Bundle();
|
||||||
|
result.putString(MediaControlIntent.EXTRA_STREAM_ID, streamId);
|
||||||
|
callback.onResult(ControlRequestCallback.REQUEST_SUCCEEDED, result);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -184,15 +184,19 @@ public class SampleMediaRouterActivity extends Activity {
|
|||||||
@Override
|
@Override
|
||||||
public void onResult(int result, Bundle data) {
|
public void onResult(int result, Bundle data) {
|
||||||
switch (result) {
|
switch (result) {
|
||||||
case REQUEST_SUCCEEDED:
|
case REQUEST_SUCCEEDED: {
|
||||||
Log.d(TAG, "Play request succeeded: data=" + data);
|
String streamId = data != null ? data.getString(
|
||||||
|
MediaControlIntent.EXTRA_STREAM_ID) : null;
|
||||||
|
|
||||||
|
Log.d(TAG, "Play request succeeded: streamId=" + streamId);
|
||||||
Toast.makeText(SampleMediaRouterActivity.this,
|
Toast.makeText(SampleMediaRouterActivity.this,
|
||||||
"Now playing " + item.mName,
|
"Now playing " + item.mName,
|
||||||
Toast.LENGTH_LONG).show();
|
Toast.LENGTH_LONG).show();
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case REQUEST_FAILED:
|
case REQUEST_FAILED:
|
||||||
Log.d(TAG, "Play request failed: data=" + data);
|
Log.d(TAG, "Play request failed.");
|
||||||
Toast.makeText(SampleMediaRouterActivity.this,
|
Toast.makeText(SampleMediaRouterActivity.this,
|
||||||
"Unable to play " + item.mName,
|
"Unable to play " + item.mName,
|
||||||
Toast.LENGTH_LONG).show();
|
Toast.LENGTH_LONG).show();
|
||||||
|
|||||||
Reference in New Issue
Block a user