|
@@ -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 "";
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|