gpt4 book ai didi

java - 是什么导致通话录音机上的录音文件大小保存为 0 KB?

转载 作者:行者123 更新时间:2023-12-01 11:41:09 31 4
gpt4 key购买 nike

我正忙于Android通话录音机,当我调用电话时录音机显示它正在录音,在我挂断电话后,它保存文件,但保存的文件是0 KB

有没有人遇到同样的问题,请帮我解决一下。

这是我的录制代码

recorder = new MediaRecorder();             
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
myFileName = getFilename();
recorder.setOutputFile(myFileName);
volume = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
//set the volume a bit high for good sound
int volume_level = volume.getStreamVolume(AudioManager.STREAM_VOICE_CALL);//get the current volume set
int max_volume = volume.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);//set volume to maximum
if (volume_level < max_volume) {volume.setStreamVolume(AudioManager.STREAM_VOICE_CALL, max_volume, AudioManager.FLAG_SHOW_UI);//set volume to maximum
}
//Log.d(tag, myFileName);
Log.d(tag, "File path = " + myFileName);

最佳答案

好吧,我想我找到了问题的解决方案,我设法使用下行链路+上行链路的组合将其发送到记录器,起初我使用 DOWNLINK | 测试了它上行recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_UPLINK | MediaRecorder.AudioSource.VOICE_DOWNLINK); ,也许这就是它对我不起作用的原因。

所以我的解决方案只是更改 recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL); 中的一行代码至

recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_DOWNLINK + MediaRecorder.AudioSource.VOICE_UPLINK);//使用加号进行测试

并且它能够录制,并保存有效文件的大小。

不知道为什么

recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_UPLINK | MediaRecorder.AudioSource.VOICE_DOWNLINK); 

对我来说不起作用。

对于那些可能面临同样问题的人,只需尝试一下您的代码,看看它可能会带来什么变化。

关于java - 是什么导致通话录音机上的录音文件大小保存为 0 KB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29516458/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com