Étape 12 : Dépannage WebRTC sur Android
Obtenir WebRTC au travail n’était pas très simple, alors voici quelques notes pour vous aider.
Tout d’abord, je vous joins SDP offre et réponse d’un système de travail. Si quelque chose ne fonctionne pas pour vous, en comparant celles-ci à la vôtre pourrait donner un aperçu. Notez qu’il n’y a peu de magie passe dans la réponse. Il s’est avéré que le codec audio Opus qui WebRTC essayé d’utiliser par défaut, ne fonctionne pas sur Android. Peut-être b/c Opus nécessite de raw audio échantillonnée à 48kHz, tandis que l’androïde fournit 16kHz. Essayez d’utiliser les résultats de l’Opus est une erreur de segmentation quelque part dans libjingle. Afin d’éviter entièrement le problème, j’ai décidé de modifier la réponse pour forcer l’utilisation de l’ISAC/16000 au lieu de l’Opus. Ceci a été réalisé avec du code Javascript, que vous pouvez regarder ici.
Ensuite, vous devez savoir au sujet des erreurs trompeuses que vous verrez dans le libjingle LogCat sortie. Vous pouvez sans risque ignorer ces :
E/libjingle (9365): Error(webrtcvideoengine.cc:1410) : webrtc: (voe_audio_processing_impl.cc:1001): virtual int webrtc::VoEAudioProcessingImpl::SetTypingDetectionStatus(bool) : ne pas pris en charge
E/libjingle (9365): Error(webrtcvideoengine.cc:1410) : webrtc: (voe_hardware_impl.cc:443): virtual int webrtc::VoEHardwareImpl::SetPlayoutDevice(int) : ne pas pris en charge
W/libjingle (9774): Warning(channelmanager.cc:252) : n’a pas SetAudioOptions avec microphone : haut-parleur : options : AudioOptions {aec : vrai, agc : true, ns: vrai, hf : vrai, échanger : faux, tapant : true, Conférence : faux, agc_delta: 0, experimental_agc : experimental_aec faux,: aec_dump faux,: experimental_acm faux,: faux,} retard: 0
E/libjingle (9365): Error(webrtcvideoengine.cc:1410) : webrtc: (voe_volume_control_impl.cc:545): virtual int webrtc::VoEVolumeControlImpl::SetOutputVolumePan(int, float, float) : ne pas pris en charge