extended android jni with onMediaSessionSetPositionState

This commit is contained in:
Shinichi Morimoto 2019-11-27 23:06:59 +09:00
parent 4d215c9557
commit 41ff93eca2
4 changed files with 24 additions and 1 deletions

View file

@ -255,4 +255,15 @@ public class MainActivity extends Activity implements Servo.Client {
return;
}
}
@Override
public void onMediaSessionSetPositionState(float duration, float position, float playbackRate) {
Log.d("onMediaSessionSetPositionState", duration + " " + position + " " + playbackRate);
if (mMediaSession == null) {
mMediaSession = new MediaSession(mServoView, this, getApplicationContext());
}
mMediaSession.setPositionState(duration, position, playbackRate);
return;
}
}

View file

@ -192,4 +192,8 @@ public class MediaSession {
showMediaSessionControls();
}
}
}
// Not implemented
// see https://github.com/servo/servo/pull/24885#discussion_r352496117
public void setPositionState(float duration, float position, float playbackRate) {}
}

View file

@ -115,6 +115,8 @@ public class JNIServo {
void onMediaSessionMetadata(String title, String artist, String album);
void onMediaSessionPlaybackStateChange(int state);
void onMediaSessionSetPositionState(float duration, float position, float playbackRate);
}
}

View file

@ -192,6 +192,8 @@ public class Servo {
void onMediaSessionMetadata(String title, String artist, String album);
void onMediaSessionPlaybackStateChange(int state);
void onMediaSessionSetPositionState(float duration, float position, float playbackRate);
}
public interface RunCallback {
@ -285,5 +287,9 @@ public class Servo {
public void onMediaSessionPlaybackStateChange(int state) {
mRunCallback.inUIThread(() -> mClient.onMediaSessionPlaybackStateChange(state));
}
public void onMediaSessionSetPositionState(float duration, float position, float playbackRate) {
mRunCallback.inUIThread(() -> mClient.onMediaSessionSetPositionState(duration, position, playbackRate));
}
}
}