1
0
mirror of https://github.com/XProger/OpenLara.git synced 2025-08-16 10:04:28 +02:00

android: main activity: fix null pointer exceptions

Let's try/catch null pointer exceptions on Android devices
with no audio support.

Bug: https://github.com/XProger/OpenLara/issues/69

Signed-off-by: Carlos Santa <santa@gmail.com>
This commit is contained in:
Carlos Santa
2017-05-14 20:09:15 -07:00
parent 5c6b4bd8d2
commit 7e5f484bd9

View File

@@ -195,9 +195,21 @@ class Sound {
int size = AudioTrack.getMinBufferSize(rate, AudioFormat.CHANNEL_OUT_STEREO, AudioFormat.ENCODING_PCM_16BIT); int size = AudioTrack.getMinBufferSize(rate, AudioFormat.CHANNEL_OUT_STEREO, AudioFormat.ENCODING_PCM_16BIT);
//System.out.println(String.format("sound buffer size: %d", bufSize)); //System.out.println(String.format("sound buffer size: %d", bufSize));
buffer = new short[size / 2]; buffer = new short[size / 2];
try {
audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_OUT_STEREO, audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_OUT_STEREO,
AudioFormat.ENCODING_PCM_16BIT, size, AudioTrack.MODE_STREAM); AudioFormat.ENCODING_PCM_16BIT, size, AudioTrack.MODE_STREAM);
}catch (IllegalArgumentException e){
System.out.println("Error: buffer size is zero");
return;
}
try {
audioTrack.play(); audioTrack.play();
}catch (NullPointerException e){
System.out.println("Error: audioTrack null pointer on start()");
return;
}
new Thread( new Runnable() { new Thread( new Runnable() {
public void run() { public void run() {
@@ -220,17 +232,29 @@ class Sound {
} }
void stop() { void stop() {
try {
audioTrack.flush(); audioTrack.flush();
audioTrack.stop(); audioTrack.stop();
audioTrack.release(); audioTrack.release();
}catch (NullPointerException e){
System.out.println("Error: audioTrack null pointer on stop()");
}
} }
void play() { void play() {
try {
audioTrack.play(); audioTrack.play();
}catch (NullPointerException e){
System.out.println("Error: audioTrack null pointer on play()");
}
} }
void pause() { void pause() {
try {
audioTrack.pause(); audioTrack.pause();
}catch (NullPointerException e){
System.out.println("Error: audioTrack null pointer on pause()");
};
} }
} }