Tôi đang phát triển một ứng dụng mà tôi cần phải chuyển qua thu âm qua đầu cắm âm thanh đầu ra tại cùng một bản ghi thời gian và lưu video.Chuyển qua dữ liệu CMSampleBufferRef tới đầu ra âm thanh
Tôi đã xem xét mã mẫu táo cảm ứng aurio và thực hiện chuyển qua âm thanh.
Tôi cũng đã triển khai quay video qua AVCaptureSession
. Trên cả hai chức năng được thực hiện riêng lẻ và hoạt động tốt.
Nhưng khi tôi hợp nhất âm thanh chức năng truyền qua không hoạt động do phiên âm thanh của AVCapturesession
.
Tôi cũng đã cố gắng chuyển dữ liệu âm thanh mà tôi nhận được từ AVCaptureSession
phương thức ủy quyền. Dưới đây là mã của tôi:
OSStatus err = noErr;
AudioBufferList audioBufferList;
CMBlockBufferRef blockBuffer;
CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer(sampleBuffer, NULL, &audioBufferList, sizeof(audioBufferList), NULL, NULL, 0, &blockBuffer);
CMItemCount numberOfFrames = CMSampleBufferGetNumSamples(sampleBuffer); // corresponds to the number of CoreAudio audio frames
currentSampleTime += (double)numberOfFrames;
AudioTimeStamp timeStamp;
memset(&timeStamp, 0, sizeof(AudioTimeStamp));
timeStamp.mSampleTime = currentSampleTime;
timeStamp.mFlags |= kAudioTimeStampSampleTimeValid;
AudioUnitRenderActionFlags flags = 0;
aurioTouchAppDelegate *THIS = (aurioTouchAppDelegate *)[[UIApplication sharedApplication]delegate];
err = AudioUnitRender(self.rioUnit, &flags, &timeStamp, 1, numberOfFrames, &audioBufferList);
if (err) { printf("PerformThru: error %d\n", (int)err); }
Nhưng nó bị lỗi. Xin vui lòng cho biết những gì có thể được thực hiện thêm càng sớm càng tốt. Tôi đã xem xét rất nhiều tài liệu và rất nhiều mã nhưng không thể tìm thấy bất kỳ giải pháp nào. Xin hãy giúp ..