- IOS开发实现录音功能
之前写过博客录音功能的实现,之前在模拟机可以正常运行,今天想在真机进行调试时发现录音功能有问题。为了改这个bug也学到了一些东西,决定记录一下。
起因:录音功能在真机无法运行
首先想到的是我想看一下自己保存的录音文件是否有真正录到声音,是保存文件有问题,或是真机权限问题,还是语音识别的转换有问题?一点点进行解决
第一步:使用了两个不同的真机 权限一样 所以权限原因被排除
第二步:如何查询程序在真机中的缓存文件?
apple的真机与安卓不同,你无法查看内部文件 我们只能通过连接Xcode将真机连接 然后将真机中的缓存文件下载到电脑中
Xcode连接到真机 点Devices and Simulators
下载到我们的电脑上
下载好后双击 选择显示包内容
按照之前博客的内容 .aiff就是我们的文件
可以看到录音文件只有4kb
我们再次使用模拟机进行录音 并通过录音路径获取录音文件
保底都是600kb以上 所以应该是录音文件出了问题
第三步:现在已经知道是录音文件的问题 那么如何解决这个问题呢?
接下来就是不断百度 不断搜Github
看过别人的demo后发现加入下面代码真机就可以调用录音文件了
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
[audioSession setActive:YES error:nil]; if ([audioSession respondsToSelector:@selector(requestRecordPermission:)]) {
[audioSession performSelector:@selector(requestRecordPermission:) withObject:^(BOOL granted) {
if (granted) {
// Microphone enabled code
} else {
// Microphone disabled code
}
}];
}