android.media.AudioRecord:错误代码-20?

时间:2018-02-19 07:59:21

标签: android android-audiorecord

我正在尝试为Android编写网络音频应用程序。我之前认为有效的代码突然崩溃和刻录,LogCat在错误级别给出了以下输出:

02-19 01:39:42.980 17178-17185/? E/zygote64: Failed sending reply to debugger: Broken pipe
02-19 01:39:43.133 17178-17178/? E/AudioRecord: AudioFlinger could not create record track, status: -1
02-19 01:39:43.133 17178-17178/? E/AudioRecord-JNI: Error creating AudioRecord instance: initialization check failed with status -1.
02-19 01:39:43.134 17178-17178/? E/android.media.AudioRecord: Error code -20 when initializing native AudioRecord object.

这是错误级别的整个 logcat输出。即使在冗长的情况下,也没有更多,而且在任何时候我都没有任何指向我崩溃的代码行。

我也无法找到有关AudioRecord错误代码-20的信息。这个错误代码究竟是什么预示着什么?

(注意:AudioRecord的一个典型错误不是给予应用程序在清单中记录的权限。在这里不是这种情况,我刚检查过。)

1 个答案:

答案 0 :(得分:1)

这个问题似乎有很多可能的原因,但它是如此严重的记录,很难说。但是,在这种情况下,我已经从KitKat(API级别19)迁移到Oreo(API级别27)。

但是,在包括Marshmallow(API级别23)之后,在执行期间授予权限,而不是在安装时。这需要:

  1. 代码更改,或
  2. 如果您不需要任何高级功能,请将API级别撤回到22级。
  3. 第二种解决方案对我有用。其他答案中提到了这一点,包括this one,但我并没有完全掌握他们所说的内容。希望详细说明这一点将有助于其他人。