Stap 12: Probleemoplossing WebRTC op Android
WebRTC aan het werk krijgen was niet heel eenvoudig, dus hier zijn een paar opmerkingen om u te helpen.
Ten eerste ben ik verbonden SDP bieden en antwoord van een werkend systeem. Als iets niet voor u werkt, misschien vergelijken deze met de jouwe sommige inzicht verstrekken. Merk op dat er enige magie gaande is in het antwoord. Het bleek dat de Opus audio codec die WebRTC probeerde te gebruiken standaard werkt niet op Android. Eventueel b/c Opus vereist raw audio bemonsterd op 48kHz is, terwijl de Android 16kHz biedt. Probeert te gebruiken Opus resultaten is een SEGFAULT ergens in libjingle. Om te voorkomen dat het probleem helemaal, besloten heb ik om het antwoord te dwingen het gebruik van ISAC/16000 in plaats van Opus wijzigen. Dit was bereikt met enkele Javascript-code die u hier kijken kunt.
Vervolgens moet u weten over enkele misleidende fouten die u in de libjingle LogCat uitvoer zien zult. U kunt negeren deze:
E/libjingle (9365): Error(webrtcvideoengine.cc:1410): webrtc: (voe_audio_processing_impl.cc:1001): virtuele int webrtc::VoEAudioProcessingImpl::SetTypingDetectionStatus(bool): niet ondersteund
E/libjingle (9365): Error(webrtcvideoengine.cc:1410): webrtc: (voe_hardware_impl.cc:443): virtuele int webrtc::VoEHardwareImpl::SetPlayoutDevice(int): niet ondersteund
W/libjingle (9774): Warning(channelmanager.cc:252): Failed to SetAudioOptions met microfoon: spreker: opties: AudioOptions {aec: waar, agc: true, ns: waar, hf: true, ruilen: valse, typen: true, conferentie: valse, agc_delta: 0, experimental_agc: valse, experimental_aec: valse, aec_dump: valse, experimental_acm: valse,} vertraging: 0
E/libjingle (9365): Error(webrtcvideoengine.cc:1410): webrtc: (voe_volume_control_impl.cc:545): virtuele int webrtc::VoEVolumeControlImpl::SetOutputVolumePan(int, float, float): niet ondersteund