How can i get rid of the play / pause button, next button and previous button button from the notifications? Removing the whole window from the notifications would be ok too. I make use of exoplayer in combination with mediasession.
My code looks like this
import androidx.media3.common.MediaItem;
import androidx.media3.common.Player;
import androidx.media3.exoplayer.ExoPlayer;
import androidx.media3.session.MediaSession;
import androidx.media3.session.MediaSessionService;
public class MyExoPlayerService extends MediaSessionService {
private ExoPlayer myExoPlayer;
private MediaSession mediaSession;
@Override
public void onCreate() {
Log.d(Const.TAG, "Create media session service");
super.onCreate();
myExoPlayer = new ExoPlayer.Builder(this)
.build();
if(mediaSession.getPlayer()==null) {
Log.d(Const.TAG, "Player is null");
}
}
@Override
public void onDestroy() {
Log.d(Const.TAG, "Destroy media session service");
release();
super.onDestroy();
}
public void setDisc(Uri uri) {
// Build the media item.
MediaItem mediaItem = MediaItem.fromUri(uri);
// Set the media item to be played.
mediaSession.getPlayer().setMediaItem(mediaItem);
//Set repeat mode to loop
mediaSession.getPlayer().setRepeatMode(Player.REPEAT_MODE_ALL);
// Prepare the player.
mediaSession.getPlayer().prepare();
// Start the playback.
mediaSession.getPlayer().setPlayWhenReady(true);
}
public void release() {
Log.d(Const.TAG, "Release media session service");
if(myExoPlayer!=null){
myExoPlayer.release();
}
if(mediaSession!=null) {
if(mediaSession.getPlayer()!=null) {
mediaSession.getPlayer().release();
}
mediaSession.release();
mediaSession = null;
}
}
public void pause() {
if(myExoPlayer!=null){
mediaSession.getPlayer().setPlayWhenReady(false);
}
}
public void start() {
if(myExoPlayer!=null){
mediaSession.getPlayer().setPlayWhenReady(true);
}
}
public boolean isPlaying() {
return mediaSession.getPlayer().getPlayWhenReady();
}
@Override
public MediaSession onGetSession(MediaSession.ControllerInfo controllerInfo) {
// This example always accepts the connection request
return mediaSession;
}
}
and that is how I create the exoplayer service:
private void prepareExoPlayerService() {
// Set flag
mediaControllerIsPrepared = new AtomicBoolean();
mediaControllerIsPrepared.set(false);
// Build session token
SessionToken sessionToken =
new SessionToken(this, new ComponentName(this, MyExoPlayerService.class));
// Build media controller
mediaControllerFuture =
new MediaController.Builder(this, sessionToken).buildAsync();
mediaControllerFuture.addListener(() -> {
// Call controllerFuture.get() to retrieve the MediaController.
// MediaController implements the Player interface, so it can be
// attached to the PlayerView UI component.
//playerView.setPlayer(controllerFuture.get());
mediaControllerIsPrepared.set(true);
}, MoreExecutors.directExecutor());
}
Found a temporary workaround. Temporary because the method call is deprecated.
I added that to my class MediaSessionService.