Browse Source

Fix android build

LouYihua 7 years ago
parent
commit
089d2174ce

+ 3 - 2
android/jni/src/android_jni.c

@@ -12,8 +12,8 @@
 #include "global.h"
 #include "palcfg.h"
 
-static char externalStoragePath[1024];
-static char midiInterFile[1024];
+char externalStoragePath[1024];
+char midiInterFile[1024];
 
 static int jstring_to_utf8(JNIEnv *env, jstring j_str, char *buffer, int capacity)
 {
@@ -181,6 +181,7 @@ void* JNI_mediaplayer_load(const char *filename)
 
 void JNI_mediaplayer_free(void *player)
 {
+    JNIEnv *env = getJNIEnv();
     (*env)->DeleteGlobalRef(env, (jobject)player);
 }
 

+ 3 - 3
android/jni/src/android_jni.h

@@ -4,9 +4,9 @@
 extern char externalStoragePath[255];
 extern char midiInterFile[255];
 
-void* JNI_mediaplayer_load(const char *)
-void JNI_mediaplayer_free(void *)
-void JNI_mediaplayer_play(void *);
+void* JNI_mediaplayer_load(const char *);
+void JNI_mediaplayer_free(void *);
+void JNI_mediaplayer_play(void *, int);
 void JNI_mediaplayer_stop(void *);
 int JNI_mediaplayer_isplaying(void *);
 void JNI_mediaplayer_setvolume(void *, int);

+ 1 - 1
android/jni/src/native_midi.c

@@ -96,7 +96,7 @@ void native_midi_stop(NativeMidiSong *song)
 
 int native_midi_active(NativeMidiSong *song)
 {
-    return song ? JNI_mediaplayer_play(song->player) : 0;
+    return song ? JNI_mediaplayer_isplaying(song->player) : 0;
 }
 
 void native_midi_setvolume(NativeMidiSong *song, int volume)

+ 6 - 2
android/src/io/github/sdlpal/PalActivity.java

@@ -10,6 +10,7 @@ import java.util.*;
 
 public class PalActivity extends SDLActivity {
     private static final String TAG = "sdlpal-debug";
+    private static MediaPlayer mediaPlayer;
 
     private static MediaPlayer JNI_mediaplayer_load(String filename){
         Log.v(TAG, "loading midi:" + filename);
@@ -21,6 +22,7 @@ public class PalActivity extends SDLActivity {
         } catch(IOException e) {
             Log.e(TAG, filename + " not available for playing, check");
         }
+        PalActivity.mediaPlayer = mediaPlayer;
         return mediaPlayer;
     }
 
@@ -43,7 +45,7 @@ public class PalActivity extends SDLActivity {
 
     @Override
     protected void onPause() {
-        if (!this.isFinishing()){
+        if (!this.isFinishing() && mediaPlayer != null) {
             mediaPlayer.pause();
         }
         super.onPause();
@@ -51,7 +53,9 @@ public class PalActivity extends SDLActivity {
 
     @Override
     protected void onResume() {
-        mediaPlayer.start();
+        if (mediaPlayer != null) {
+            mediaPlayer.start();
+        }
         super.onResume();
     }
 }