关于MediaRecorder.setOutputFile(file)的问题!

    今天做语音添加时发现使用MediaRecorder.setOutputFile(file)覆盖同一个语音文件的时候会将上一个语音文件从头去覆盖,而不是删除后在创建的那种。

     但是播放语音发现,如果上一个被覆盖的语音内容超过当前录入的语音的时候会将上一个语音的后半部分和当前语音拼接在一起。等于覆盖的只是插入式的覆盖而不是整个文件的覆盖。 说到这,应该都明白了, 我这边也没有深究到底是什么原因造成的,就去判断了下上个语音是否存在 (存在删除),

File dirs = new File(mDir);
if (dirs.exists()){
   dirs.delete();
}

然后重新录入就解决了。如果大家发现有什么不用删除之修改保存方法的可以回复下我。谢谢!

 

Android MediaRecorder录像时去除开始和停止提示音,可以在MediaRecorder对象初始化时设置一些参数。以下是一些可用的选项: 1. 设置AudioSource为MIC并关闭音频输出: ``` mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); mediaRecorder.setAudioEncodingBitRate(16 * 44100); mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); mediaRecorder.setOutputFile(outputFile); mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); mediaRecorder.setVideoEncodingBitRate(5 * 1024 * 1024); mediaRecorder.setVideoFrameRate(30); mediaRecorder.setVideoSize(1920, 1080); mediaRecorder.setMaxDuration(3600000); mediaRecorder.setOnInfoListener(new MediaRecorder.OnInfoListener() { @Override public void onInfo(MediaRecorder mr, int what, int extra) { if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) { stopRecording(); } } }); mediaRecorder.prepare(); mediaRecorder.start(); ``` 2. 使用setProfile方法设置音频和视频编码和格式: ``` CamcorderProfile profile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH); mediaRecorder.setProfile(profile); ``` 3. 使用setOutputFileDescriptor方法设置文件描述符: ``` ParcelFileDescriptor pfd = ParcelFileDescriptor.fromFile(outputFile); mediaRecorder.setOutputFileDescriptor(pfd.getFileDescriptor()); ``` 这些设置可以帮助你关闭开始和停止提示音。同时,需要注意的是这些设置可能会因设备和Android版本的不同而有所不同,需要根据具体情况进行调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值