【问题标题】:android.media.AudioRecord: Error code -20?android.media.AudioRecord:错误代码-20?
【发布时间】:2018-04-05 03:10:24
【问题描述】:

我正在尝试为 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 的一个典型错误是未授予应用程序在清单中录制的权限。这里不是这种情况,我刚刚检查过。)

【问题讨论】:

    标签: android android-audiorecord


    【解决方案1】:

    这个问题似乎有很多可能的原因,但它的记录非常糟糕,很难说清楚。然而,在这种情况下,我已经从 KitKat(API 级别 19)转移到 Oreo(API 级别 27)。

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

    1. 代码更改,或
    2. 如果您不需要任何高级功能,请将 API 级别降至 22。

    第二种解决方案对我有用。这在其他答案中有所提及,包括this one,但我没有完全理解他们在说什么。希望详细说明这一点将对其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-08-06
      • 1970-01-01
      • 2015-05-24
      • 2021-09-29
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 2021-08-14
      • 2015-02-20
      相关资源
      最近更新 更多