private void DisposeAudioDecoder(bool disposing) { if (_disposed) { return; } if (disposing) { _initialized = false; if (_mediaCodec != null) { _mediaCodec.Stop(); _mediaCodec.Release(); _mediaCodec.Dispose(); } if (_audioTrack != null) { _audioTrack.Stop(); _audioTrack.Release(); } } _initialized = false; _disposed = true; _encoderThread.Interrupt(); _decoderThread.Interrupt(); }
public bool StopDecoder() { try { if (_mediaCodec != null) { _mediaCodec.Stop(); _mediaCodec.Release(); } if (_audioTrack != null) { _audioTrack.Stop(); _audioTrack.Release(); } _encoderThread?.Interrupt(); _decoderThread?.Interrupt(); return(true); } catch (Exception) { return(false); } }