Add some protection against double init of the Android audio backend
This commit is contained in:
parent
5a167e03cd
commit
29c4f05ed5
1 changed files with 26 additions and 22 deletions
|
@ -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; ) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue