From 3373055d458963f809c778d0b7cfa0c59387e713 Mon Sep 17 00:00:00 2001 From: Hiroshi Horie <548776+hiroshihorie@users.noreply.github.com> Date: Sat, 1 Nov 2025 11:01:56 +0700 Subject: [PATCH] Remove mic perms block --- modules/audio_device/audio_engine_device.h | 3 +- modules/audio_device/audio_engine_device.mm | 33 ++------------------- 2 files changed, 4 insertions(+), 32 deletions(-) diff --git a/modules/audio_device/audio_engine_device.h b/modules/audio_device/audio_engine_device.h index 4193f846ed..6de4335cdf 100644 --- a/modules/audio_device/audio_engine_device.h +++ b/modules/audio_device/audio_engine_device.h @@ -478,8 +478,7 @@ class AudioEngineDevice : public AudioDeviceModule, public AudioSessionObserver std::vector input_device_labels_; #endif - bool IsMicrophonePermissionGranted(); - bool EnsureMicrophonePermissionSync(); + bool IsMicrophonePermissionAuthorized(); #if !TARGET_OS_OSX bool IsAudioSessionCategoryValid(NSString* category, bool is_input_enabled, diff --git a/modules/audio_device/audio_engine_device.mm b/modules/audio_device/audio_engine_device.mm index 85f726a91e..dbc0b6a09d 100644 --- a/modules/audio_device/audio_engine_device.mm +++ b/modules/audio_device/audio_engine_device.mm @@ -1876,8 +1876,8 @@ if (state.DidEnableInput()) { LOGI() << "Checking microphone permission..."; // Attempt to acquire mic permissions at this point to return an erorr early. - bool isAuthorized = EnsureMicrophonePermissionSync(); - LOGI() << "AudioEngine pre-enable check, device permission: " + bool isAuthorized = IsMicrophonePermissionAuthorized(); + LOGI() << "AudioEngine pre-enable check, mic permission authorized: " << (isAuthorized ? "true" : "false"); if (!isAuthorized) { return rollback(kAudioEngineErrorInsufficientDevicePermission); @@ -2705,38 +2705,11 @@ // ---------------------------------------------------------------------------------------------------- // Private - Microphone permission -bool AudioEngineDevice::IsMicrophonePermissionGranted() { +bool AudioEngineDevice::IsMicrophonePermissionAuthorized() { AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio]; return status == AVAuthorizationStatusAuthorized; } -bool AudioEngineDevice::EnsureMicrophonePermissionSync() { - AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio]; - - if (status == AVAuthorizationStatusAuthorized) { - return true; - } - - if (status == AVAuthorizationStatusNotDetermined) { - // Request permission synchronously - this will block WebRTC's worker thread - // but this is acceptable since instantiating AVAudioInputNode would block anyway - dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); - __block BOOL granted = NO; - - [AVCaptureDevice requestAccessForMediaType:AVMediaTypeAudio - completionHandler:^(BOOL granted_inner) { - granted = granted_inner; - dispatch_semaphore_signal(semaphore); - }]; - - dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); - return granted; - } - - // Status is denied or restricted - return false; -} - // ---------------------------------------------------------------------------------------------------- // Private - Audio session