List of usage examples for android.support.v4.media.session PlaybackStateCompat getState
@State public int getState()
From source file:org.opensilk.music.ui3.main.FooterScreenPresenter.java
void subscribeBroadcasts() { if (isSubscribed(broadcastSubscriptions)) { return;/*from w ww.j av a 2 s . com*/ } Subscription s = playbackController.subscribePlayStateChanges(new Action1<PlaybackStateCompat>() { @Override public void call(PlaybackStateCompat playbackState) { final int state = playbackState.getState(); if (state == STATE_BUFFERING || state == STATE_CONNECTING) { setProgress(-1); } else { long position = playbackState.getPosition(); long duration = playbackState.getBufferedPosition(); if (position < 0 || duration <= 0) { setProgress(1000); } else { setProgress((int) (1000 * position / duration)); } Timber.v("Position discrepancy = %d", lastPosition - position); lastPosition = position; lastDuration = duration; lastPosSynced = true; subscribeProgress(MainPresenter.isPlaying(playbackState)); } } }); Subscription s2 = playbackController.subscribeMetaChanges(new Action1<MediaMetadataCompat>() { @Override public void call(MediaMetadataCompat mediaMetadata) { setTrackName(mediaMetadata.getString(METADATA_KEY_TITLE)); setArtistName(mediaMetadata.getString(METADATA_KEY_ARTIST)); updateArtwork(mediaMetadata.getBitmap(METADATA_KEY_ALBUM_ART)); } }); broadcastSubscriptions = new CompositeSubscription(s, s2); }
From source file:info.tongrenlu.MediaNotificationManager.java
public void onPlaybackStateChanged(PlaybackStateCompat state) { mPlaybackState = state;/*from ww w . j av a 2s .c om*/ Log.d(TAG, "Received new playback state" + state); if (state != null && (state.getState() == PlaybackState.STATE_STOPPED || state.getState() == PlaybackState.STATE_NONE)) { stopNotification(); } else { Notification notification = createNotification(); if (notification != null) { mNotificationManager.notify(NOTIFICATION_ID, notification); } } }
From source file:com.mylovemhz.simplay.MediaControlFragment.java
private void configureButtons(PlaybackStateCompat state) { if (state == null) { return;//from www . ja v a2 s.c o m } boolean enablePlay = false; switch (state.getState()) { case PlaybackStateCompat.STATE_STOPPED: albumImage.setImageResource(R.drawable.ic_album); artistText.setText(""); titleText.setText(""); seekBar.setProgress(0); seekBar.setMax(1); case PlaybackStateCompat.STATE_PAUSED: handler.removeCallbacks(seekTickRunnable); enablePlay = true; break; case PlaybackStateCompat.STATE_PLAYING: handler.post(seekTickRunnable); break; case PlaybackStateCompat.STATE_ERROR: Log.e(TAG, "error playbackstate: " + state.getErrorMessage()); Toast.makeText(getActivity(), state.getErrorMessage(), Toast.LENGTH_LONG).show(); break; } if (enablePlay) { playPauseButton.setImageResource(playDrawableResource); } else { playPauseButton.setImageResource(pauseDrawableResource); } playPauseButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (getPlaybackState() != PlaybackStateCompat.STATE_PLAYING) { mediaController.getTransportControls().play(); } else { mediaController.getTransportControls().pause(); } } }); previousButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mediaController.getTransportControls().skipToPrevious(); } }); nextButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mediaController.getTransportControls().skipToNext(); } }); seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser) { mediaController.getTransportControls().seekTo(progress); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); }
From source file:net.simno.klingar.MediaNotificationManager.java
private void setNotificationPlaybackState(NotificationCompat.Builder builder) { PlaybackStateCompat playbackState = musicController.getPlaybackState(); if (playbackState == null || !started) { service.stopForeground(true);/*w w w . j av a 2s . co m*/ return; } if (playbackState.getState() == PlaybackStateCompat.STATE_PLAYING && playbackState.getPosition() >= 0) { builder.setWhen(System.currentTimeMillis() - playbackState.getPosition()).setShowWhen(true) .setUsesChronometer(true); } else { builder.setWhen(0).setShowWhen(false).setUsesChronometer(false); } // Make sure that the notification can be dismissed by the user when we are not playing: builder.setOngoing(playbackState.getState() == PlaybackStateCompat.STATE_PLAYING); }
From source file:nuclei.media.MediaInterface.java
void onPlaybackStateChanged(PlaybackStateCompat state) { if (mCallbacks != null) { if (state.getState() != PlaybackStateCompat.STATE_BUFFERING) { mCallbacks.onLoaded(mPlayerControls); } else if (state.getState() == PlaybackStateCompat.STATE_BUFFERING) { mCallbacks.onLoading(mPlayerControls); }// w w w.j a v a2s . c om mCallbacks.onStateChanged(this, state); } if (mPlayerControls != null) { if (MediaPlayerController.isPlaying(mMediaControls, state, mPlayerControls.getMediaId())) { if (mCallbacks != null) mCallbacks.onPlaying(mPlayerControls); if (mHandler != null) mHandler.start(); } else { if (mCallbacks != null) { if (state.getState() == PlaybackStateCompat.STATE_STOPPED) mCallbacks.onStopped(mPlayerControls); else mCallbacks.onPaused(mPlayerControls); } if (mHandler != null) mHandler.stop(); } } else if (mHandler != null) { mHandler.stop(); } if (state.getState() == PlaybackStateCompat.STATE_PLAYING && mCallbacks != null) { if (mPlayerControls != null && (!mPlayerControls.isMediaControlsSet() || !MediaPlayerController.isEquals(mMediaControls, mPlayerControls.getMediaId()))) { mPlayerControls.setMediaControls(mCallbacks, mMediaControls); } } }
From source file:info.tongrenlu.FullScreenPlayerActivity.java
private void updatePlaybackState(PlaybackStateCompat state) { if (state == null) { return;/* w ww .j a va 2 s .c o m*/ } Log.d(TAG, "updatePlaybackState, playback state=" + state.getState()); mLastPlaybackState = state; mLine3.setText(""); switch (state.getState()) { case PlaybackStateCompat.STATE_PLAYING: mLoading.setVisibility(View.INVISIBLE); mPlayPause.setVisibility(View.VISIBLE); // mPlayPause.setImageDrawable(mPauseDrawable); Glide.with(this).load(R.drawable.ic_pause_white_48dp).into(mPlayPause); mControllers.setVisibility(View.VISIBLE); scheduleProgressUpdate(); break; case PlaybackStateCompat.STATE_PAUSED: mControllers.setVisibility(View.VISIBLE); mLoading.setVisibility(View.INVISIBLE); mPlayPause.setVisibility(View.VISIBLE); // mPlayPause.setImageDrawable(mPlayDrawable); Glide.with(this).load(R.drawable.ic_play_arrow_white_48dp).into(mPlayPause); stopProgressUpdate(); break; case PlaybackStateCompat.STATE_NONE: case PlaybackStateCompat.STATE_STOPPED: mLoading.setVisibility(View.INVISIBLE); mPlayPause.setVisibility(View.VISIBLE); Glide.with(this).load(R.drawable.ic_play_arrow_white_48dp).into(mPlayPause); stopProgressUpdate(); break; case PlaybackStateCompat.STATE_BUFFERING: mPlayPause.setVisibility(View.INVISIBLE); mLoading.setVisibility(View.VISIBLE); mLine3.setText(R.string.loading); stopProgressUpdate(); break; default: Log.d(TAG, "Unhandled state " + state.getState()); } mSkipNext.setVisibility((state.getActions() & PlaybackStateCompat.ACTION_SKIP_TO_NEXT) == 0 ? View.INVISIBLE : View.VISIBLE); mSkipPrev.setVisibility( (state.getActions() & PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS) == 0 ? View.INVISIBLE : View.VISIBLE); }
From source file:com.murati.oszk.audiobook.ui.tv.TvPlaybackFragment.java
protected void updatePlaybackState(PlaybackStateCompat state) { if (mPlaybackControlsRow == null) { // We only update playback state after we get a valid metadata. return;/* w w w.jav a2s . co m*/ } mLastPosition = state.getPosition(); mLastPositionUpdateTime = state.getLastPositionUpdateTime(); switch (state.getState()) { case PlaybackStateCompat.STATE_PLAYING: startProgressAutomation(); mPlayPauseAction.setIndex(PlayPauseAction.PAUSE); break; case PlaybackStateCompat.STATE_PAUSED: stopProgressAutomation(); mPlayPauseAction.setIndex(PlayPauseAction.PLAY); break; } MediaControllerCompat controller = MediaControllerCompat.getMediaController(getActivity()); updatePlayListRow(controller.getQueue()); mRowsAdapter.notifyArrayItemRangeChanged(mRowsAdapter.indexOf(mPlaybackControlsRow), 1); }
From source file:com.bayapps.android.robophish.ui.tv.TvPlaybackFragment.java
protected void updatePlaybackState(PlaybackStateCompat state) { if (mPlaybackControlsRow == null) { // We only update playback state after we get a valid metadata. return;//w w w. j a v a 2 s . c o m } mLastPosition = state.getPosition(); mLastPositionUpdateTime = state.getLastPositionUpdateTime(); switch (state.getState()) { case PlaybackStateCompat.STATE_PLAYING: startProgressAutomation(); mPlayPauseAction.setIndex(PlayPauseAction.PAUSE); break; case PlaybackStateCompat.STATE_PAUSED: stopProgressAutomation(); mPlayPauseAction.setIndex(PlayPauseAction.PLAY); break; } MediaControllerCompat controller = getActivity().getSupportMediaController(); updatePlayListRow(controller.getQueue()); mRowsAdapter.notifyArrayItemRangeChanged(mRowsAdapter.indexOf(mPlaybackControlsRow), 1); }
From source file:com.torrenttunes.android.ui.FullScreenPlayerActivity.java
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_full_player); initializeToolbar();/*from w w w. ja v a 2s .c o m*/ getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setTitle(""); mBackgroundImage = (ImageView) findViewById(R.id.background_image); mPauseDrawable = ActivityCompat.getDrawable(this, R.drawable.ic_pause_white_48dp); mPlayDrawable = ActivityCompat.getDrawable(this, R.drawable.ic_play_arrow_white_48dp); mPlayPause = (ImageView) findViewById(R.id.imageView1); mSkipNext = (ImageView) findViewById(R.id.next); mSkipPrev = (ImageView) findViewById(R.id.prev); mStart = (TextView) findViewById(R.id.startText); mEnd = (TextView) findViewById(R.id.endText); mSeekbar = (SeekBar) findViewById(R.id.seekBar1); mLine1 = (TextView) findViewById(R.id.line1); mLine2 = (TextView) findViewById(R.id.line2); mLine3 = (TextView) findViewById(R.id.line3); mLoading = (ProgressBar) findViewById(R.id.progressBar1); mControllers = findViewById(R.id.controllers); mSkipNext.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MediaControllerCompat.TransportControls controls = mMediaController.getTransportControls(); controls.skipToNext(); } }); mSkipPrev.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MediaControllerCompat.TransportControls controls = mMediaController.getTransportControls(); controls.skipToPrevious(); } }); mPlayPause.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { PlaybackStateCompat state = mMediaController.getPlaybackState(); MediaControllerCompat.TransportControls controls = mMediaController.getTransportControls(); switch (state.getState()) { case PlaybackStateCompat.STATE_PLAYING: // fall through case PlaybackStateCompat.STATE_BUFFERING: controls.pause(); stopSeekbarUpdate(); break; case PlaybackStateCompat.STATE_PAUSED: case PlaybackStateCompat.STATE_STOPPED: controls.play(); scheduleSeekbarUpdate(); break; default: LogHelper.d(TAG, "onClick with state ", state.getState()); } } }); mSeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { mStart.setText(Utils.formatMillis(progress)); } @Override public void onStartTrackingTouch(SeekBar seekBar) { stopSeekbarUpdate(); } @Override public void onStopTrackingTouch(SeekBar seekBar) { mMediaController.getTransportControls().seekTo(seekBar.getProgress()); scheduleSeekbarUpdate(); } }); // Only update from the intent if we are not recreating from a config change: if (savedInstanceState == null) { updateFromParams(getIntent()); } mMediaBrowser = new MediaBrowserCompat(this, new ComponentName(this, MusicService.class), mMediaBrowserConnectionCallback, null); }
From source file:com.example.android.AudioArchive.ui.FullScreenPlayerActivity.java
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_full_player); initializeToolbar();//from w w w . j ava2 s .com if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setTitle(""); } mBackgroundImage = (ImageView) findViewById(R.id.background_image); mPauseDrawable = ContextCompat.getDrawable(this, R.drawable.uamp_ic_pause_white_48dp); mPlayDrawable = ContextCompat.getDrawable(this, R.drawable.uamp_ic_play_arrow_white_48dp); mPlayPause = (ImageView) findViewById(R.id.play_pause); mSkipNext = (ImageView) findViewById(R.id.next); mSkipPrev = (ImageView) findViewById(R.id.prev); mLine1 = (TextView) findViewById(R.id.line1); mLine2 = (TextView) findViewById(R.id.line2); mLine3 = (TextView) findViewById(R.id.line3); mLoading = (ProgressBar) findViewById(R.id.progressBar1); mControllers = findViewById(R.id.controllers); mSkipNext.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MediaControllerCompat.TransportControls controls = getSupportMediaController() .getTransportControls(); controls.skipToNext(); } }); mSkipPrev.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MediaControllerCompat.TransportControls controls = getSupportMediaController() .getTransportControls(); controls.skipToPrevious(); } }); mPlayPause.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { PlaybackStateCompat state = getSupportMediaController().getPlaybackState(); if (state != null) { MediaControllerCompat.TransportControls controls = getSupportMediaController() .getTransportControls(); switch (state.getState()) { case PlaybackStateCompat.STATE_PLAYING: // fall through case PlaybackStateCompat.STATE_BUFFERING: controls.pause(); break; case PlaybackStateCompat.STATE_PAUSED: case PlaybackStateCompat.STATE_STOPPED: controls.play(); break; default: LogHelper.d(TAG, "onClick with state ", state.getState()); } } } }); ; // Only update from the intent if we are not recreating from a config change: if (savedInstanceState == null) { updateFromParams(getIntent()); } mMediaBrowser = new MediaBrowserCompat(this, new ComponentName(this, MusicService.class), mConnectionCallback, null); }