Browse Source

Made iOS audio stop with an error callback when the playback device is removed.

tags/2021-05-28
jules 12 years ago
parent
commit
c3abff7d42
1 changed files with 14 additions and 11 deletions
  1. +14
    -11
      modules/juce_audio_devices/native/juce_ios_Audio.cpp

+ 14
- 11
modules/juce_audio_devices/native/juce_ios_Audio.cpp View File

@@ -157,15 +157,15 @@ public:
int getOutputLatencyInSamples() { return 0; } //xxx
int getInputLatencyInSamples() { return 0; } //xxx
void start (AudioIODeviceCallback* callback_)
void start (AudioIODeviceCallback* newCallback)
{
if (isRunning && callback != callback_)
if (isRunning && callback != newCallback)
{
if (callback_ != nullptr)
callback_->audioDeviceAboutToStart (this);
if (newCallback != nullptr)
newCallback->audioDeviceAboutToStart (this);
const ScopedLock sl (callbackLock);
callback = callback_;
callback = newCallback;
}
}
@@ -325,7 +325,12 @@ private:
CFNumberGetValue (routeChangeReasonRef, kCFNumberSInt32Type, &routeChangeReason);
if (routeChangeReason == kAudioSessionRouteChangeReason_OldDeviceUnavailable)
fixAudioRouteIfSetToReceiver();
{
const ScopedLock sl (callbackLock);
if (callback != nullptr)
callback->audioDeviceError ("Old device unavailable");
}
}
updateDeviceInfo();
@@ -378,12 +383,10 @@ private:
{
close();
{
const ScopedLock sl (callbackLock);
const ScopedLock sl (callbackLock);
if (callback != nullptr)
callback->audioDeviceError ("iOS audio session interruption");
}
if (callback != nullptr)
callback->audioDeviceError ("iOS audio session interruption");
}
if (interruptionType == kAudioSessionEndInterruption)


Loading…
Cancel
Save