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

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

Introduction

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

Prototype

int STATE_STOPPED

To view the source code for android.support.v4.media.session PlaybackStateCompat STATE_STOPPED.

Click Source Link

Document

State indicating this item is currently stopped.

Usage

From source file:com.bayapps.android.robophish.playback.LocalPlayback.java

@Override
public void play(QueueItem item) {

    //we never call this if we're auto-queued due to gapless
    if (mMediaPlayersSwapping) {
        mMediaPlayersSwapping = false;//from ww w. j a  v  a 2  s  .  c  om
    }

    mPlayOnFocusGain = true;
    tryToGetAudioFocus();
    registerAudioNoisyReceiver();
    String mediaId = item.getDescription().getMediaId();
    boolean mediaHasChanged = !TextUtils.equals(mediaId, mCurrentMediaId);
    if (mediaHasChanged) {
        mCurrentPosition = 0;
        mCurrentMediaId = mediaId;
    }

    if (mState == PlaybackStateCompat.STATE_PAUSED && !mediaHasChanged && mMediaPlayer != null) {
        configMediaPlayerState();
    } else {
        mState = PlaybackStateCompat.STATE_STOPPED;
        relaxResources(false); // release everything except MediaPlayer
        MediaMetadataCompat track = mMusicProvider
                .getMusic(MediaIDHelper.extractMusicIDFromMediaID(item.getDescription().getMediaId()));

        //noinspection ResourceType
        String source = track.getString(MusicProviderSource.CUSTOM_METADATA_TRACK_SOURCE);

        try {
            createMediaPlayerIfNeeded();

            mState = PlaybackStateCompat.STATE_BUFFERING;

            mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
            mMediaPlayer.setDataSource(source);

            // Starts preparing the media player in the background. When
            // it's done, it will call our OnPreparedListener (that is,
            // the onPrepared() method on this class, since we set the
            // listener to 'this'). Until the media player is prepared,
            // we *cannot* call start() on it!
            mMediaPlayer.prepareAsync();

            // If we are streaming from the internet, we want to hold a
            // Wifi lock, which prevents the Wifi radio from going to
            // sleep while the song is playing.
            mWifiLock.acquire();

            if (mCallback != null) {
                mCallback.onPlaybackStatusChanged(mState);
            }

        } catch (IOException ex) {
            LogHelper.e(TAG, ex, "Exception playing song");
            if (mCallback != null) {
                mCallback.onError(ex.getMessage());
            }
        }
    }
}

From source file:com.pi.android.brainbeats.ui.FullScreenPlayerActivity.java

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_full_player);
    initializeToolbar();//from   ww  w  .  jav  a 2s  . co m
    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);
    mBBOn = ContextCompat.getDrawable(this, R.drawable.uamp_ic_pause_white_48dp);
    mBBOff = ContextCompat.getDrawable(this, R.drawable.ic_bb_on_36dp);
    mBB = (ImageView) findViewById(R.id.BB);
    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) {
            if (brainMode) {
                MediaControllerCompat.TransportControls controls = getSupportMediaController()
                        .getTransportControls();
                controls.skipToPrevious();
            } else {

                MediaControllerCompat.TransportControls controls = getSupportMediaController()
                        .getTransportControls();
                controls.skipToNext();
            }
        }
    });

    mSkipPrev.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!brainMode) {
                MediaControllerCompat.TransportControls controls = getSupportMediaController()
                        .getTransportControls();
                controls.skipToPrevious();
            } else {

                MediaControllerCompat.TransportControls controls = getSupportMediaController()
                        .getTransportControls();
                controls.skipToNext();
            }
        }
    });

    mBB.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (brainMode) {
                brainMode = false;
                Log.e("BRAINBEATS MODE", "OFF");
                mBB.setImageResource(R.drawable.ic_bb_on_36dp);
            } else {
                brainMode = true;
                Log.e("BRAINBEATS MODE", "ON");
                mBB.setImageResource(R.drawable.ic_bb_off_36dp);
            }

        }
    });

    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();
                    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(DateUtils.formatElapsedTime(progress / 1000));
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            stopSeekbarUpdate();
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            getSupportMediaController().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),
            mConnectionCallback, null);
}

