pull/586/head
FongMi 2 years ago
parent 7a2d12671d
commit b1a7478022
  1. 9
      app/src/main/java/com/fongmi/android/tv/player/Players.java
  2. 2
      app/src/mobile/AndroidManifest.xml

@ -18,7 +18,6 @@ import androidx.media3.common.AudioAttributes;
import androidx.media3.common.PlaybackException;
import androidx.media3.common.Player;
import androidx.media3.exoplayer.ExoPlayer;
import androidx.media3.exoplayer.analytics.AnalyticsListener;
import androidx.media3.exoplayer.util.EventLogger;
import androidx.media3.ui.PlayerView;
@ -53,7 +52,7 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
public class Players implements Player.Listener, AnalyticsListener, ParseCallback {
public class Players implements Player.Listener, ParseCallback {
private static final String TAG = Players.class.getSimpleName();
@ -88,6 +87,7 @@ public class Players implements Player.Listener, AnalyticsListener, ParseCallbac
private void createSession(Activity activity) {
session = new MediaSessionCompat(activity, "TV");
session.setCallback(SessionCallback.create(this));
session.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS | MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS);
session.setSessionActivity(PendingIntent.getActivity(App.get(), 0, new Intent(App.get(), activity.getClass()), PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE));
MediaControllerCompat.setMediaController(activity, session.getController());
}
@ -103,7 +103,6 @@ public class Players implements Player.Listener, AnalyticsListener, ParseCallbac
player.addAnalyticsListener(new EventLogger());
player.setHandleAudioBecomingNoisy(true);
view.setRender(Setting.getRender());
player.addAnalyticsListener(this);
player.setPlayWhenReady(true);
player.addListener(this);
view.setPlayer(player);
@ -298,6 +297,7 @@ public class Players implements Player.Listener, AnalyticsListener, ParseCallbac
reset();
session.setActive(false);
if (player != null) player.stop();
if (player != null) player.clearMediaItems();
setPlaybackState(PlaybackStateCompat.STATE_STOPPED);
}
@ -312,7 +312,6 @@ public class Players implements Player.Listener, AnalyticsListener, ParseCallbac
private void releasePlayer() {
if (player == null) return;
player.removeListener(this);
player.clearMediaItems();
player.release();
player = null;
}
@ -513,7 +512,7 @@ public class Players implements Player.Listener, AnalyticsListener, ParseCallbac
@Override
public void onEvents(@NonNull Player player, @NonNull Player.Events events) {
if (!events.containsAny(Player.EVENT_PLAYBACK_STATE_CHANGED, Player.EVENT_PLAY_WHEN_READY_CHANGED, Player.EVENT_IS_PLAYING_CHANGED, Player.EVENT_TIMELINE_CHANGED, Player.EVENT_PLAYBACK_PARAMETERS_CHANGED, Player.EVENT_POSITION_DISCONTINUITY, Player.EVENT_REPEAT_MODE_CHANGED, Player.EVENT_SHUFFLE_MODE_ENABLED_CHANGED, Player.EVENT_MEDIA_METADATA_CHANGED)) return;
if (!events.containsAny(Player.EVENT_PLAYBACK_STATE_CHANGED, Player.EVENT_PLAY_WHEN_READY_CHANGED, Player.EVENT_IS_PLAYING_CHANGED, Player.EVENT_TIMELINE_CHANGED, Player.EVENT_PLAYBACK_PARAMETERS_CHANGED, Player.EVENT_POSITION_DISCONTINUITY, Player.EVENT_MEDIA_METADATA_CHANGED)) return;
setPlaybackState(isPlaying() ? PlaybackStateCompat.STATE_PLAYING : PlaybackStateCompat.STATE_PAUSED);
}

@ -125,7 +125,7 @@
<service
android:name=".service.PlaybackService"
android:exported="false"
android:exported="true"
android:foregroundServiceType="mediaPlayback">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />

Loading…
Cancel
Save