diff --git a/src/libs/minimp3/libc.h b/src/libs/minimp3/libc.h index d1e2ac2..0e021e0 100644 --- a/src/libs/minimp3/libc.h +++ b/src/libs/minimp3/libc.h @@ -44,6 +44,8 @@ #ifdef _MSC_VER typedef unsigned __int64 uint64_t; typedef signed __int64 int64_t; + #elif defined(__x86_64__) && defined(__linux__) + #include #else typedef unsigned long long uint64_t; typedef signed long long int64_t; diff --git a/src/platform/android/app/src/main/java/org/xproger/openlara/MainActivity.java b/src/platform/android/app/src/main/java/org/xproger/openlara/MainActivity.java index 0ac310e..8950c34 100644 --- a/src/platform/android/app/src/main/java/org/xproger/openlara/MainActivity.java +++ b/src/platform/android/app/src/main/java/org/xproger/openlara/MainActivity.java @@ -194,10 +194,22 @@ class Sound { int rate = 44100; int size = AudioTrack.getMinBufferSize(rate, AudioFormat.CHANNEL_OUT_STEREO, AudioFormat.ENCODING_PCM_16BIT); //System.out.println(String.format("sound buffer size: %d", bufSize)); - buffer = new short [size / 2]; - audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_OUT_STEREO, - AudioFormat.ENCODING_PCM_16BIT, size, AudioTrack.MODE_STREAM); - audioTrack.play(); + buffer = new short[size / 2]; + + try { + audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_OUT_STEREO, + AudioFormat.ENCODING_PCM_16BIT, size, AudioTrack.MODE_STREAM); + }catch (IllegalArgumentException e){ + System.out.println("Error: buffer size is zero"); + return; + } + + try { + audioTrack.play(); + }catch (NullPointerException e){ + System.out.println("Error: audioTrack null pointer on start()"); + return; + } new Thread( new Runnable() { public void run() { @@ -220,17 +232,29 @@ class Sound { } void stop() { - audioTrack.flush(); - audioTrack.stop(); - audioTrack.release(); + try { + audioTrack.flush(); + audioTrack.stop(); + audioTrack.release(); + }catch (NullPointerException e){ + System.out.println("Error: audioTrack null pointer on stop()"); + } } void play() { - audioTrack.play(); + try { + audioTrack.play(); + }catch (NullPointerException e){ + System.out.println("Error: audioTrack null pointer on play()"); + } } void pause() { - audioTrack.pause(); + try { + audioTrack.pause(); + }catch (NullPointerException e){ + System.out.println("Error: audioTrack null pointer on pause()"); + }; } }