Hello,
I am developing BROXMEDIA Intercom, an iOS intercom application for live audiovisual production.
The app uses a native Swift audio plugin, Google WebRTC, AVAudioSession, and a Capacitor user interface. The current TestFlight version is 2.0, build 17.
Environment:
iPhone 16 Pro Max
iOS 26.5.2
TestFlight internal build
AVAudioSession category: playAndRecord
AVAudioSession mode: voiceChat
Background audio capability enabled
Bidirectional WebRTC audio between a web browser and the native iOS app
Observed behavior:
A remote web browser publishes WebRTC audio.
The native iOS app receives and plays the audio correctly for approximately one hour.
Wi-Fi disconnection/reconnection and airplane mode on/off initially recover correctly.
After the prolonged session, the native app stops playing the remote audio.
Signaling and participant presence remain connected.
The remote participant is still shown as speaking.
Completely closing and reopening the native app does not recover the remote audio.
Safari on the same iPhone, connected to the same room and network, can still hear the same remote transmission.
Restarting the remote web publication usually causes the native app to receive audio again.
This suggests that the remote publication, network connection, signaling server, and device audio hardware are still operational when the native route fails.
We are investigating whether:
AVAudioSession or the underlying WebRTC audio unit has stopped rendering;
the native RTCPeerConnection retains a stale receiver or audio track;
inbound RTP has stopped even though the peer remains connected;
an interruption, route change, or media-services reset has not been fully recovered.
Our current recovery logic checks the peer connection state and whether a remote audio track object exists. However, we do not yet continuously verify that inbound RTP packets or bytes are increasing for each participant.
Questions:
Can AVAudioSession or its underlying audio unit stop rendering audio while RTCPeerConnection signaling remains connected?
Which AVAudioSession or audio-unit callbacks should be monitored to distinguish an iOS audio-session failure from a WebRTC receiver or inbound-RTP failure?
After AVAudioSession.mediaServicesWereResetNotification, should an app recreate the complete WebRTC audio engine, or is reactivating AVAudioSession normally sufficient?
Is monitoring inbound RTP progression and audio energy the recommended way to detect a remote audio track that still exists but is no longer delivering usable audio?
Are there any known considerations for prolonged bidirectional VoIP-style audio using playAndRecord, voiceChat, and background audio?
We can add diagnostic logging and provide a Feedback Assistant report with sysdiagnose if the problem is reproduced again.
Thank you.
Topic:
Media Technologies
SubTopic:
Audio
0
0
20