Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3f6d07c5 authored by Hyundo Moon's avatar Hyundo Moon Committed by Android (Google) Code Review
Browse files

Merge "MediaSession/Controller: Add playback speed related APIs"

parents 6ec9efb5 04fb2e74
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -27445,6 +27445,7 @@ package android.media.session {
    method public void seekTo(long);
    method public void sendCustomAction(@NonNull android.media.session.PlaybackState.CustomAction, @Nullable android.os.Bundle);
    method public void sendCustomAction(@NonNull String, @Nullable android.os.Bundle);
    method public void setPlaybackSpeed(float);
    method public void setRating(android.media.Rating);
    method public void skipToNext();
    method public void skipToPrevious();
@@ -27495,6 +27496,7 @@ package android.media.session {
    method public void onPrepareFromUri(android.net.Uri, android.os.Bundle);
    method public void onRewind();
    method public void onSeekTo(long);
    method public void onSetPlaybackSpeed(float);
    method public void onSetRating(@NonNull android.media.Rating);
    method public void onSkipToNext();
    method public void onSkipToPrevious();
+27 −0
Original line number Diff line number Diff line
@@ -492,6 +492,22 @@ public final class ControllerLink implements Parcelable {
        }
    }

    /**
     * Tell system that a controller requests changing the playback speed.
     *
     * @param packageName the package name of the controller
     * @param caller the {@link ControllerCallbackLink} of the controller
     * @param speed the playback speed
     */
    void setPlaybackSpeed(@NonNull String packageName, @NonNull ControllerCallbackLink caller,
            float speed) {
        try {
            mISessionController.setPlaybackSpeed(packageName, caller, speed);
        } catch (RemoteException e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * Tell system that a controller sends a custom action.
     *
@@ -759,6 +775,11 @@ public final class ControllerLink implements Parcelable {
                @NonNull Rating rating) {
        }

        /** Stub method for ISessionController.setPlaybackSpeed */
        public void setPlaybackSpeed(@NonNull String packageName,
                @NonNull ControllerCallbackLink caller, float speed) {
        }

        /** Stub method for ISessionController.sendCustomAction */
        public void sendCustomAction(@NonNull String packageName,
                @NonNull ControllerCallbackLink caller, @NonNull String action,
@@ -952,6 +973,12 @@ public final class ControllerLink implements Parcelable {
            mControllerStub.rate(packageName, caller, rating);
        }

        @Override
        public void setPlaybackSpeed(String packageName, ControllerCallbackLink caller,
                float speed) {
            mControllerStub.setPlaybackSpeed(packageName, caller, speed);
        }

        @Override
        public void sendCustomAction(String packageName, ControllerCallbackLink caller,
                String action, Bundle args) {
+2 −0
Original line number Diff line number Diff line
@@ -60,6 +60,8 @@ oneway interface ISessionCallback {
            long pos);
    void notifyRate(String packageName, int pid, int uid, in ControllerCallbackLink caller,
            in Rating rating);
    void notifySetPlaybackSpeed(String packageName, int pid, int uid,
            in ControllerCallbackLink caller, float speed);
    void notifyCustomAction(String packageName, int pid, int uid, in ControllerCallbackLink caller,
            String action, in Bundle args);

+1 −0
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ interface ISessionController {
    void rewind(String packageName, in ControllerCallbackLink caller);
    void seekTo(String packageName, in ControllerCallbackLink caller, long pos);
    void rate(String packageName, in ControllerCallbackLink caller, in Rating rating);
    void setPlaybackSpeed(String packageName, in ControllerCallbackLink caller, float speed);
    void sendCustomAction(String packageName, in ControllerCallbackLink caller,
            String action, in Bundle args);
    MediaMetadata getMetadata();
+13 −0
Original line number Diff line number Diff line
@@ -864,6 +864,19 @@ public final class MediaController {
            }
        }

        /**
         * Set the playback speed.
         *
         * @param speed The playback speed
         */
        public void setPlaybackSpeed(float speed) {
            try {
                mSessionBinder.setPlaybackSpeed(mContext.getPackageName(), mCbStub, speed);
            } catch (RuntimeException e) {
                Log.wtf(TAG, "Error calling setPlaybackSpeed.", e);
            }
        }

        /**
         * Send a custom action back for the {@link MediaSession} to perform.
         *
Loading