pull/137/head
FongMi 3 years ago
parent 5d4003a2c4
commit a682951a72
  1. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  2. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  3. 10
      app/src/main/java/com/fongmi/android/tv/bean/Core.java
  4. 15
      app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java
  5. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java
  6. 11
      tvbus/src/main/java/com/tvbus/engine/TVCore.java

@ -229,7 +229,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
private void setConfirm() {
confirm = true;
Notify.show(R.string.app_exit);
App.post(() -> confirm = false, 2000);
App.post(() -> confirm = false, 5000);
}
@Override

@ -659,7 +659,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
private void setConfirm() {
confirm = true;
Notify.show(R.string.app_exit);
App.post(() -> confirm = false, 2000);
App.post(() -> confirm = false, 5000);
}
public int getToggleCount() {

@ -2,6 +2,8 @@ package com.fongmi.android.tv.bean;
import android.text.TextUtils;
import androidx.annotation.Nullable;
import com.fongmi.android.tv.utils.Utils;
import com.google.gson.annotations.SerializedName;
@ -49,4 +51,12 @@ public class Core {
public String getSo() {
return !TextUtils.isEmpty(so) ? so : "tvcore";
}
@Override
public boolean equals(@Nullable Object obj) {
if (this == obj) return true;
if (!(obj instanceof Core)) return false;
Core it = (Core) obj;
return getSo().equals(it.getSo());
}
}

@ -4,6 +4,7 @@ import com.fongmi.android.tv.App;
import com.fongmi.android.tv.api.LiveConfig;
import com.fongmi.android.tv.bean.Core;
import com.fongmi.android.tv.player.Source;
import com.fongmi.android.tv.utils.Notify;
import com.google.gson.JsonObject;
import com.tvbus.engine.Listener;
import com.tvbus.engine.TVCore;
@ -12,6 +13,7 @@ public class TVBus implements Source.Extractor, Listener {
private TVCore tvcore;
private String hls;
private Core core;
@Override
public boolean match(String scheme, String host) {
@ -19,7 +21,7 @@ public class TVBus implements Source.Extractor, Listener {
}
private void init(Core core) {
tvcore = new TVCore(core.getSign(), core.getSo());
tvcore = new TVCore(core.getSo(), core.getSign());
tvcore.auth(core.getAuth()).broker(core.getBroker());
tvcore.name(core.getName()).pass(core.getPass());
tvcore.serv(0).play(8902).mode(1).listener(this);
@ -28,7 +30,8 @@ public class TVBus implements Source.Extractor, Listener {
@Override
public String fetch(String url) throws Exception {
if (tvcore == null) init(LiveConfig.get().getHome().getCore());
if (core != null && !core.equals(LiveConfig.get().getHome().getCore())) change();
if (tvcore == null) init(core = LiveConfig.get().getHome().getCore());
tvcore.start(url);
onWait();
return hls;
@ -46,6 +49,11 @@ public class TVBus implements Source.Extractor, Listener {
}
}
private void change() {
App.post(() -> Notify.show("內核已切換,正在重新啟動。"));
App.post(() -> System.exit(0), 1000);
}
@Override
public void stop() {
if (tvcore != null) tvcore.stop();
@ -54,7 +62,8 @@ public class TVBus implements Source.Extractor, Listener {
@Override
public void exit() {
if (tvcore != null) System.exit(0);
if (tvcore != null) tvcore.quit();
tvcore = null;
}
@Override

@ -118,7 +118,7 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt
private void setConfirm() {
confirm = true;
Notify.show(R.string.app_exit);
App.post(() -> confirm = false, 2000);
App.post(() -> confirm = false, 5000);
}
public void change(int position) {

@ -10,7 +10,7 @@ public class TVCore {
private long handle;
public TVCore(String sign, String so) {
public TVCore(String so, String sign) {
try {
Hook.pm(Init.context(), sign);
System.load(Github.getSo(so));
@ -117,6 +117,13 @@ public class TVCore {
}
}
public void quit() {
try {
quit(handle);
} catch (Throwable ignored) {
}
}
private native long initialise();
private native int init(long handle, Context context);
@ -127,6 +134,8 @@ public class TVCore {
private native void stop(long handle);
private native void quit(long handle);
private native void setServPort(long handle, int iPort);
private native void setPlayPort(long handle, int iPort);

Loading…
Cancel
Save