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

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

Introduction

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

Prototype

long ACTION_REWIND

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

Click Source Link

Document

Indicates this session supports the rewind command.

Usage

From source file:com.wojtechnology.sunami.MediaSessionCompatHelper.java

private static void ensureTransportControls(MediaSessionCompat session, PlaybackStateCompat playbackState) {
    long actions = playbackState.getActions();
    Object remoteObj = session.getRemoteControlClient();
    if (actions != 0 && remoteObj != null) {

        int transportControls = 0;

        if ((actions & PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS) != 0) {
            transportControls |= RemoteControlClient.FLAG_KEY_MEDIA_PREVIOUS;
        }/*from  ww w. j  a v  a  2s . c om*/

        if ((actions & PlaybackStateCompat.ACTION_REWIND) != 0) {
            transportControls |= RemoteControlClient.FLAG_KEY_MEDIA_REWIND;
        }

        if ((actions & PlaybackStateCompat.ACTION_PLAY) != 0) {
            transportControls |= RemoteControlClient.FLAG_KEY_MEDIA_PLAY;
        }

        if ((actions & PlaybackStateCompat.ACTION_PLAY_PAUSE) != 0) {
            transportControls |= RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE;
        }

        if ((actions & PlaybackStateCompat.ACTION_PAUSE) != 0) {
            transportControls |= RemoteControlClient.FLAG_KEY_MEDIA_PAUSE;
        }

        if ((actions & PlaybackStateCompat.ACTION_STOP) != 0) {
            transportControls |= RemoteControlClient.FLAG_KEY_MEDIA_STOP;
        }

        if ((actions & PlaybackStateCompat.ACTION_FAST_FORWARD) != 0) {
            transportControls |= RemoteControlClient.FLAG_KEY_MEDIA_FAST_FORWARD;
        }

        if ((actions & PlaybackStateCompat.ACTION_SKIP_TO_NEXT) != 0) {
            transportControls |= RemoteControlClient.FLAG_KEY_MEDIA_NEXT;
        }

        if ((actions & PlaybackStateCompat.ACTION_SEEK_TO) != 0) {
            transportControls |= RemoteControlClient.FLAG_KEY_MEDIA_POSITION_UPDATE;
        }

        if ((actions & PlaybackStateCompat.ACTION_SET_RATING) != 0) {
            transportControls |= RemoteControlClient.FLAG_KEY_MEDIA_RATING;
        }

        ((RemoteControlClient) remoteObj).setTransportControlFlags(transportControls);
    }
}

From source file:com.google.android.exoplayer2.ext.mediasession.DefaultPlaybackController.java

@Override
public long getSupportedPlaybackActions(Player player) {
    if (player == null || player.getCurrentTimeline().isEmpty()) {
        return 0;
    }/*from w  ww.  j a v  a  2  s .c om*/
    long actions = BASE_ACTIONS;
    if (player.isCurrentWindowSeekable()) {
        actions |= PlaybackStateCompat.ACTION_SEEK_TO;
    }
    if (fastForwardIncrementMs > 0) {
        actions |= PlaybackStateCompat.ACTION_FAST_FORWARD;
    }
    if (rewindIncrementMs > 0) {
        actions |= PlaybackStateCompat.ACTION_REWIND;
    }
    return actions;
}

From source file:android.support.v17.leanback.media.MediaControllerGlue.java

@Override
public long getSupportedActions() {
    long result = 0;
    long actions = mMediaController.getPlaybackState().getActions();
    if ((actions & PlaybackStateCompat.ACTION_PLAY_PAUSE) != 0) {
        result |= ACTION_PLAY_PAUSE;/* w w w  .j av a2  s  . c  om*/
    }
    if ((actions & PlaybackStateCompat.ACTION_SKIP_TO_NEXT) != 0) {
        result |= ACTION_SKIP_TO_NEXT;
    }
    if ((actions & PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS) != 0) {
        result |= ACTION_SKIP_TO_PREVIOUS;
    }
    if ((actions & PlaybackStateCompat.ACTION_FAST_FORWARD) != 0) {
        result |= ACTION_FAST_FORWARD;
    }
    if ((actions & PlaybackStateCompat.ACTION_REWIND) != 0) {
        result |= ACTION_REWIND;
    }
    return result;
}

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

