【问题标题】:Unable to access microphone when another app is using it in Android当其他应用在 Android 中使用麦克风时无法访问麦克风
【发布时间】:2014-08-01 22:27:20
【问题描述】:

我正在使用以下 URL 中的代码,以便通过 AudioRecord 从麦克风获取声音数据: http://www.dreamincode.net/forums/topic/303235-visualizing-sound-from-the-microphone/

我看到的问题是,如果另一个应用程序也在使用麦克风,我会收到来自 AudioRecord 的错误(状态 -3)。如果我杀死正在使用麦克风的另一个应用程序,一切都会按预期工作。即使另一个应用程序已经在使用它,是否有一个优雅的解决方案允许我的应用程序访问麦克风?

谢谢。

【问题讨论】:

  • 更多信息:AudioRecord.read 返回 -3,我认为这意味着它读取零字节。
  • 您要切换哪个应用正在使用麦克风,还是同时允许它们使用?如果是后者,这就是Share Audio Input?的复制品,简单来说,一次只能使用一个应用。
  • 我想切换哪个应用正在使用麦克风。我假设前台的应用程序会控制麦克风,但似乎无论哪个应用程序首先拥有它都会保持控制权。感谢您的帮助。

标签: android audiorecord android-audiorecord


【解决方案1】:

遗憾的是,一次只有一个应用可以访问麦克风(就像相机一样)。

此外,没有标准方法可以通知另一个应用您想要访问麦克风(以便他们释放资源并让您访问它)。但是,您可以向所有其他应用发送广播(“请求麦克风”),但其他应用必须实现此功能(很少或零个开发人员会这样做)。

我建议您简单地通知用户麦克风当前不可用,因为您无能为力。

【讨论】:

  • 谢谢。我最终只是通知用户它无法像您所说的那样访问麦克风,并关闭任何其他正在使用它的应用程序。一旦他们回到我的应用程序,我就会重新启动对麦克风的访问。
  • 我如何成为这里的另一个应用程序?如果我想在收到广播时实现该功能以放弃麦克风资源?
【解决方案2】:

如果您使用“OK Google”功能并选择从任何页面访问它,请尝试将其关闭(“任何页面”位来自 Google 应用程序屏幕菜单>设置>语音>“OK GOOGLE DETECTION”> FROM ANY SCREEN=OFF):它劫持了麦克风,或者可以这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    • 2010-09-16
    • 1970-01-01
    相关资源
    最近更新 更多