From source file:net.simno.klingar.ui.BrowserController.java

private void observePlayback() {
    disposables.add(musicController.state().compose(bindUntilEvent(DETACH)).compose(rx.flowableSchedulers())
            .subscribe(state -> {// w  ww.  j a va  2s.  c  om
                switch (state) {
                case PlaybackStateCompat.STATE_ERROR:
                case PlaybackStateCompat.STATE_NONE:
                case PlaybackStateCompat.STATE_STOPPED:
                    for (Router router : getChildRouters()) {
                        removeChildRouter(router);
                    }
                    break;
                default:
                    Router miniplayerRouter = getChildRouter(miniplayerContainer);
                    if (!miniplayerRouter.hasRootController()) {
                        miniplayerRouter.setRoot(RouterTransaction.with(new MiniPlayerController(null)));
                    }
                }
            }, Rx::onError));
}

From source file:nuclei.media.playback.ExoPlayerPlayback.java

@Override
protected void internalPlay(MediaMetadata metadataCompat, Timing timing, boolean seek) {
    mPlayOnFocusGain = true;/*w  w w .j a  va  2 s . c  o m*/
    tryToGetAudioFocus();
    registerAudioNoisyReceiver();
    boolean mediaHasChanged = mCurrentMediaId == null
            || !TextUtils.equals(metadataCompat.getDescription().getMediaId(), mCurrentMediaId.toString());
    if (mediaHasChanged || mRestart) {
        mRestart = false;
        mCurrentPosition = getStartStreamPosition();
        mMediaMetadata = metadataCompat;
        mMediaMetadata.setCallback(mCallback);
        mCurrentMediaId = MediaProvider.getInstance().getMediaId(metadataCompat.getDescription().getMediaId());
    }

    mPlayWhenReady = true;
    if (mState == PlaybackStateCompat.STATE_PAUSED && !mediaHasChanged && mMediaPlayer != null) {
        if (!mWakeLock.isHeld())
            mWakeLock.acquire();
        if (!mWifiLock.isHeld())
            mWifiLock.acquire();
        configMediaPlayerState(false, true);
    } else {
        mState = mMediaPlayer != null
                ? mState == PlaybackStateCompat.STATE_STOPPED ? PlaybackStateCompat.STATE_STOPPED
                        : PlaybackStateCompat.STATE_PAUSED
                : PlaybackStateCompat.STATE_STOPPED;
        relaxResources(false); // release everything except MediaPlayer
        setTrack(metadataCompat);
    }

    if (timing != null && seek)
        internalSeekTo(timing.start);
}

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);
        }//from w  w w.  java  2  s  .  c o  m
        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:com.achep.acdisplay.ui.components.MediaWidget.java

@Override
public void onPlaybackStateChanged(int state) {

    // Making transformation rule for the warning icon is too
    // much overkill for me.
    if (state == PlaybackStateCompat.STATE_ERROR) {
        mButtonPlayPause.setImageDrawable(mWarningDrawable);
    } else {/*w w w  . j av  a  2 s  .  c  o m*/
        mButtonPlayPause.setImageDrawable(mPlayPauseDrawable);
    }

    if (DEBUG)
        Log.d(TAG, "Playback state is " + state);

    final int imageDescId;
    switch (state) {
    case PlaybackStateCompat.STATE_ERROR:
        imageDescId = R.string.media_play_description;
        break;
    case PlaybackStateCompat.STATE_PLAYING:
        mPlayPauseDrawable.transformToPause();
        imageDescId = R.string.media_pause_description;
        break;
    case PlaybackStateCompat.STATE_BUFFERING:
    case PlaybackStateCompat.STATE_STOPPED:
        mPlayPauseDrawable.transformToStop();
        imageDescId = R.string.media_stop_description;
        break;
    case PlaybackStateCompat.STATE_PAUSED:
    default:
        mPlayPauseDrawable.transformToPlay();
        imageDescId = R.string.media_play_description;
        break;
    }

    mButtonPlayPause.setContentDescription(getFragment().getString(imageDescId));
}

