Open WassimErriha opened 2 years ago
I had the same issue using USB-C headset in a Pixel7 device. When you plugged it, the recordstream enter to invalid state -895
and my record process fails in the next creation of the stream. My solution was added a new method in my AudioDeviceManager implementation of Oboe, to have a stream reset way, something like this:
std::shared_ptr<oboe::AudioStream> mRecordingStream;
void AndroidAudioDeviceManager::createAudioRecorder() {
oboe::AudioStreamBuilder inBuilder;
setupRecordingStreamParameters(&inBuilder, mSampleRate);
oboe::Result result = inBuilder.openStream(mRecordingStream);
warnIfNotLowLatency(mRecordingStream);
}
void AndroidAudioDeviceManager::reset_recording() {
mRecordingStream.reset();
createAudioRecorder();
}
void AndroidAudioDeviceManager::start_recording() {
oboe::Result result = mRecordingStream->requestStart();
if (result != oboe::Result::OK) {
return;
}
m_record_initstate = INIT_DONE;
}
// Starting here:
virtual void record(SampleVector& v) {
start_recording();
if (m_record_initstate != AndroidAudioDeviceManager::INIT_DONE) {
logwarn("AndroidAudioDevice::record() trying to restart recording");
reset_recording();
record(v); // recurrence to try again
return;
}
fetch_record_data(v);
}
Detailed steps on how to reproduce the bug
When running the demo app ProcessingAudioInputTutorial, I get the error
Failed to read from input stream: ErrorDisconnected
every time I connect or disconnect a wired headset. This error is only reproduceable on Samsung Galaxy S10. Running the same demo on a Samsung S7 device works just fine. Also, connecting/ disconnecting Bluetooth headset seems to work ok on both devices.I checked Oboe's issue tracker, but I'm not sure if this issue is related.
What is the expected behaviour?
Connecting/ Disconnecting wired headset should not disconnect input stream.
Operating systems
Android
What versions of the operating systems?
Samsung S7 - Android 8 - arm-64-v8a Samsung S10 - Android 12 - arm-64-v8a
Architectures
Other
Stacktrace
Plug-in formats (if applicable)
No response
Plug-in host applications (DAWs) (if applicable)
No response
Testing on the
develop
branchI have not tested against the
develop
branchCode of Conduct