use of android.support.v7.media.MediaItemStatus in project cw-omnibus by commonsguy.
the class PlaybackFragment method play.
private void play() {
logToTranscript(getActivity().getString(R.string.play_requested));
ItemActionCallback playCB = new ItemActionCallback() {
@Override
public void onResult(Bundle data, String sessionId, MediaSessionStatus sessionStatus, String itemId, MediaItemStatus itemStatus) {
logToTranscript(getActivity().getString(R.string.playing));
isPlaying = true;
getActivity().supportInvalidateOptionsMenu();
}
@Override
public void onError(String error, int code, Bundle data) {
logToTranscript(getActivity().getString(R.string.play_error) + error);
}
};
client.play(Uri.parse("http://misc.commonsware.com/ed_hd_512kb.mp4"), "video/mp4", null, 0, null, playCB);
}
use of android.support.v7.media.MediaItemStatus in project cw-omnibus by commonsguy.
the class PlaybackFragment method play.
private void play() {
logToTranscript(getActivity().getString(R.string.play_requested));
ItemActionCallback playCB = new ItemActionCallback() {
@Override
public void onResult(Bundle data, String sessionId, MediaSessionStatus sessionStatus, String itemId, MediaItemStatus itemStatus) {
logToTranscript(getActivity().getString(R.string.playing));
isPlaying = true;
updateMenu();
}
@Override
public void onError(String error, int code, Bundle data) {
logToTranscript(getActivity().getString(R.string.play_error) + error);
}
};
client.play(Uri.parse("http://misc.commonsware.com/ed_hd_512kb.mp4"), "video/mp4", null, 0, null, playCB);
}
use of android.support.v7.media.MediaItemStatus in project AndroidChromium by JackyAndroid.
the class DefaultMediaRouteController method processMediaStatusBundle.
private void processMediaStatusBundle(Bundle statusBundle) {
if (statusBundle == null)
return;
logBundle("processMediaStatusBundle: ", statusBundle);
String itemId = statusBundle.getString(MediaControlIntent.EXTRA_ITEM_ID);
if (itemId == null || !itemId.equals(mCurrentItemId))
return;
// Extract item metadata, if available.
if (statusBundle.containsKey(MediaControlIntent.EXTRA_ITEM_METADATA)) {
Bundle metadataBundle = (Bundle) statusBundle.getParcelable(MediaControlIntent.EXTRA_ITEM_METADATA);
updateTitle(metadataBundle.getString(MediaItemMetadata.KEY_TITLE, mPreferredTitle));
}
// Extract the item status, if available.
if (statusBundle.containsKey(MediaControlIntent.EXTRA_ITEM_STATUS)) {
Bundle itemStatusBundle = (Bundle) statusBundle.getParcelable(MediaControlIntent.EXTRA_ITEM_STATUS);
MediaItemStatus itemStatus = MediaItemStatus.fromBundle(itemStatusBundle);
logBundle("Received item status: ", itemStatusBundle);
updateState(itemStatus.getPlaybackState());
// Update the PositionExtrapolator that the playback state has changed.
if (itemStatus.getPlaybackState() == MediaItemStatus.PLAYBACK_STATE_PLAYING) {
mPositionExtrapolator.onResumed();
} else if (itemStatus.getPlaybackState() == MediaItemStatus.PLAYBACK_STATE_FINISHED) {
mPositionExtrapolator.onFinished();
} else {
mPositionExtrapolator.onPaused();
}
if ((getRemotePlayerState() == PlayerState.PAUSED) || (getRemotePlayerState() == PlayerState.PLAYING) || (getRemotePlayerState() == PlayerState.LOADING)) {
this.mCurrentItemId = itemId;
// duration can possibly be -1 if it's unknown, so cap to 0
long duration = Math.max(itemStatus.getContentDuration(), 0);
// update the position using the remote player's position
// duration can possibly be -1 if it's unknown, so cap to 0
long position = Math.min(Math.max(itemStatus.getContentPosition(), 0), duration);
// TODO(zqzhang): The GMS core currently uses SystemClock.uptimeMillis() as
// timestamp, which does not conform to the MediaRouter support library docs. See
// b/28378525 and
// http://developer.android.com/reference/android/support/v7/media/MediaItemStatus.html#getTimestamp().
// Override the timestamp with elapsedRealtime() by assuming the delay between the
// GMS core produces the MediaItemStatus and the code reaches here is short enough.
// long timestamp = itemStatus.getTimestamp();
long timestamp = SystemClock.elapsedRealtime();
notifyDurationUpdated(duration);
notifyPositionUpdated(position);
mPositionExtrapolator.onPositionInfoUpdated(duration, position, timestamp);
if (mSeeking) {
mSeeking = false;
if (getMediaStateListener() != null)
getMediaStateListener().onSeekCompleted();
}
}
logExtraHttpInfo(itemStatus.getExtras());
}
}
Aggregations