diff --git a/sdk/android/src/jni/audio_device/audio_device_module.cc b/sdk/android/src/jni/audio_device/audio_device_module.cc index 196c65525a..6127ebe316 100644 --- a/sdk/android/src/jni/audio_device/audio_device_module.cc +++ b/sdk/android/src/jni/audio_device/audio_device_module.cc @@ -119,6 +119,8 @@ class AndroidAudioDeviceModule : public AudioDeviceModule { int32_t err = input_->Terminate(); err |= output_->Terminate(); initialized_ = false; + thread_checker_.DetachFromThread(); + audio_device_buffer_.reset(nullptr); RTC_DCHECK_EQ(err, 0); return err; } diff --git a/sdk/android/src/jni/audio_device/audio_record_jni.cc b/sdk/android/src/jni/audio_device/audio_record_jni.cc index dfe19558d9..50da3f7688 100644 --- a/sdk/android/src/jni/audio_device/audio_record_jni.cc +++ b/sdk/android/src/jni/audio_device/audio_record_jni.cc @@ -95,6 +95,7 @@ int32_t AudioRecordJni::Terminate() { RTC_LOG(INFO) << "Terminate"; RTC_DCHECK(thread_checker_.CalledOnValidThread()); StopRecording(); + thread_checker_.DetachFromThread(); return 0; } diff --git a/sdk/android/src/jni/audio_device/audio_track_jni.cc b/sdk/android/src/jni/audio_device/audio_track_jni.cc index 03959d615e..da3cedd4a6 100644 --- a/sdk/android/src/jni/audio_device/audio_track_jni.cc +++ b/sdk/android/src/jni/audio_device/audio_track_jni.cc @@ -69,6 +69,7 @@ int32_t AudioTrackJni::Terminate() { RTC_LOG(INFO) << "Terminate"; RTC_DCHECK(thread_checker_.CalledOnValidThread()); StopPlayout(); + thread_checker_.DetachFromThread(); return 0; }