我是靠谱客的博主 大气果汁,最近开发中收集的这篇文章主要介绍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

<!--    <permission android:name="android.permission.RECORD_AUDIO"/>-->
<!--    <uses-permission android:name="android.Manifest.permission.READ_EXTERNAL_STORAGE" />-->
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

2.音频来源设置

MediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC)

以上方法参数就是选择录音源的,其可选参数如下:

MediaRecorder.AudioSource.CAMCORDER
设定录音来源于同方向的相机麦克风相同,若相机无内置相机或无法识别,则使用预设的麦克风

MediaRecorder.AudioSource.DEFAULT  默认音频源

MediaRecorder.AudioSource.MIC
设定录音来源为主麦克风。

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

MediaRecorder.AudioSource.VOICE_COMMUNICATION
摄像头旁边的麦克风

MediaRecorder.AudioSource.VOICE_DOWNLINK
下行声音

MediaRecorder.AudioSource.VOICE_RECOGNITION
语音识别

MediaRecorder.AudioSource.VOICE_UPLINK
上行声音

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的权限、

最后

以上就是大气果汁为你收集整理的Android 录音没有声音,设置AudioSource.VOICE_CALL直接MediaRecorder.start异常等系列问题的全部内容,希望文章能够帮你解决Android 录音没有声音,设置AudioSource.VOICE_CALL直接MediaRecorder.start异常等系列问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部