private long getAvailableActions() {
    long actions = PlaybackStateCompat.ACTION_PLAY | PlaybackStateCompat.ACTION_PLAY_FROM_MEDIA_ID
            | PlaybackStateCompat.ACTION_PLAY_FROM_URI | PlaybackStateCompat.ACTION_PLAY_FROM_SEARCH
            | PlaybackStateCompat.ACTION_PREPARE | PlaybackStateCompat.ACTION_PREPARE_FROM_MEDIA_ID
            | PlaybackStateCompat.ACTION_PREPARE_FROM_URI | PlaybackStateCompat.ACTION_REWIND
            | PlaybackStateCompat.ACTION_FAST_FORWARD;
    if (mPlayback.isPlaying()) {
        actions |= PlaybackStateCompat.ACTION_PAUSE;
    }/*from   w  w  w .  j av  a2  s . c  o  m*/
    if (mQueue != null) {
        if (mQueue.hasNext() || mQueue.getNextQueue() != null)
            actions |= PlaybackStateCompat.ACTION_SKIP_TO_NEXT;
        if (mQueue.hasPrevious() || mQueue.getPreviousQueue() != null)
            actions |= PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS;
        actions |= PlaybackStateCompat.ACTION_SKIP_TO_QUEUE_ITEM;
    }
    return actions;
}

From source file:android.support.v17.leanback.media.MediaControllerAdapter.java

@Override
public long getSupportedActions() {
    long supportedActions = 0;
    if (mController.getPlaybackState() == null) {
        return supportedActions;
    }//from w w  w.j  a v a2s  .co  m
    long actionsFromController = mController.getPlaybackState().getActions();
    // Translation.
    if ((actionsFromController & PlaybackStateCompat.ACTION_PLAY_PAUSE) != 0) {
        supportedActions |= ACTION_PLAY_PAUSE;
    }
    if ((actionsFromController & PlaybackStateCompat.ACTION_SKIP_TO_NEXT) != 0) {
        supportedActions |= ACTION_SKIP_TO_NEXT;
    }
    if ((actionsFromController & PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS) != 0) {
        supportedActions |= ACTION_SKIP_TO_PREVIOUS;
    }
    if ((actionsFromController & PlaybackStateCompat.ACTION_FAST_FORWARD) != 0) {
        supportedActions |= ACTION_FAST_FORWARD;
    }
    if ((actionsFromController & PlaybackStateCompat.ACTION_REWIND) != 0) {
        supportedActions |= ACTION_REWIND;
    }
    if ((actionsFromController & PlaybackStateCompat.ACTION_SET_REPEAT_MODE) != 0) {
        supportedActions |= ACTION_REPEAT;
    }
    if ((actionsFromController & PlaybackStateCompat.ACTION_SET_SHUFFLE_MODE) != 0) {
        supportedActions |= ACTION_SHUFFLE;
    }
    return supportedActions;
}

From source file:com.example.android.leanback.PlaybackTransportControlGlueSample.java

/**
 * Get supported actions from player adapter then translate it into playback state compat
 * related actions/* w  w  w. java  2  s .c  o  m*/
 */
