Open NicolasBuquet opened 5 months ago
Lorsqu'on change le périphérique de sortie audio, voici ce qui est loggué :
[MXiOSAudioOutputRouter] updateRoute: to: <MXiOSAudioOutputRoute: identifier: BUILT_IN, type: builtIn, name: iPhone >
[WebRTC] (RTCLogging.mm:33): (RTCAudioSession.mm:855 -[RTCAudioSession observeValueForKeyPath:ofObject:change:context:]): OutputVolumeDidChange to 0.450000
[WebRTC] (RTCLogging.mm:33): (RTCAudioSession.mm:531 -[RTCAudioSession handleRouteChangeNotification:]): Audio route changed:
[WebRTC] (RTCLogging.mm:33): (RTCAudioSession.mm:544 -[RTCAudioSession handleRouteChangeNotification:]): Audio route changed: CategoryChange to :AVAudioSessionCategoryPlayAndRecord
[WebRTC] (RTCLogging.mm:33): (RTCAudioSession.mm:563 -[RTCAudioSession handleRouteChangeNotification:]): Previous route: <AVAudioSessionRouteDescription: 0x281583ae0,
inputs = (
"<AVAudioSessionPortDescription: 0x2815818a0, type = BluetoothHFP; name = EAH-AZ60; UID = B8:20:8E:51:86:F9-tsco; selectedDataSource = (null)>"
);
outputs = (
"<AVAudioSessionPortDescription: 0x281581940, type = BluetoothHFP; name = EAH-AZ60; UID = B8:20:8E:51:86:F9-tsco; selectedDataSource = (null)>"
)>
Current route:<AVAudioSessionRouteDescription: 0x2815bf260,
inputs = (
"<AVAudioSessionPortDescription: 0x2815bf520, type = MicrophoneBuiltIn; name = iPhone Micro; UID = Built-In Microphone; selectedDataSource = (null)>"
);
outputs = (
"<AVAudioSessionPortDescription: 0x2815bed50, type = Receiver; name = R\U00e9cepteur; UID = Built-In Receiver; selectedDataSource = (null)>"
)>
[WebRTC] (RTCLogging.mm:33): (audio_device_ios.mm:630 HandleOutputVolumeChange): Output volume change detected.
[WebRTC] (RTCLogging.mm:33): (audio_device_ios.mm:509 HandleValidRouteChange): RTC_OBJC_TYPE(RTCAudioSession): {
category: AVAudioSessionCategoryPlayAndRecord
categoryOptions: 0
mode: AVAudioSessionModeVoiceChat
isActive: 1
sampleRate: 16000.00
IOBufferDuration: 0.016000
outputNumberOfChannels: 1
inputNumberOfChannels: 4
outputLatency: 0.002313
inputLatency: 0.001750
outputVolume: 0.450000
}
[WebRTC] (RTCLogging.mm:33): (audio_device_ios.mm:520 HandleSampleRateChange): Handling sample rate change.
[WebRTC] (RTCLogging.mm:33): (audio_device_ios.mm:549 HandleSampleRateChange): Handling playout sample rate change:
Session sample rate: 16000.000000 frames_per_buffer: 256
ADM sample rate: 16000.000000 frames_per_buffer: 256
[WebRTC] (RTCLogging.mm:33): (audio_device_ios.mm:554 HandleSampleRateChange): Ignoring sample rate change since audio parameters are intact.
Piste : regarder comment cela est géré dans Signal qui fonctionne correctement.
Dans un même appel VoIP, l'activation du rendu audio de l'appel (interne, haut-parleur, casque bluetooth) est différent suivant l'UI qu'on utilise :
Depuis un appel dans l'application, on peut passer à l'UI CallKit native en quittant l'application et en rentrant dans l'appel géré par iOS (icône verte dans la barre du haut de l'écran de l'iPhone).
Dans l'exemple ci-dessous du même appel, on voit que Tchap rapporte que la communication est routée sur le caseque bluetooth (ce qui n'est pas le cas en fait), alors qu'en passant sur l'UI CallKit native, il est rapporté que la communication est routée sur le haut-parleur du téléphone (ce qui est exact).
Dans Tchap :![image](https://github.com/tchapgouv/tchap-ios/assets/18608158/88fdccf3-8041-485b-8493-a9ad080e9e9c)
CallKit native :![image](https://github.com/tchapgouv/tchap-ios/assets/18608158/dc141a28-4d53-4f1a-9084-e0de7830b91d)
L'option cochée est au même index dans les 2 cas. Problème d'ordre d'affichage des options de sortie ?
Exemple de problème remonté au support : -https://app.crisp.chat/website/6dacc68e-de3a-4511-8177-1339616098de/inbox/session_990dbc3b-7a49-4efa-9521-c32bf1aee784/