如何在Android设备上录制内部音频或录制MediaPlayer音频流?

如何在Android设备上录制内部音频或录制MediaPlayer音频流?,android,android-mediaplayer,android-audiorecord,Android,Android Mediaplayer,Android Audiorecord,我目前正在尝试录制一个音频流,该音频流在MediaPlayer中播放 事实上,我发现了一些博客帖子,说由于安全/版权原因,不可能,但我找不到安卓/谷歌文档的任何官方声明。此外,还有像Mobizen这样的屏幕截图应用程序,可以录制内部音频(至少三星设备似乎可以正常工作) 有人能告诉我吗 官方不允许/不支持内部音频 可以使用录音机录制在MediaPlayer中播放的流 我不太确定我现在是否进入了黑暗面 我已经试着回答了第二个问题: 录制了不同的MediaRecorder.AudioSource,但

我目前正在尝试录制一个音频流,该音频流在
MediaPlayer
中播放

事实上,我发现了一些博客帖子,说由于安全/版权原因,不可能,但我找不到安卓/谷歌文档的任何官方声明。此外,还有像Mobizen这样的屏幕截图应用程序,可以录制内部音频(至少三星设备似乎可以正常工作)

有人能告诉我吗

  • 官方不允许/不支持内部音频
  • 可以使用
    录音机录制在
    MediaPlayer
    中播放的流
  • 我不太确定我现在是否进入了黑暗面

    我已经试着回答了第二个问题:

    • 录制了不同的
      MediaRecorder.AudioSource
      ,但都录制了麦克风
    • 找到用于录制的,但这不适用于
      MediaPlayer

    随着新的安卓10 API的推出,终于有了一个
    AudioPlaybackCapture
    API

    此API使应用程序能够复制其他应用程序正在播放的音频。此功能类似于屏幕捕获,但用于音频

    我个人还没有对它进行测试,但以下是根据《开发指南》捕获音频所需的步骤

    捕获音频所需的权限:

    • 应用程序必须具有该权限
    • 应用程序必须显示由显示的提示,并且用户必须对其进行批准
    • 捕获和播放应用程序必须位于同一用户配置文件中
    要捕获音频,您需要构建一个对象并向其中添加:

  • 调用以建立一个新的
  • 通过调用将配置传递到
    录音
  • 您还可以通过
    AUDIO\u用法
    UID
    来限制捕获,请参见:

    我强烈建议你去看看这本书

    局限性 2020年1月9日更新:据StatCounter统计,Android 10.0目前占Android市场份额的29.04%

    2019年7月至2020年7月,全球移动和平板电脑安卓版市场份额。资料来源:


    旧答案:Android上运行的设备很少,10台。谷歌还没有公布市场份额,但我们可以猜测它最多不到10%,这是安卓9.0的市场份额


    截至2019年5月7日的7天期间收集的数据。未显示分发率低于0.1%的任何版本。来源:

    Mobizen似乎确实这样做了,但也许他们正在使用屏幕播放API来实现这一点?我认为官方的Android API不允许你想要什么。我最好的猜测是Mobizen可能正在使用只有三星和LG手机支持的额外API(但如果是这样,我还没有看到任何此类API的公开文档)。这篇老文章也讨论了这个问题:你能在这方面帮助我吗