From cbbd818dd653c973faf3e87caeb640b58aa43363 Mon Sep 17 00:00:00 2001 From: David Reid Date: Sat, 2 Nov 2019 10:54:23 +1000 Subject: [PATCH] iOS: Try fixing a bug with stereo headphone output. --- miniaudio.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/miniaudio.h b/miniaudio.h index 49489e8b..3ab71a37 100644 --- a/miniaudio.h +++ b/miniaudio.h @@ -19890,6 +19890,17 @@ ma_result ma_device_init_internal__coreaudio(ma_context* pContext, ma_device_typ [pAudioSession setPreferredSampleRate:(double)pData->sampleRateIn error:nil]; bestFormat.mSampleRate = pAudioSession.sampleRate; + + /* + I've had a report that the channel count returned by AudioUnitGetProperty above is inconsistent with + AVAudioSession outputNumberOfChannels. I'm going to try using the AVAudioSession values instead. + */ + if (deviceType == ma_device_type_playback) { + bestFormat.mChannelsPerFrame = pAudioSession.outputNumberOfChannels; + } + if (deviceType == ma_device_type_capture) { + bestFormat.mChannelsPerFrame = pAudioSession.inputNumberOfChannels; + } } status = ((ma_AudioUnitSetProperty_proc)pContext->coreaudio.AudioUnitSetProperty)(pData->audioUnit, kAudioUnitProperty_StreamFormat, formatScope, formatElement, &bestFormat, sizeof(bestFormat));