现在所有这一切实际上是完美的,大部分时间.我可以坐下来做录音并且播放他们.我可以坐下来测试这个45岁左右,没有任何问题.随后突然间,我会碰到一个非常奇怪的问题.问题是,录音机全部突然开始,除了损坏的文件,无法播放,正是4096字节的大小,无论你多长时间录音.
我以完全标准的方式使用AVAudioRecorder,设置如下:
// Specific settings for the audio recordingNSDictionary *recordSettings = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInt:AVAudioQualityMin],AVEncoderAudioQualityKey,[NSNumber numberWithInt:8],AVEncoderBitRateKey,[NSNumber numberWithInt: 2],AVNumberOfChannelsKey,[NSNumber numberWithfloat:22000.0],AVSampleRateKey,nil];NSError *error = nil;audioRecorder = [[AVAudioRecorder alloc] initWithURL:contentURL settings:recordSettings error:&error];audioRecorder.delegate = self;
我开始录制如下:
if (!isRecording) { isRecording = YES; [audioRecorder record]; // Start the timer recordTiming = [NSDate date]; timeCheck = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(timeCheck) userInfo:nil repeats:YES];}
然后停止它:
if (isRecording) { [audioRecorder stop]; // Stop the timer [timeCheck invalIDate];}
我不知道可能会导致这个问题发生.到目前为止,我已经尝试了几乎所有的事情.我已经检查以确保记录器对象被正确回收(所以您有一个新的实例为每个现在录制),并且旧引用被释放等等,以确保它与干扰对象无关,但没有什么解决.
有没有人有什么可能会导致文件损坏的问题?
解决方法 注意:由于OP已经停用了好几天了,我猜这个问题应该回答,以供公众的将来参考,所以我发布了这个答案.AVAudioSession必须在开始录制之前获得.
AVAudioSession *audioSession = [AVAudioSession sharedInstance];NSError *err = nil;[audioSession setcategory :AVAudioSessioncategoryPlayAndRecord error:&err];if(err){ NSLog(@"audioSession: %@ %d %@",[err domain],[err code],[[err userInfo] description]); return;}err = nil;[audioSession setActive:YES error:&err];if(err){ NSLog(@"audioSession: %@ %d %@",[[err userInfo] description]); return;}
参考:https://stackoverflow.com/a/9706731/188331
总结以上是内存溢出为你收集整理的看似随机文件损坏使用AVAudioRecorder(有时文件无法播放) – iOS全部内容,希望文章能够帮你解决看似随机文件损坏使用AVAudioRecorder(有时文件无法播放) – iOS所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)