am 5d3d35ee: Always register the RCC even for local playback.
* commit '5d3d35ee89ccd2bc02a65af03d46ea031c8cf73a': Always register the RCC even for local playback.
This commit is contained in:
@@ -134,7 +134,7 @@ public class SampleMediaRouterActivity extends ActionBarActivity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSizeChanged(int width, int height) {
|
public void onSizeChanged(int width, int height) {
|
||||||
mLocalPlayer.updateSize(width, height);
|
mPlayer.updateSize(width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -197,16 +197,11 @@ public class SampleMediaRouterActivity extends ActionBarActivity {
|
|||||||
playerCB = mRemotePlayer;
|
playerCB = mRemotePlayer;
|
||||||
mRemotePlayer.reset();
|
mRemotePlayer.reset();
|
||||||
|
|
||||||
// Create and register the remote control client
|
|
||||||
registerRCC();
|
|
||||||
} else {
|
} else {
|
||||||
// Local Playback:
|
// Local Playback:
|
||||||
// Use local player and feed media player one item at a time
|
// Use local player and feed media player one item at a time
|
||||||
player = mLocalPlayer;
|
player = mLocalPlayer;
|
||||||
playerCB = mMediaPlayer;
|
playerCB = mMediaPlayer;
|
||||||
|
|
||||||
// Unregister the remote control client
|
|
||||||
unregisterRCC();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player != mPlayer || playerCB != mPlayerCB) {
|
if (player != mPlayer || playerCB != mPlayerCB) {
|
||||||
@@ -506,6 +501,9 @@ public class SampleMediaRouterActivity extends ActionBarActivity {
|
|||||||
Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
|
Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
|
||||||
mediaButtonIntent.setComponent(mEventReceiver);
|
mediaButtonIntent.setComponent(mEventReceiver);
|
||||||
mMediaPendingIntent = PendingIntent.getBroadcast(this, 0, mediaButtonIntent, 0);
|
mMediaPendingIntent = PendingIntent.getBroadcast(this, 0, mediaButtonIntent, 0);
|
||||||
|
|
||||||
|
// Create and register the remote control client
|
||||||
|
registerRCC();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerRCC() {
|
private void registerRCC() {
|
||||||
@@ -620,10 +618,14 @@ public class SampleMediaRouterActivity extends ActionBarActivity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
|
// Unregister the remote control client
|
||||||
|
unregisterRCC();
|
||||||
|
|
||||||
// Unregister broadcast receiver
|
// Unregister broadcast receiver
|
||||||
unregisterReceiver(mReceiver);
|
unregisterReceiver(mReceiver);
|
||||||
mPlayer.stop();
|
mPlayer.stop();
|
||||||
mMediaPlayer.release();
|
mMediaPlayer.release();
|
||||||
|
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -768,19 +770,20 @@ public class SampleMediaRouterActivity extends ActionBarActivity {
|
|||||||
toast.show();
|
toast.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
private abstract class Player {
|
private interface Player {
|
||||||
abstract void enqueue(final Uri uri, long pos);
|
void enqueue(final Uri uri, long pos);
|
||||||
abstract void remove(final MediaQueueItem item);
|
void remove(final MediaQueueItem item);
|
||||||
abstract void seek(String sid, String iid, long pos);
|
void seek(String sid, String iid, long pos);
|
||||||
abstract void getStatus(final MediaQueueItem item, final boolean update);
|
void getStatus(final MediaQueueItem item, final boolean update);
|
||||||
abstract void pause();
|
void pause();
|
||||||
abstract void resume();
|
void resume();
|
||||||
abstract void stop();
|
void stop();
|
||||||
abstract void showStatistics();
|
void showStatistics();
|
||||||
abstract void onFinish(boolean error);
|
void onFinish(boolean error);
|
||||||
|
void updateSize(int width, int height);
|
||||||
}
|
}
|
||||||
|
|
||||||
private class LocalPlayer extends Player implements SurfaceHolder.Callback {
|
private class LocalPlayer implements Player, SurfaceHolder.Callback {
|
||||||
private final MediaSessionManager mSessionManager = new MediaSessionManager();
|
private final MediaSessionManager mSessionManager = new MediaSessionManager();
|
||||||
private String mSessionId;
|
private String mSessionId;
|
||||||
// The presentation to show on the secondary display.
|
// The presentation to show on the secondary display.
|
||||||
@@ -795,7 +798,7 @@ public class SampleMediaRouterActivity extends ActionBarActivity {
|
|||||||
mSurfaceView = (SurfaceView)findViewById(R.id.surface_view);
|
mSurfaceView = (SurfaceView)findViewById(R.id.surface_view);
|
||||||
SurfaceHolder holder = mSurfaceView.getHolder();
|
SurfaceHolder holder = mSurfaceView.getHolder();
|
||||||
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
|
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
|
||||||
holder.addCallback(mLocalPlayer);
|
holder.addCallback(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCallback(MediaSessionManager.Callback cb) {
|
public void setCallback(MediaSessionManager.Callback cb) {
|
||||||
@@ -911,7 +914,7 @@ public class SampleMediaRouterActivity extends ActionBarActivity {
|
|||||||
public void surfaceCreated(SurfaceHolder holder) {
|
public void surfaceCreated(SurfaceHolder holder) {
|
||||||
Log.d(TAG, "surfaceCreated");
|
Log.d(TAG, "surfaceCreated");
|
||||||
mMediaPlayer.setSurface(holder);
|
mMediaPlayer.setSurface(holder);
|
||||||
mLocalPlayer.updateSize(mVideoWidth, mVideoHeight);
|
updateSize(mVideoWidth, mVideoHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -919,7 +922,8 @@ public class SampleMediaRouterActivity extends ActionBarActivity {
|
|||||||
Log.d(TAG, "surfaceDestroyed");
|
Log.d(TAG, "surfaceDestroyed");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateSize(int width, int height) {
|
@Override
|
||||||
|
public void updateSize(int width, int height) {
|
||||||
if (width > 0 && height > 0) {
|
if (width > 0 && height > 0) {
|
||||||
if (mPresentation == null) {
|
if (mPresentation == null) {
|
||||||
int surfaceWidth = mLayout.getWidth();
|
int surfaceWidth = mLayout.getWidth();
|
||||||
@@ -1028,7 +1032,7 @@ public class SampleMediaRouterActivity extends ActionBarActivity {
|
|||||||
mPresentationSurfaceView = (SurfaceView)findViewById(R.id.surface_view);
|
mPresentationSurfaceView = (SurfaceView)findViewById(R.id.surface_view);
|
||||||
SurfaceHolder holder = mPresentationSurfaceView.getHolder();
|
SurfaceHolder holder = mPresentationSurfaceView.getHolder();
|
||||||
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
|
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
|
||||||
holder.addCallback(mLocalPlayer);
|
holder.addCallback(LocalPlayer.this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateSize(int width, int height) {
|
public void updateSize(int width, int height) {
|
||||||
@@ -1048,7 +1052,7 @@ public class SampleMediaRouterActivity extends ActionBarActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class RemotePlayer extends Player implements MediaSessionManager.Callback {
|
private class RemotePlayer implements Player, MediaSessionManager.Callback {
|
||||||
private MediaQueueItem mQueueItem;
|
private MediaQueueItem mQueueItem;
|
||||||
private MediaQueueItem mPlaylistItem;
|
private MediaQueueItem mPlaylistItem;
|
||||||
private String mSessionId;
|
private String mSessionId;
|
||||||
@@ -1363,6 +1367,11 @@ public class SampleMediaRouterActivity extends ActionBarActivity {
|
|||||||
updateUi();
|
updateUi();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateSize(int width, int height) {
|
||||||
|
// nothing to do
|
||||||
|
}
|
||||||
|
|
||||||
private void play(final Uri uri, boolean enqueue, final long pos) {
|
private void play(final Uri uri, boolean enqueue, final long pos) {
|
||||||
// save the initial seek position
|
// save the initial seek position
|
||||||
mPosition = pos;
|
mPosition = pos;
|
||||||
|
|||||||
Reference in New Issue
Block a user