Я пытаюсь создать приложение WebRTC, основанное на webrtc-android-codelab .У меня есть WebView, и когда я хочу сделать видеозвонок, я запускаю упражнение и устанавливаю видеозвонок, он работает, но я не могу повесить видеозвонок и вернуться к предыдущему действию.Если я закрываю или удаляю одноранговое соединение, я получаю следующую ошибку:
"Выход из нативного потока без вызова DetachCurrentThread (может быть, он будет использовать деструктор pthread_key_create?)".
И если я вызовуЗавершая () в Hangup (), чтобы выйти из действия, приложение вылетает со следующей ошибкой:
«E / UncaughtException: java.lang.RuntimeException: Невозможно уничтожить действие. Этот объект был освобожден».
Это мой код зависания:
private void hangup() {
if (peerConnectionFactory != null) {
peerConnectionFactory.stopAecDump();
}
if(stream !=null) {
while(stream.audioTracks.size() > 0) {
AudioTrack audioTrack = stream.audioTracks.get(0);
stream.removeTrack(audioTrack);
}
while(stream.videoTracks.size() > 0) {
VideoTrack videoTrack = stream.videoTracks.get(0);
stream.removeTrack(videoTrack);
}
}
if (audioSource != null) {
audioSource.dispose();
audioSource = null;
}
if (videoCapturerAndroid != null) {
try {
videoCapturerAndroid.stopCapture();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
videoCapturerAndroid.dispose();
videoCapturerAndroid = null;
}
if (videoSource != null) {
videoSource.dispose();
videoSource = null;
}
if(localPeer!=null) {
localPeer.close();
localPeer = null;
}
SignallingClient.getInstance().isInitiator=false;
SignallingClient.getInstance().isChannelReady=false;
SignallingClient.getInstance().isStarted=false;
}