diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java
index 72e95ddef..9c49dc6b7 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java
@@ -512,6 +512,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownVod.Liste
@Override
protected void onStart() {
super.onStart();
+ mBinding.exo.setPlayer(mPlayers.get());
mClock.stop().start();
onPlay();
}
@@ -534,6 +535,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownVod.Liste
super.onStop();
if (Setting.isBackgroundOff()) onPaused();
if (Setting.isBackgroundOff()) mClock.stop();
+ mBinding.exo.setPlayer(null);
}
@Override
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
index 2b934c739..29372f016 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
@@ -961,6 +961,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
@Override
protected void onStart() {
super.onStart();
+ mBinding.exo.setPlayer(mPlayers.get());
mClock.stop().start();
onPlay();
}
@@ -983,6 +984,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
super.onStop();
if (Setting.isBackgroundOff()) onPaused();
if (Setting.isBackgroundOff()) mClock.stop();
+ mBinding.exo.setPlayer(null);
}
@Override
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
index 3c002fde1..03e5f41cc 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
@@ -1396,6 +1396,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
@Override
protected void onStart() {
super.onStart();
+ mBinding.exo.setPlayer(mPlayers.get());
mClock.stop().start();
onPlay();
}
@@ -1418,6 +1419,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
super.onStop();
if (Setting.isBackgroundOff()) onPaused();
if (Setting.isBackgroundOff()) mClock.stop();
+ mBinding.exo.setPlayer(null);
}
@Override
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8e652eeac..3dc6c72a6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -77,6 +77,7 @@
+
diff --git a/app/src/main/java/com/fongmi/android/tv/event/ActionEvent.java b/app/src/main/java/com/fongmi/android/tv/event/ActionEvent.java
index ed47b8ee1..24b80bad9 100644
--- a/app/src/main/java/com/fongmi/android/tv/event/ActionEvent.java
+++ b/app/src/main/java/com/fongmi/android/tv/event/ActionEvent.java
@@ -11,6 +11,7 @@ public class ActionEvent {
public static String NEXT = BuildConfig.APPLICATION_ID.concat(".next");
public static String PLAY = BuildConfig.APPLICATION_ID.concat(".play");
public static String PAUSE = BuildConfig.APPLICATION_ID.concat(".pause");
+ public static String AUDIO = BuildConfig.APPLICATION_ID.concat(".audio");
public static String UPDATE = BuildConfig.APPLICATION_ID.concat(".update");
private final String action;
diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
index 1da0cebe0..c6e5a70c3 100644
--- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
+++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
@@ -91,6 +91,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDown.Listener
private Runnable mR1;
private Runnable mR2;
private Runnable mR3;
+ private boolean audioOnly;
private boolean redirect;
private boolean rotate;
private boolean stop;
@@ -728,6 +729,9 @@ public class LiveActivity extends BaseActivity implements CustomKeyDown.Listener
nextChannel();
} else if (ActionEvent.PREV.equals(event.getAction())) {
prevChannel();
+ } else if (ActionEvent.AUDIO.equals(event.getAction())) {
+ moveTaskToBack(true);
+ setAudioOnly(true);
} else if (ActionEvent.STOP.equals(event.getAction())) {
finish();
}
@@ -876,6 +880,14 @@ public class LiveActivity extends BaseActivity implements CustomKeyDown.Listener
checkPlayImg();
}
+ public boolean isAudioOnly() {
+ return audioOnly;
+ }
+
+ public void setAudioOnly(boolean audioOnly) {
+ this.audioOnly = audioOnly;
+ }
+
public boolean isRedirect() {
return redirect;
}
@@ -1046,6 +1058,8 @@ public class LiveActivity extends BaseActivity implements CustomKeyDown.Listener
@Override
protected void onStart() {
super.onStart();
+ mBinding.exo.setPlayer(mPlayers.get());
+ setAudioOnly(false);
setStop(false);
onPlay();
}
@@ -1067,7 +1081,8 @@ public class LiveActivity extends BaseActivity implements CustomKeyDown.Listener
protected void onStop() {
super.onStop();
if (Setting.isBackgroundOff()) onPaused();
- setStop(true);
+ if (!isAudioOnly()) setStop(true);
+ mBinding.exo.setPlayer(null);
}
@Override
diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
index db782e572..cf7dc0a6c 100644
--- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
+++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
@@ -133,6 +133,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
private History mHistory;
private Players mPlayers;
private boolean fullscreen;
+ private boolean audioOnly;
private boolean initAuto;
private boolean autoMode;
private boolean useParse;
@@ -1125,6 +1126,9 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mBinding.control.next.performClick();
} else if (ActionEvent.PREV.equals(event.getAction())) {
mBinding.control.prev.performClick();
+ } else if (ActionEvent.AUDIO.equals(event.getAction())) {
+ moveTaskToBack(true);
+ setAudioOnly(true);
} else if (ActionEvent.STOP.equals(event.getAction())) {
finish();
}
@@ -1356,6 +1360,14 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
Util.toggleFullscreen(this, this.fullscreen = fullscreen);
}
+ public boolean isAudioOnly() {
+ return audioOnly;
+ }
+
+ public void setAudioOnly(boolean audioOnly) {
+ this.audioOnly = audioOnly;
+ }
+
private boolean isInitAuto() {
return initAuto;
}
@@ -1581,7 +1593,9 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
@Override
protected void onStart() {
super.onStart();
+ mBinding.exo.setPlayer(mPlayers.get());
mClock.stop().start();
+ setAudioOnly(false);
setStop(false);
onPlay();
}
@@ -1602,9 +1616,10 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
@Override
protected void onStop() {
super.onStop();
- if (Setting.isBackgroundOff()) onPaused();
if (Setting.isBackgroundOff()) mClock.stop();
- setStop(true);
+ if (Setting.isBackgroundOff()) onPaused();
+ if (!isAudioOnly()) setStop(true);
+ mBinding.exo.setPlayer(null);
}
@Override
diff --git a/app/src/mobile/java/com/fongmi/android/tv/utils/PiP.java b/app/src/mobile/java/com/fongmi/android/tv/utils/PiP.java
index 869512365..0e0a766d8 100644
--- a/app/src/mobile/java/com/fongmi/android/tv/utils/PiP.java
+++ b/app/src/mobile/java/com/fongmi/android/tv/utils/PiP.java
@@ -65,7 +65,7 @@ public class PiP {
public void update(Activity activity, boolean play) {
if (noPiP()) return;
List actions = new ArrayList<>();
- actions.add(buildRemoteAction(activity, R.drawable.exo_icon_previous, R.string.exo_controls_previous_description, ActionEvent.PREV));
+ actions.add(buildRemoteAction(activity, com.fongmi.android.tv.R.drawable.ic_action_audio, R.string.exo_controls_hide, ActionEvent.AUDIO));
actions.add(getPlayPauseAction(activity, play));
actions.add(buildRemoteAction(activity, R.drawable.exo_icon_next, R.string.exo_controls_next_description, ActionEvent.NEXT));
try {
diff --git a/app/src/mobile/res/drawable/ic_action_audio.xml b/app/src/mobile/res/drawable/ic_action_audio.xml
new file mode 100644
index 000000000..454f8f9ed
--- /dev/null
+++ b/app/src/mobile/res/drawable/ic_action_audio.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
\ No newline at end of file