• Android 录音没有声音,设置AudioSource.VOICE_CALL直接MediaRecorder.start异常等系列问题


    一、我的需求:来电后,我的三方应用主动开启录音,挂断后结束录音,查验音频

    我遇到的问题:录制的音频没有声音。

    通过各种尝试,结果如下 :设置不同的录音来源的效果

    MediaRecorder API\创建MediaRecorder

    正常情况创建

    两个应用同时创建

    来电时创建

    备注

    MediaRecorder.AudioSource.DEFAULT

    音频有声音

    后者start异常

    音频无声音

    默认音频源 

    MediaRecorder.AudioSource.MIC 

    音频有声音

    后者start异常

    音频无声音

    设定录音来源为主麦克风

    MediaRecorder.AudioSource.VOICE_CALL 

    start异常

    start异常

    start异常

    设定录音来源为语音拨出的语音与对方说话的声音

    二、暂时的结论是:录制来电语音.音频来源于VOICE_CALL ,而该来源需要CAPTURE_AUDIO_OUTPUT权限,该权限仅授予系统应用程序,而不授予第三方应用程序

    三、试错过程中遇到的问题以及解说

    1.未申请权限,动态申请或者权限标签用错了,permission 改成 uses-permission

    1. <uses-permission android:name="android.permission.RECORD_AUDIO" />
    2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    2.音频来源设置

    1. MediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC)
    2. 以上方法参数就是选择录音源的,其可选参数如下:
    3. MediaRecorder.AudioSource.CAMCORDER
    4. 设定录音来源于同方向的相机麦克风相同,若相机无内置相机或无法识别,则使用预设的麦克风
    5. MediaRecorder.AudioSource.DEFAULT  默认音频源
    6. MediaRecorder.AudioSource.MIC
    7. 设定录音来源为主麦克风。
    8. MediaRecorder.AudioSource.VOICE_CALL
    9. 设定录音来源为语音拨出的语音与对方说话的声音
    10. MediaRecorder.AudioSource.VOICE_COMMUNICATION
    11. 摄像头旁边的麦克风
    12. MediaRecorder.AudioSource.VOICE_DOWNLINK
    13. 下行声音
    14. MediaRecorder.AudioSource.VOICE_RECOGNITION
    15. 语音识别
    16. MediaRecorder.AudioSource.VOICE_UPLINK
    17. 上行声音

    3.设置MediaRecorder.AudioSource.VOICE_CALL异常,尝试直接CAPTURE_AUDIO_OUTPUT权限申请不通过

    MediaRecorder.AudioSource.VOICE_CALL 源需要CAPTURE_AUDIO_OUTPUT权限,该权限仅授予系统应用程序,而不授予第三方应用程序 .

    4.同一时间只看开启一个MediaRecorder

    实验证明,一台手机同一时间不能创建两个MediaRecoder,一个应用先创建MediaRecorder,另一个应用创建就会异常

    当我的应用提前创建了MediaRecorder并且start后,系统通话录音应用也会有影响,

    以小米手机为例,miui12.0.6 系统,先开启我的应用录音,系统电话界面的录音我们手动开启,显示可以录音,但打完电话后,查看实际录音文件,录音时长只有一秒,且没声音。

    5.当开启电话,使用MediaRecorder设置任何录音source,音频都没有什么声音

    应该是来电音频来源在Voice_call上, 但三方应用又没有设置该来源Voice_call的权限、

  • 相关阅读:
    Camtasia2022最新版本下载及功能升级优化介绍
    基于pytorch实现Resnet对本地数据集的训练
    HTML如何设置字体样式?
    微信推出自研NLP大规模语言模型WeLM,现已开放API推动应用落地
    「Docker」命令使用大全,全集一览
    为什么说网上的md5加密解密站都是通过彩虹表解密的?
    请求的转发和重定向
    简化Microsoft365审核
    学好C语言需要一定的学习和实践
    S32Kxxx bootloader之UDS bootloader
  • 原文地址:https://blog.csdn.net/ly_xiamu/article/details/127890081