Post

Replies

Boosts

Views

Activity

My app has a music mode. Is there a way to bypass all voice processing, even bypass the mic modes in control center while my app uses kAudioUnitSubType_VoiceProcessingIO?
If I set the kAUVoiceIOProperty_BypassVoiceProcessing parameter to true on the voice processing audio unit, it appears that the microphone mode setting in the Control Center still takes effect. For example, if the user has selected the voice isolation mode, the audio unit will still function in voice isolation mode. However, on the iPhone 14, the microphone mode is not displayed in the Control Center when kAUVoiceIOProperty_BypassVoiceProcessing is set to true, unlike on other iPhone models such as the iPhone 11 and iPhone 12. As a result, after setting kAUVoiceIOProperty_BypassVoiceProcessing to true, the voice processing unit will continue to use the last selected microphone mode for my app, and it cannot be changed on the iPhone 14. I have the following questions about this: Is it intended that microphone modes in the Control Center take precedence over the kAUVoiceIOProperty_BypassVoiceProcessing setting on the audio unit? My app has a music mode that captures music through mic. Is there a way to avoid all voice processing, even bypass the mic modes in control center? Why is the microphone mode not displayed in the Control Center on the iPhone 14 Pro when kAUVoiceIOProperty_BypassVoiceProcessing is set to true on the voice processing audio unit, while other iPhone models display it?
0
0
837
Apr ’23
AVAudioEngine setup doesn't work with iPhone 14 Pro + Airpods Pro combination
I have an AVAudioEngine setup with VoiceProcessingEnabled that takes the input from mic and plays it on speaker. This works great with Airpods on other iPhone models except iPhone 14 (specifically tested on iPhone 14 Pro). In case of iPhone 14 Pro, there is no audio on the speaker at all. I am linking to a minimal sample app below to reproduce the issue. Please run this sample on iPhone 11 using Airpods Pro you will hear yourself speaking. But when you run the app on iPhone 14 Pro with Airpods Pro connected, you can't hear yourself. Any help will be appreciated. Cheers Sample app: https://www.icloud.com/iclouddrive/07bC_sAZW8MAA2u5lHeHOoFPg#AudioEngineAirpodsTest
0
0
829
Nov ’22
[iOS 16 Crash] Crash while getting mach port from CFMessagePortRef
I create a local CFMessagePortRef using CFMessagePortCreateLocal and then use CFMachPortGetPort() to try to get the mach port from it like below: NSString *portIdentifier = [[groupName stringByAppendingString:@"."] stringByAppendingString:sdkId]; NSString *portName = [[portIdentifier stringByAppendingString:@"."] stringByAppendingString:@"mach.port"]; CFMessagePortContext context = {0,(__bridge void *)self,nil,nil,nil}; self.sendPort = CFMessagePortCreateLocal(kCFAllocatorDefault, (__bridge CFStringRef)portName, &callback, &context, false); CFMachPortGetPort(ms->_port); It works till iOS 15 but crashes on iOS 16. Can anyone help? I have defined below definition of __CFMessagePort: struct __CFMessagePort {     CFRuntimeBase _base;     CFLock_t _lock;     CFStringRef _name;     CFMachPortRef _port;        /* immutable; invalidated */     CFMutableDictionaryRef _replies;     int32_t _convCounter;     int32_t _perPID;            /* zero if not per-pid, else pid */     CFMachPortRef _replyPort;        /* only used by remote port; immutable once created; invalidated */     CFRunLoopSourceRef _source;        /* only used by local port; immutable once created; invalidated */     dispatch_source_t _dispatchSource;  /* only used by local port; invalidated */     dispatch_queue_t _dispatchQ;    /* only used by local port */     CFMessagePortInvalidationCallBack _icallout;     CFMessagePortCallBack _callout;    /* only used by local port; immutable */     CFMessagePortCallBackEx _calloutEx;    /* only used by local port; immutable */     CFMessagePortContext _context;    /* not part of remote port; immutable; invalidated */ };
4
0
1.7k
Sep ’22