mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Fixed a rounding error in iOS audio device sample rate selection
This commit is contained in:
parent
536ca6cedf
commit
32bb5798bf
1 changed files with 9 additions and 8 deletions
|
|
@ -467,7 +467,7 @@ public:
|
|||
AudioOutputUnitStart (audioUnit);
|
||||
}
|
||||
|
||||
if (callback)
|
||||
if (callback != nullptr)
|
||||
callback->audioDeviceAboutToStart (this);
|
||||
}
|
||||
}
|
||||
|
|
@ -596,18 +596,19 @@ private:
|
|||
auto session = [AVAudioSession sharedInstance];
|
||||
sampleRate = session.sampleRate;
|
||||
audioInputIsAvailable = session.isInputAvailable;
|
||||
JUCE_IOS_AUDIO_LOG ("AVAudioSession: sampleRate: " << sampleRate << "Hz, audioInputAvailable: " << (int) audioInputIsAvailable);
|
||||
actualBufferSize = roundToInt (sampleRate * session.IOBufferDuration);
|
||||
|
||||
JUCE_IOS_AUDIO_LOG ("AVAudioSession: sampleRate: " << sampleRate
|
||||
<< "Hz, audioInputAvailable: " << (int) audioInputIsAvailable);
|
||||
}
|
||||
|
||||
void updateCurrentBufferSize()
|
||||
{
|
||||
auto session = [AVAudioSession sharedInstance];
|
||||
NSTimeInterval bufferDuration = sampleRate > 0 ? (NSTimeInterval) (preferredBufferSize / sampleRate) : 0.0;
|
||||
JUCE_NSERROR_CHECK ([session setPreferredIOBufferDuration: bufferDuration
|
||||
error: &error]);
|
||||
NSTimeInterval bufferDuration = sampleRate > 0 ? (NSTimeInterval) ((preferredBufferSize + 1) / sampleRate) : 0.0;
|
||||
|
||||
bufferDuration = session.IOBufferDuration;
|
||||
actualBufferSize = roundToInt (sampleRate * bufferDuration);
|
||||
JUCE_NSERROR_CHECK ([[AVAudioSession sharedInstance] setPreferredIOBufferDuration: bufferDuration
|
||||
error: &error]);
|
||||
updateSampleRateAndAudioInput();
|
||||
}
|
||||
|
||||
//==================================================================================================
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue