[mobile] support bg play - part 4

pull/142/head
FongMi 3 years ago
parent 4948bf2422
commit 80358e0804
  1. 2
      app/src/main/java/com/fongmi/android/tv/Setting.java
  2. 14
      app/src/main/java/com/fongmi/android/tv/player/Players.java
  3. 4
      app/src/main/res/values-zh-rCN/strings.xml
  4. 4
      app/src/main/res/values-zh-rTW/strings.xml
  5. 4
      app/src/main/res/values/strings.xml
  6. 15
      app/src/mobile/java/com/fongmi/android/tv/service/PlaybackService.java
  7. 6
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  8. 6
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java

@ -231,7 +231,7 @@ public class Setting {
}
public static boolean isBackgroundOn() {
return getBackground() == 1 || getBackground() == 2;
return getBackground() == 1;
}
public static boolean isBackgroundPiP() {

@ -1,5 +1,8 @@
package com.fongmi.android.tv.player;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.support.v4.media.session.MediaSessionCompat;
import android.text.TextUtils;
@ -24,6 +27,7 @@ import com.fongmi.android.tv.event.PlayerEvent;
import com.fongmi.android.tv.impl.ParseCallback;
import com.fongmi.android.tv.utils.Notify;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Utils;
import com.github.catvod.crawler.SpiderDebug;
import java.util.Formatter;
@ -73,16 +77,22 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
return player == SYS || player == IJK;
}
public Players init() {
public Players init(Activity activity) {
player = Setting.getPlayer();
decode = Setting.getDecode();
builder = new StringBuilder();
runnable = ErrorEvent::timeout;
session = new MediaSessionCompat(App.get(), "TV");
formatter = new Formatter(builder, Locale.getDefault());
createSession(activity);
return this;
}
private void createSession(Activity activity) {
session = new MediaSessionCompat(activity, "TV");
session.setSessionActivity(PendingIntent.getActivity(activity, 0, new Intent(activity, activity.getClass()), Utils.getPendingFlag()));
session.setActive(true);
}
public void set(PlayerView exo, IjkVideoView ijk) {
releaseExo();
releaseIjk();

@ -80,8 +80,8 @@
<string name="setting_cache">缓存</string>
<string name="setting_version">版本</string>
<string name="setting_storage">权限</string>
<string name="setting_off"></string>
<string name="setting_on"></string>
<string name="setting_off"></string>
<string name="setting_on"></string>
<!-- Search -->
<string name="search_keyword">关键字…</string>

@ -80,8 +80,8 @@
<string name="setting_cache">暫存</string>
<string name="setting_version">版本</string>
<string name="setting_storage">權限</string>
<string name="setting_off"></string>
<string name="setting_on"></string>
<string name="setting_off"></string>
<string name="setting_on"></string>
<!-- Search -->
<string name="search_keyword">關鍵字…</string>

@ -80,8 +80,8 @@
<string name="setting_cache">Cache</string>
<string name="setting_version">Version</string>
<string name="setting_storage">Permission</string>
<string name="setting_off">OFF</string>
<string name="setting_on">ON</string>
<string name="setting_off">Off</string>
<string name="setting_on">On</string>
<!-- Search -->
<string name="search_keyword">Keywords…</string>

@ -1,9 +1,7 @@
package com.fongmi.android.tv.service;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
@ -29,7 +27,6 @@ import com.fongmi.android.tv.player.Players;
import com.fongmi.android.tv.receiver.ActionReceiver;
import com.fongmi.android.tv.utils.ImgUtil;
import com.fongmi.android.tv.utils.Notify;
import com.fongmi.android.tv.utils.Utils;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@ -37,14 +34,12 @@ import org.greenrobot.eventbus.ThreadMode;
public class PlaybackService extends Service {
private static Class<?> classes;
private static Players players;
private final int ID = 9527;
private Bitmap bitmap;
public static void start(Activity activity, Players players) {
ContextCompat.startForegroundService(activity, new Intent(activity, PlaybackService.class));
PlaybackService.classes = activity.getClass();
public static void start(Players players) {
ContextCompat.startForegroundService(App.get(), new Intent(App.get(), PlaybackService.class));
PlaybackService.players = players;
}
@ -82,13 +77,11 @@ public class PlaybackService extends Service {
}
private Notification buildNotification() {
Intent intent = new Intent(this, classes);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, Utils.getPendingFlag());
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, Notify.DEFAULT);
builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC);
builder.setPriority(NotificationCompat.PRIORITY_LOW);
builder.setSmallIcon(R.drawable.ic_logo);
builder.setContentIntent(pendingIntent);
builder.setContentIntent(players.getSession().getController().getSessionActivity());
builder.setContentTitle(getTitle());
builder.setContentText(getText());
builder.setOngoing(false);
@ -100,7 +93,7 @@ public class PlaybackService extends Service {
MediaStyle mediaStyle = new MediaStyle();
mediaStyle.setShowActionsInCompactView(0, 2);
mediaStyle.setShowCancelButton(true);
//mediaStyle.setMediaSession(players.getSession().getSessionToken());
mediaStyle.setMediaSession(players.getSession().getSessionToken());
mediaStyle.setCancelButtonIntent(ActionReceiver.getPendingIntent(this, ActionEvent.CANCEL));
builder.setDeleteIntent(ActionReceiver.getPendingIntent(this, ActionEvent.CANCEL));
if (bitmap != null) setLargeIcon(builder);

@ -149,7 +149,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
mFormatDate = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
mKeyDown = CustomKeyDownLive.create(this, mBinding.video);
mClock = Clock.create(mBinding.widget.time);
mPlayers = new Players().init();
mPlayers = new Players().init(this);
mHides = new ArrayList<>();
mR1 = this::hideControl;
mR2 = this::setTraffic;
@ -891,12 +891,14 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
super.onPictureInPictureModeChanged(isInPictureInPictureMode);
if (isInPictureInPictureMode) {
PlaybackService.start(mPlayers);
setSubtitle(10);
hideControl();
hideInfo();
hideUI();
} else {
hideInfo();
PlaybackService.stop();
setSubtitle(Setting.getSubtitle());
if (isStop()) finish();
}
@ -931,7 +933,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
@Override
protected void onPause() {
super.onPause();
if (Setting.isBackgroundOn()) PlaybackService.start(this, mPlayers);
if (Setting.isBackgroundOn()) PlaybackService.start(mPlayers);
mClock.stop();
}

@ -272,10 +272,10 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mFrameParams = mBinding.video.getLayoutParams();
mBinding.progressLayout.showProgress();
mBinding.swipeLayout.setEnabled(false);
mPlayers = new Players().init(this);
mObserveDetail = this::setDetail;
mObservePlayer = this::setPlayer;
mObserveSearch = this::setSearch;
mPlayers = new Players().init();
mDialogs = new ArrayList<>();
mBroken = new ArrayList<>();
mClock = Clock.create();
@ -1430,12 +1430,14 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
super.onPictureInPictureModeChanged(isInPictureInPictureMode);
if (isInPictureInPictureMode) {
PlaybackService.start(mPlayers);
enterFullscreen();
setSubtitle(10);
hideControl();
hideSheet();
} else {
exitFullscreen();
PlaybackService.stop();
if (isStop()) finish();
}
}
@ -1471,7 +1473,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
@Override
protected void onPause() {
super.onPause();
if (Setting.isBackgroundOn()) PlaybackService.start(this, mPlayers);
if (Setting.isBackgroundOn()) PlaybackService.start(mPlayers);
}
@Override

Loading…
Cancel
Save