Browse Source

修改mid声源文件路径

Pq 1 year ago
parent
commit
4d6bf5d65e

+ 16 - 2
midiplaylib/src/main/java/com/jinmingyunle/midiplaylib/MidiPlayerUtils.java

@@ -18,6 +18,7 @@ import com.jinmingyunle.midiplaylib.midifile.MidiTrack;
 import com.jinmingyunle.midiplaylib.utils.Utils;
 import com.un4seen.bass.BASS;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -517,7 +518,7 @@ public class MidiPlayerUtils {
 
 
     private void playSound(Context context, float speed) {
-        if (BassMusicPlay.getInstance().LoadSoundFont(context.getApplicationContext().getExternalFilesDir("colexiu") + "/dysf.sf2")) {
+        if (BassMusicPlay.getInstance().LoadSoundFont(getCacheDir(context, "colexiu") + "/dysf.sf2")) {
             if (currentStartPosition != 0) {
                 BassMusicPlay.getInstance().Seek(currentStartPosition);
             }
@@ -543,7 +544,7 @@ public class MidiPlayerUtils {
         if (compleListener != null) {
             BassMusicPlay.getInstance().SetOnCompletionListener(compleListener);
         }
-        if (BassMusicPlay.getInstance().LoadSoundFont(mContext.getApplicationContext().getExternalFilesDir("colexiu") + "/dysf.sf2")) {
+        if (BassMusicPlay.getInstance().LoadSoundFont(getCacheDir(mContext, "colexiu") + "/dysf.sf2")) {
             if (currentStartPosition != 0) {
                 BassMusicPlay.getInstance().Seek(currentStartPosition);
             }
@@ -558,4 +559,17 @@ public class MidiPlayerUtils {
 
     }
 
+    public static String getCacheDir(Context context, String directory) {
+        String fileDir;
+        try {
+            File file = new File(context.getExternalCacheDir() + File.separator + directory);
+            if (!file.exists()) {
+                file.mkdirs();
+            }
+            fileDir = file.getAbsolutePath();
+            return fileDir;
+        } catch (Exception e) {
+            return "";
+        }
+    }
 }