Add some protection against double init of the Android audio backend

This commit is contained in:
Gabriel Jacobo 2013-08-08 09:47:42 -03:00
parent 5a167e03cd
commit 29c4f05ed5

View file

@ -490,6 +490,7 @@ public class SDLActivity extends Activity {
// latency already
desiredFrames = Math.max(desiredFrames, (AudioTrack.getMinBufferSize(sampleRate, channelConfig, audioFormat) + frameSize - 1) / frameSize);
if (mAudioTrack == null) {
mAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, sampleRate,
channelConfig, audioFormat, desiredFrames * frameSize, AudioTrack.MODE_STREAM);
@ -502,6 +503,7 @@ public class SDLActivity extends Activity {
mAudioTrack = null;
return -1;
}
}
audioStartThread();
@ -511,6 +513,7 @@ public class SDLActivity extends Activity {
}
public static void audioStartThread() {
if (mAudioThread == null) {
mAudioThread = new Thread(new Runnable() {
@Override
public void run() {
@ -523,6 +526,7 @@ public class SDLActivity extends Activity {
mAudioThread.setPriority(Thread.MAX_PRIORITY);
mAudioThread.start();
}
}
public static void audioWriteShortBuffer(short[] buffer) {
for (int i = 0; i < buffer.length; ) {