private long getPlaybackStateActions() {
    long supportedActions = 0L;
    long actionsFromPlayerAdapter = getPlayerAdapter().getSupportedActions();
    if ((actionsFromPlayerAdapter & PlaybackBaseControlGlue.ACTION_SKIP_TO_PREVIOUS) != 0) {
        supportedActions |= PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS;
    } else if ((actionsFromPlayerAdapter & PlaybackBaseControlGlue.ACTION_SKIP_TO_NEXT) != 0) {
        supportedActions |= PlaybackStateCompat.ACTION_SKIP_TO_NEXT;
    } else if ((actionsFromPlayerAdapter & PlaybackBaseControlGlue.ACTION_REWIND) != 0) {
        supportedActions |= PlaybackStateCompat.ACTION_REWIND;
    } else if ((actionsFromPlayerAdapter & PlaybackBaseControlGlue.ACTION_FAST_FORWARD) != 0) {
        supportedActions |= PlaybackStateCompat.ACTION_FAST_FORWARD;
    } else if ((actionsFromPlayerAdapter & PlaybackBaseControlGlue.ACTION_PLAY_PAUSE) != 0) {
        supportedActions |= PlaybackStateCompat.ACTION_PLAY_PAUSE;
    } else if ((actionsFromPlayerAdapter & PlaybackBaseControlGlue.ACTION_REPEAT) != 0) {
        supportedActions |= PlaybackStateCompat.ACTION_SET_REPEAT_MODE;
    } else if ((actionsFromPlayerAdapter & PlaybackBaseControlGlue.ACTION_SHUFFLE) != 0) {
        supportedActions |= PlaybackStateCompat.ACTION_SET_SHUFFLE_MODE;
    }
    return supportedActions;
}

From source file:com.example.android.leanback.MediaSessionService.java

/**
 * Return supported actions related to current playback state.
 * Currently the return value from this function is a constant.
 * For demonstration purpose, the customized fast forward action and customized rewind action
 * are supported in our case.//from   w ww .java2  s .com
 *
 * @return playback state actions.
 */
private long getPlaybackStateActions() {
    long res = PlaybackStateCompat.ACTION_PLAY | PlaybackStateCompat.ACTION_PAUSE
            | PlaybackStateCompat.ACTION_PLAY_PAUSE | PlaybackStateCompat.ACTION_SKIP_TO_NEXT
            | PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS | PlaybackStateCompat.ACTION_FAST_FORWARD
            | PlaybackStateCompat.ACTION_REWIND | PlaybackStateCompat.ACTION_SET_SHUFFLE_MODE
            | PlaybackStateCompat.ACTION_SET_REPEAT_MODE;
    return res;
}

From source file:androidx.media.widget.MediaControlView2.java

private boolean canSeekBackward() {
    if (mPlaybackState != null) {
        return (mPlaybackState.getActions() & PlaybackStateCompat.ACTION_REWIND) != 0;
    }/*from w  w  w.j  ava  2  s . com*/
    return true;
}

From source file:androidx.media.MediaSession2ImplBase.java

@Override
PlaybackStateCompat getPlaybackStateCompat() {
    synchronized (mLock) {
        int state = MediaUtils2.createPlaybackStateCompatState(getPlayerState(), getBufferingState());
        // TODO: Consider following missing stuff
        //       - setCustomAction(): Fill custom layout
        //       - setErrorMessage(): Fill error message when notifyError() is called.
        //       - setActiveQueueItemId(): Fill here with the current media item...
        //       - setExtra(): No idea at this moment.
        // TODO: generate actions from the allowed commands.
        long allActions = PlaybackStateCompat.ACTION_STOP | PlaybackStateCompat.ACTION_PAUSE
                | PlaybackStateCompat.ACTION_PLAY | PlaybackStateCompat.ACTION_REWIND
                | PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS | PlaybackStateCompat.ACTION_SKIP_TO_NEXT
                | PlaybackStateCompat.ACTION_FAST_FORWARD | PlaybackStateCompat.ACTION_SET_RATING
                | PlaybackStateCompat.ACTION_SEEK_TO | PlaybackStateCompat.ACTION_PLAY_PAUSE
                | PlaybackStateCompat.ACTION_PLAY_FROM_MEDIA_ID | PlaybackStateCompat.ACTION_PLAY_FROM_SEARCH
                | PlaybackStateCompat.ACTION_SKIP_TO_QUEUE_ITEM | PlaybackStateCompat.ACTION_PLAY_FROM_URI
                | PlaybackStateCompat.ACTION_PREPARE | PlaybackStateCompat.ACTION_PREPARE_FROM_MEDIA_ID
                | PlaybackStateCompat.ACTION_PREPARE_FROM_SEARCH | PlaybackStateCompat.ACTION_PREPARE_FROM_URI
                | PlaybackStateCompat.ACTION_SET_REPEAT_MODE | PlaybackStateCompat.ACTION_SET_SHUFFLE_MODE
                | PlaybackStateCompat.ACTION_SET_CAPTIONING_ENABLED;
        return new PlaybackStateCompat.Builder().setState(state, getCurrentPosition(), getPlaybackSpeed())
                .setActions(allActions).setBufferedPosition(getBufferedPosition()).build();
    }/*from  www.j a va2s . c om*/
}

