From ff3c103377d766c91f49166513c531b675334473 Mon Sep 17 00:00:00 2001 From: Julian Winkler Date: Sun, 26 May 2024 16:11:30 +0200 Subject: [PATCH] SoundPool: explicitly extract soundfile asset With the recent changes assets are no longer extracted by default --- src/api-impl/android/content/res/AssetManager.java | 2 +- src/api-impl/android/media/SoundPool.java | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/api-impl/android/content/res/AssetManager.java b/src/api-impl/android/content/res/AssetManager.java index f9907f72..cf328c29 100644 --- a/src/api-impl/android/content/res/AssetManager.java +++ b/src/api-impl/android/content/res/AssetManager.java @@ -610,7 +610,7 @@ public final class AssetManager { return cookies; } - private static void extractFromAPK(String path, String target) throws IOException { + public static void extractFromAPK(String path, String target) throws IOException { if (path.endsWith("/")) { // directory try (JarFile apk = new JarFile(Context.this_application.getPackageCodePath())) { Enumeration entries = apk.entries(); diff --git a/src/api-impl/android/media/SoundPool.java b/src/api-impl/android/media/SoundPool.java index cce56a9f..9bd3b3fd 100644 --- a/src/api-impl/android/media/SoundPool.java +++ b/src/api-impl/android/media/SoundPool.java @@ -1,6 +1,9 @@ package android.media; +import java.io.IOException; + import android.content.res.AssetFileDescriptor; +import android.content.res.AssetManager; public class SoundPool { @@ -21,8 +24,9 @@ public class SoundPool { nativePool = native_constructor(); } - public int load(AssetFileDescriptor afd, int priority) { - return nativeLoad(nativePool, android.os.Environment.getExternalStorageDirectory().getPath() + afd.fileName); + public int load(AssetFileDescriptor afd, int priority) throws IOException { + AssetManager.extractFromAPK(afd.fileName, afd.fileName); + return nativeLoad(nativePool, android.os.Environment.getExternalStorageDirectory().getPath() + "/" + afd.fileName); } /**