WebRTC Creeper Drone - webbläsare kontrolleras RC bil (12 / 19 steg)
Steg 12: Felsökning WebRTC på Android
Att få WebRTC att arbeta var inte mycket enkel, så här är några anteckningar att hjälpa dig.
Det första bifoga jag SDP erbjuder och svaret från ett fungerande system. Om något inte fungerar för dig, kan jämföra dessa till ditt ge viss vägledning. Observera att det är något magiskt som händer i svaret. Det visade sig att Opus audio codec som WebRTC försökte använda standard inte fungerar på Android. Eventuellt b/c Opus kräver råa ljud på 48kHz, medan Android ger 16kHz. Försöker använda Opus resultat är ett SEGMENTERINGSFEL någonstans i libjingle. För att undvika problemet helt har beslutat jag att ändra svaret att framtvinga användning av ISAC/16000 istället för Opus. Detta uppnåddes med några Javascript-koden kan du titta på här.
Nästa, du behöver veta om vissa vilseledande fel som du ser i libjingle LogCat utdata. Du kan bortse från dessa:
E/libjingle (9365): Error(webrtcvideoengine.cc:1410): webrtc: (voe_audio_processing_impl.cc:1001): virtuella int webrtc::VoEAudioProcessingImpl::SetTypingDetectionStatus(bool): stöds inte
E/libjingle (9365): Error(webrtcvideoengine.cc:1410): webrtc: (voe_hardware_impl.cc:443): virtuella int webrtc::VoEHardwareImpl::SetPlayoutDevice(int): stöds inte
W/libjingle (9774): Warning(channelmanager.cc:252): misslyckades att SetAudioOptions med mikrofon: högtalare: alternativ: AudioOptions {aec: sant, agc: sant, ns: sant, hf: sant, byta: falskt, att skriva: sant, konferens: falsk, agc_delta: 0, experimental_agc: falskt, experimental_aec: falskt, aec_dump: falskt, experimental_acm: falsk,} dröjsmål: 0
E/libjingle (9365): Error(webrtcvideoengine.cc:1410): webrtc: (voe_volume_control_impl.cc:545): virtuella int webrtc::VoEVolumeControlImpl::SetOutputVolumePan(int, float, float): stöds inte