J'essaie d'enregistrer l'audio en utilisant AVAssetWriter. Mais quand il joue dans le fichier, il joue 2 fois plus lentement que l'audio original. Qu'est-ce que je l'ai fait est la création d'un AVAssetWriter à la suite de façon ..AVAssetWriter Enregistrement audio 2 fois plus lent?
_writer = [AVAssetWriter assetWriterWithURL:url fileType:AVFileTypeMPEG4 error:nil];
AudioChannelLayout acl;
bzero(&acl, sizeof(acl));
acl.mChannelLayoutTag = kAudioChannelLayoutTag_Mono;
NSDictionary *audioOutputSettings = [NSDictionary dictionaryWithObjectsAndKeys:
[ NSNumber numberWithInt: kAudioFormatMPEG4AAC ], AVFormatIDKey,
[ NSNumber numberWithInt: 1 ], AVNumberOfChannelsKey,
[ NSNumber numberWithFloat: 44100.0 ], AVSampleRateKey,
[ NSNumber numberWithInt: 64000 ], AVEncoderBitRateKey,
[ NSData dataWithBytes: &acl length: sizeof(acl) ], AVChannelLayoutKey,
nil];
_audioWriterInput = [AVAssetWriterInput assetWriterInputWithMediaType:AVMediaTypeAudio outputSettings:audioOutputSettings];
_audioWriterInput.expectsMediaDataInRealTime=YES;
[_writer addInput:_audioWriterInput];
et après que je commence annexant la mémoire tampon dans les données comme suit
if (_audioWriterInput.readyForMoreMediaData == YES) {
[_audioWriterInput appendSampleBuffer:sampleBuffer];
return YES;
}
Ce que je fais est d'obtenir la sortie micro en utilisant la AVCapureSession dans la fonction de délégué suivant
- (void)captureOutput:(AVCaptureFileOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
et le passage du SampleBuffer directement à avassetWriter d'écrire dans le fichier.
Quelqu'un peut-il s'il vous plaît laissez-moi savoir pourquoi il écrit les données audio au fichier si lentement .. quelqu'un d'autre fait face au même problème? et ce qui pourrait être la résolution possible pour la question ..