Paso 12: Solución de problemas de WebRTC en Android
WebRTC para trabajar no fue muy sencillo, así que aquí están algunas notas para ayudarle.
En primer lugar, adjunto oferta de SDP y la respuesta de un sistema de trabajo. Si algo no funciona para usted, comparación a la suya podría proporcionar una idea. Tenga en cuenta que hay algo de magia en la respuesta. Resultó que el códec de audio de Opus que WebRTC intentó utilizar por defecto, no funciona en Android. Posiblemente b y c Opus requiere raw audio muestreado a 48kHz, mientras que Android proporciona 16kHz. Tratando de usar los resultados de Opus es un SEGFAULT en libjingle. Con el fin de evitar el problema, decidí modificar la respuesta para forzar el uso de ISAC/16000 en vez de Opus. Esto se logró con código Javascript que puedes mirar aquí.
A continuación, usted necesita saber sobre algunos errores engañosas que usted verá en libjingle LogCat salida. Usted puede ignorar con seguridad estos:
E/libjingle (9365): Error(webrtcvideoengine.cc:1410): webrtc: (voe_audio_processing_impl.cc:1001): virtual int webrtc::VoEAudioProcessingImpl::SetTypingDetectionStatus(bool): no admite
E/libjingle (9365): Error(webrtcvideoengine.cc:1410): webrtc: (voe_hardware_impl.cc:443): virtual int webrtc::VoEHardwareImpl::SetPlayoutDevice(int): no admite
W/libjingle (9774): Warning(channelmanager.cc:252): no SetAudioOptions con micrófono: altavoz: opciones: AudioOptions {aec: agc es cierto: true, ns: hf es cierto: verdadero, intercambiar: falso, escribiendo: verdad, Conferencia: agc_delta falso,: 0, experimental_agc: experimental_aec falso,: aec_dump falso,: experimental_acm falso,: falso,} demora: 0
E/libjingle (9365): Error(webrtcvideoengine.cc:1410): webrtc: (voe_volume_control_impl.cc:545): virtual int webrtc::VoEVolumeControlImpl::SetOutputVolumePan(int, float, float): no admite