如何解决双簧管AAudio流在物理设备上返回ErrorUnavailable-音频设备问题?
有问题的错误
AAudioStream_requestStart(s#1) returned -889 ---------
AudioEngine: Error starting stream. ErrorUnavailable
更新:我已将此问题缩小为物理设备,并且似乎有可能是其原因,但我还没有发现。这种情况很少发生,因此很难确定。到目前为止,我已经注意到它发生在Pixel 3a和Galaxy S9 +上。
我偶尔会遇到此错误,然后它就会消失,但我仍然没有找到解决方法或原因。我曾有过两次怀疑,但此后我证明了它们全都是虚假的,我将回到正题。
我尝试通过以下方式重现此内容:
- 打开/关闭蓝牙(工作一次,但是无法复制)
- 连接蓝牙耳机
- 连接插入式耳机
- 上述所有操作均着眼于应用程序,以及加载了另一个应用程序时
要解决此问题,我要做的就是重启物理设备。
我的Android Gradle插件为4.0.1
,而Gradle为6.1.1
NDK版本:21.0.6113669
我的用法和设置音频流:
AudioStreamBuilder builder;
builder.setCallback(this);
builder.setPerformanceMode(PerformanceMode::LowLatency);
builder.setSharingMode(SharingMode::Exclusive);
builder.setChannelCount(mChannelCount);
Result result = builder.openStream(&mStream);
if (result == Result::OK && mStream != nullptr) {
// Grab stream info
result = mStream->requestStart();
if (result != Result::OK) {
LOGE("AudioEngine: Error starting stream. %s",convertToText(result));
}
LOGD("AudioEngine: Starting Stream");
} else {
LOGE("AudioEngine: Failed to create stream. Error: %s",convertToText(result));
}
调试信息:
I/AAudio: AAudioStreamBuilder_openStream() called ----------------------------------------
I/AudioStreamBuilder: rate = 0,channels = 2,format = 0,sharing = EX,dir = OUTPUT
I/AudioStreamBuilder: device = 0,sessionId = -1,perfMode = 12,callback: ON with frames = 0
I/AudioStreamBuilder: usage = 1,contentType = 2,inputPreset = 6,allowedCapturePolicy = 0
D/AudioStreamInternal_Client: open() original HW burst = 48,minMicros = 2000 => SW burst = 96
I/AAudio: AAudioStreamBuilder_openStream() returns 0 = AAUDIO_OK for s#1 ----------------
D/MyApp: AudioEngine: Sample Rate: 48000 FramesPerBurst: 96 BufferSize: 192
D/MyApp: AudioEngine: Channel count: 2 Format: Float Direction: Output
D/MyApp: AudioEngine: Current Buffer Size: 288 BufferCapacity: 3072 SharingMode: Exclusive PerformanceMode: LowLatency
D/AAudio: AAudioStream_requestStart(s#1) called --------------
D/AAudio: AAudioStream_requestStart(s#1) returned -889 ---------
E/MyApp: AudioEngine: Error starting stream. ErrorUnavailable
我的怀疑是,由于我没有以编程方式定义播放方法(耳机,扬声器,蓝牙等),因此偶尔会发生这种情况,但是我目前无法确认这一点或不知道这实际上是否是问题所在。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。