Android 语音通话录音无法在系统上播放

Posted

技术标签:

【中文标题】Android 语音通话录音无法在系统上播放【英文标题】:Android voice call recordings doesn't play on system 【发布时间】:2015-08-23 19:29:00 【问题描述】:

我有一个小程序可以记录来自 android 手机的所有语音通话。录音做得很好,我什至可以在任何安卓设备上播放。但相同的文件不会在系统上播放。我尝试了几个播放器,但没有运气。只有 Audacity 抱怨该文件是 RAW。我曾尝试使用 Audacity 对文件进行编码,但没有运气。这是我录音的sn-p,非常感谢任何帮助。

        recorder = new MediaRecorder();
        recorder.reset();
        recorder.setAudiosource(MediaRecorder.AudioSource.VOICE_CALL);
        recorder.setAudioChannels(2);
        recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_WB);
        recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_WB);
        recorder.setOutputFile(DEFAULT_STORAGE_LOCATION+"/"+System.currentTimeMillis());
        recorder.prepare();
        recorder.start(); 

【问题讨论】:

请注意,AMR-NB 和 AMR-WB 都只支持单声道音频,因此尝试指定 2 个音频通道是没有意义的。 我尝试了其他 MONO 选项,但仍然没有运气 【参考方案1】:

MediaRecorder.OutputFormat.AMR_WB 表示名为Adapative Multi-Rate Wideband 的编解码器。除了在手机上,这种格式不是很常见。如果你跳过所有正确的圈子,你可以让他们在Audacity 中打开。首先,您必须为其正确安装和配置 ffmpeg,然后当您在 audacity 中打开文件时,您选择 FFmpeg-compatible files 作为格式。但是,如果您希望文件可移植,我认为您最好在录制时选择不同的编解码器 - 例如 MPEG-4。

【讨论】:

感谢您的信息。我尝试了 AAC、AAC_ELD、HE_AAC、VORBIS。默认情况下,它们都包含在 android SDK 中。但仍然没有运气。 您必须同时更改 OutputFormat 和 AudioEncoder。例如,如果您想与 PC/Mac 音频应用程序兼容,AudioEncoder.AACOutputFormat.MPEG_4 可能是您的最佳选择。 谢谢迈克尔。我一定会试试这个,让你知道。具有上述配置的文件的文件扩展名应该是什么? .MP4 ?还是 .WAV? 谢谢迈克尔。 AudioEncoder.AAC 和 OutputFormat.MPEG_4 工作正常。我可以在系统上播放录制的文件。但是录制文件的大小非常大 ~ 每秒 1 MB

以上是关于Android 语音通话录音无法在系统上播放的主要内容,如果未能解决你的问题,请参考以下文章

android 10 (2019) 可以恢复语音通话录音吗?

Android 通话录音 来电未录音

微信怎么录音

在 Android 自定义 ROM 中修改通话中的语音播放

android webRTC语音通话

Android:在通话/SIP 期间播放声音文件或文本转语音