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.AAC
和 OutputFormat.MPEG_4
可能是您的最佳选择。
谢谢迈克尔。我一定会试试这个,让你知道。具有上述配置的文件的文件扩展名应该是什么? .MP4 ?还是 .WAV?
谢谢迈克尔。 AudioEncoder.AAC 和 OutputFormat.MPEG_4 工作正常。我可以在系统上播放录制的文件。但是录制文件的大小非常大 ~ 每秒 1 MB以上是关于Android 语音通话录音无法在系统上播放的主要内容,如果未能解决你的问题,请参考以下文章