From source file:androidx.media.widget.VideoView2.java

private void updatePlaybackState() {
    if (mStateBuilder == null) {
        /*/*  w  w  w.jav  a  2 s .co  m*/
        // Get the capabilities of the player for this stream
        mMetadata = mMediaPlayer.getMetadata(MediaPlayer.METADATA_ALL,
            MediaPlayer.BYPASS_METADATA_FILTER);
                
        // Add Play action as default
        long playbackActions = PlaybackStateCompat.ACTION_PLAY;
        if (mMetadata != null) {
        if (!mMetadata.has(Metadata.PAUSE_AVAILABLE)
                || mMetadata.getBoolean(Metadata.PAUSE_AVAILABLE)) {
            playbackActions |= PlaybackStateCompat.ACTION_PAUSE;
        }
        if (!mMetadata.has(Metadata.SEEK_BACKWARD_AVAILABLE)
                || mMetadata.getBoolean(Metadata.SEEK_BACKWARD_AVAILABLE)) {
            playbackActions |= PlaybackStateCompat.ACTION_REWIND;
        }
        if (!mMetadata.has(Metadata.SEEK_FORWARD_AVAILABLE)
                || mMetadata.getBoolean(Metadata.SEEK_FORWARD_AVAILABLE)) {
            playbackActions |= PlaybackStateCompat.ACTION_FAST_FORWARD;
        }
        if (!mMetadata.has(Metadata.SEEK_AVAILABLE)
                || mMetadata.getBoolean(Metadata.SEEK_AVAILABLE)) {
            playbackActions |= PlaybackStateCompat.ACTION_SEEK_TO;
        }
        } else {
        playbackActions |= (PlaybackStateCompat.ACTION_PAUSE
                | PlaybackStateCompat.ACTION_REWIND
                | PlaybackStateCompat.ACTION_FAST_FORWARD
                | PlaybackStateCompat.ACTION_SEEK_TO);
        }
        */
        // TODO determine the actionable list based the metadata info.
        long playbackActions = PlaybackStateCompat.ACTION_PLAY | PlaybackStateCompat.ACTION_PAUSE
                | PlaybackStateCompat.ACTION_REWIND | PlaybackStateCompat.ACTION_FAST_FORWARD
                | PlaybackStateCompat.ACTION_SEEK_TO;
        mStateBuilder = new PlaybackStateCompat.Builder();
        mStateBuilder.setActions(playbackActions);

        if (mCustomActionList != null) {
            for (PlaybackStateCompat.CustomAction action : mCustomActionList) {
                mStateBuilder.addCustomAction(action);
            }
        }
    }
    mStateBuilder.setState(getCorrespondingPlaybackState(), mMediaPlayer.getCurrentPosition(), mSpeed);
    if (mCurrentState != STATE_ERROR && mCurrentState != STATE_IDLE && mCurrentState != STATE_PREPARING) {
        // TODO: this should be replaced with MediaPlayer2.getBufferedPosition() once it is
        // implemented.
        if (mCurrentBufferPercentage == -1) {
            mStateBuilder.setBufferedPosition(-1);
        } else {
            mStateBuilder.setBufferedPosition(
                    (long) (mCurrentBufferPercentage / 100.0 * mMediaPlayer.getDuration()));
        }
    }

    // Set PlaybackState for MediaSession
    if (mMediaSession != null) {
        PlaybackStateCompat state = mStateBuilder.build();
        mMediaSession.setPlaybackState(state);
    }
}