Dynamic load so

pull/123/head
FongMi 3 years ago
parent 64677ca1f9
commit 5ef8f2e8b0
  1. 18
      app/src/main/java/com/fongmi/android/tv/api/SoLoader.java
  2. 7
      ijkplayer/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java

@ -5,7 +5,6 @@ import com.fongmi.android.tv.net.OKHttp;
import com.fongmi.android.tv.utils.FileUtil;
import java.io.File;
import java.io.IOException;
public class SoLoader {
@ -25,26 +24,21 @@ public class SoLoader {
}
public void load() {
App.execute(() -> {
checkSo(exo);
checkSo(ijk);
});
App.execute(() -> checkSo(exo));
App.execute(() -> checkSo(ijk));
}
private void checkSo(String name) {
try {
File file = new File(FileUtil.getLibDir(), name);
if (!file.exists()) download(file, name);
if (!file.exists()) remove(name.split("-")[0]);
if (!file.exists()) FileUtil.write(file, OKHttp.newCall(url + name).execute().body().bytes());
System.load(file.getAbsolutePath());
} catch (Exception ignored) {
} catch (Throwable e) {
e.printStackTrace();
}
}
private void download(File file, String name) throws IOException {
remove(name.split("-")[0]);
FileUtil.write(file, OKHttp.newCall(url + name).execute().body().bytes());
}
private void remove(String name) {
File directory = FileUtil.getLibDir();
for (File file : directory.listFiles()) {

@ -173,12 +173,7 @@ public final class IjkMediaPlayer extends AbstractMediaPlayer {
* Default library loader
* Load them by yourself, if your libraries are not installed at default place.
*/
private static final IjkLibLoader sLocalLibLoader = new IjkLibLoader() {
@Override
public void loadLibrary(String libName) throws UnsatisfiedLinkError, SecurityException {
System.loadLibrary(libName);
}
};
private static final IjkLibLoader sLocalLibLoader = System::loadLibrary;
private static volatile boolean mIsLibLoaded = false;
public static void loadLibrariesOnce(IjkLibLoader libLoader) {

Loading…
Cancel
Save