From source file:com.example.android.AudioArchive.ui.FullScreenPlayerActivity.java

private void updatePlaybackState(PlaybackStateCompat state) {
    if (state == null) {
        return;//from w w  w. j  ava  2s  .  com
    }
    if (getSupportMediaController() != null && getSupportMediaController().getExtras() != null) {
        String castName = getSupportMediaController().getExtras().getString(MusicService.EXTRA_CONNECTED_CAST);
        String line3Text = castName == null ? ""
                : getResources().getString(R.string.casting_to_device, castName);
        mLine3.setText(line3Text);
    }

    switch (state.getState()) {
    case PlaybackStateCompat.STATE_PLAYING:
        mLoading.setVisibility(INVISIBLE);
        mPlayPause.setVisibility(VISIBLE);
        mPlayPause.setImageDrawable(mPauseDrawable);
        mControllers.setVisibility(VISIBLE);

        break;
    case PlaybackStateCompat.STATE_PAUSED:
        mControllers.setVisibility(VISIBLE);
        mLoading.setVisibility(INVISIBLE);
        mPlayPause.setVisibility(VISIBLE);
        mPlayPause.setImageDrawable(mPlayDrawable);

        break;
    case PlaybackStateCompat.STATE_NONE:
    case PlaybackStateCompat.STATE_STOPPED:
        mLoading.setVisibility(INVISIBLE);
        mPlayPause.setVisibility(VISIBLE);
        mPlayPause.setImageDrawable(mPlayDrawable);

        break;
    case PlaybackStateCompat.STATE_BUFFERING:
        mPlayPause.setVisibility(INVISIBLE);
        mLoading.setVisibility(VISIBLE);
        mLine3.setText(R.string.loading);

        break;
    default:
        LogHelper.d(TAG, "Unhandled state ", state.getState());
    }

    mSkipNext.setVisibility(
            (state.getActions() & PlaybackStateCompat.ACTION_SKIP_TO_NEXT) == 0 ? INVISIBLE : VISIBLE);
    mSkipPrev.setVisibility(
            (state.getActions() & PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS) == 0 ? INVISIBLE : VISIBLE);
}

From source file:com.mylovemhz.simplay.MusicService.java

public void stop() {
    Log.d(TAG_MUSIC_SERVICE, "stop()");
    if (currentState == State.STARTED || currentState == State.PAUSED || currentState == State.PREPARED
            || currentState == State.COMPLETED) {
        mediaPlayer.stop();//  ww  w .j a  va 2 s.c  om
        currentState = State.STOPPED;
        updateSessionState(PlaybackStateCompat.STATE_STOPPED);
        currentTrackIndex = 0;
        trackQueue = new ArrayList<>();
        removeNotification();
        if (wifiLock.isHeld()) {
            wifiLock.release();
        }
        if (callbacks != null)
            callbacks.onPlaybackStopped();
    }
}

From source file:info.tongrenlu.FullScreenPlayerActivity.java

private void updatePlaybackState(PlaybackStateCompat state) {
    if (state == null) {
        return;// w  w w  .  j av  a2 s.co  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.mylovemhz.simplay.MusicService.java

public void next() {
    if (hasNext()) {
        if (currentState == State.STARTED || currentState == State.PAUSED) {
            mediaPlayer.stop();//from   w  ww. j  a v  a  2s  . c o m
            currentState = State.STOPPED;
            updateSessionState(PlaybackStateCompat.STATE_STOPPED);
        }
        if (currentState == State.STOPPED || currentState == State.COMPLETED) {
            mediaPlayer.reset();
            currentState = State.IDLE;
            updateSessionState(PlaybackStateCompat.STATE_STOPPED);
            showNotification();
        }
        if (currentState == State.IDLE) {
            try {
                updateSessionState(PlaybackStateCompat.STATE_SKIPPING_TO_NEXT);
                currentTrackIndex++;
                cueTrack();
            } catch (Exception e) {
                stop();
            }
        }
    }
}