首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在三星设备(Android 7.0)上通过麦克风录制呼叫

在三星设备(Android 7.0)上通过麦克风录制呼叫
EN

Stack Overflow用户
提问于 2017-04-18 21:18:16
回答 2查看 740关注 0票数 5

我有一个简单的安卓应用程序,可以记录通话,它在安卓6+三星设备上工作良好(都有麦克风和VOICE_COMMUNICATION)。但是,一旦三星设备更新到Nougat (例如,S7 / S7边缘)这些记录呼叫的方法失败:(麦克风只记录我的语音,而不记录对方的语音,VOICE_COMMUNICATION根本不起作用。

有人能建议一下这里可以做些什么吗?

EN

回答 2

Stack Overflow用户

发布于 2017-09-08 18:33:28

同样的问题。还在寻找答案。

我有一部三星s7。首先,我解锁了本机录音机(在拨号),它的工作。因此,Android 7(和三星)可以在android内部没有内部操作的情况下记录通话。但是,在同一时间,我读到,开发人员无法从更高级别获得访问录音调用。似乎只有一种方法可以实现我们的目标:修改现有的Android版本,或者在声音流到达扬声器之前捕获声音流。如果我做错了,请纠正我。

票数 2
EN

Stack Overflow用户

发布于 2018-12-16 13:03:02

通常对于电话录音,我们可以使用4种类型:默认,麦克风,VOICE_CALL,VOICE_COMMUNICATION。但是对于所有的,下面的3类型就足够了

麦克风、VOICE_CALL、VOICE_COMMUNICATION

基于你的手机的android版本,它将支持或不支持其中的一些。

因此,为了让你的应用程序在所有安卓版本上都能完美工作,我们应该按照以下规则更改AudioSource类型:

代码语言:javascript
复制
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
    recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
    callType = "VOICE_CALL";
} else if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
    recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    callType = "MIC";
} else {
    recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
    callType = "VOICE_COMMUNICATION";
}

我在我的应用程序上使用了它,它在大多数设备上都能工作。不需要添加任何C库。查看我的示例应用程序,看看它们与专用Android版本的反应如何。

Github:https://github.com/tntkhang/call-recording-master

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43473383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档