Example usage for android.support.v4.media.session PlaybackStateCompat getState

List of usage examples for android.support.v4.media.session PlaybackStateCompat getState

Introduction

In this page you can find the example usage for android.support.v4.media.session PlaybackStateCompat getState.

Prototype

@State
public int getState() 

Source Link

Document

Get the current state of playback.

Usage

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);
}