android - 通话记录器应用程序未记录拨出电话
问题描述
我正在开发一个我已授予所有权限的应用程序“通话记录器”,但它没有记录来电者的声音。我正在使用 MediaRecorder。
void startRecording() {
final SharedPreferences shared = PreferenceManager.getDefaultSharedPreferences(this);
int[] ss = new int[]{
MediaRecorder.AudioSource.VOICE_CALL,
MediaRecorder.AudioSource.VOICE_COMMUNICATION, // mic source VOIP
MediaRecorder.AudioSource.VOICE_RECOGNITION,
MediaRecorder.AudioSource.CAMCORDER,
MediaRecorder.AudioSource.MIC, // mic
MediaRecorder.AudioSource.DEFAULT, // mic
MediaRecorder.AudioSource.UNPROCESSED,
MediaRecorder.AudioSource.VOICE_UPLINK,
MediaRecorder.AudioSource.VOICE_DOWNLINK,
};
int i = Integer.valueOf(shared.getString(CallApplication.PREFERENCE_SOURCE, "-1"));
if (i == -1)
i = 0;
else
i = Sound.indexOf(ss, i);
String ext = shared.getString(CallApplication.PREFERENCE_ENCODING, "");
if (Storage.isMediaRecorder(ext)) {
startMediaRecorder(ext, ss, i);
} else {
startAudioRecorder(ss, i);
}
showNotificationAlarm(true);
}
解决方案
startAudioRecorder(ss, i);
将此行放入 if 条件以供记录
推荐阅读
- docker - 如何在Docker Desktop自带的kubernetes mini-cluster中暴露低号端口
- c# - 自重启自包含单文件 dotnet 核心控制台应用程序
- php - 调整图片大小,添加水印,然后保存
- javascript - 如何将 AJAX 成功变量存储为 AJAX 之外的变量?
- javascript - 你如何用反应钩子做点符号反应组件?
- asp.net - 我怎样才能获得剑道网格数据项
- css - 奇怪的 CSS 错误,在 Redux 存储更改时重新渲染 React 中的元素
- c - 有没有办法测试 regex_t 实例是否成功编译?
- reactjs - React Native Storybook - TypeError:identifier.indexOf 不是函数
- reactjs - React useCallback 和 useEffect 同时搞乱了状态