|
@@ -148,6 +148,11 @@ static const int kNumberBuffers = 3;
|
|
|
OSStatus status = AudioQueueStart(self.audioQueue, NULL);
|
|
|
if (status == noErr) {
|
|
|
self.isRunning = YES;
|
|
|
+ NSDate *date = [NSDate date];
|
|
|
+ NSTimeInterval inteveral = [date timeIntervalSince1970];
|
|
|
+ if (self.delegate && [self.delegate respondsToSelector:@selector(recordDidStart:)]) {
|
|
|
+ [self.delegate recordDidStart:inteveral*1000];
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
}
|
|
@@ -219,13 +224,15 @@ static void inputCallback(void * inUserData,
|
|
|
}
|
|
|
// printf("recorder enqueue buffer time: %f \n", inStartTime->mSampleTime / recorder.asBasicDesc.mSampleRate);
|
|
|
|
|
|
- // 将音频数据写入文件
|
|
|
- if (AudioFileWritePackets(recorder.mAudioFile, false, inBuffer->mAudioDataByteSize, inPacketDescs, recorder.currPacket, &inNumberPacketDescriptions, inBuffer->mAudioData) == noErr) {
|
|
|
- recorder.currPacket += inNumberPacketDescriptions;
|
|
|
- }
|
|
|
- //消费音频数据
|
|
|
- if ([recorder.delegate respondsToSelector:@selector(audioRecord:didRecordAudioData:length:)]) {
|
|
|
- [recorder.delegate audioRecord:recorder didRecordAudioData:inBuffer->mAudioData length:inBuffer->mAudioDataByteSize];
|
|
|
+ if (inNumberPacketDescriptions > 0) {
|
|
|
+ // 将音频数据写入文件
|
|
|
+ if (AudioFileWritePackets(recorder.mAudioFile, false, inBuffer->mAudioDataByteSize, inPacketDescs, recorder.currPacket, &inNumberPacketDescriptions, inBuffer->mAudioData) == noErr) {
|
|
|
+ recorder.currPacket += inNumberPacketDescriptions;
|
|
|
+ }
|
|
|
+ //消费音频数据
|
|
|
+ if ([recorder.delegate respondsToSelector:@selector(audioRecord:didRecordAudioData:length:)]) {
|
|
|
+ [recorder.delegate audioRecord:recorder didRecordAudioData:inBuffer->mAudioData length:inBuffer->mAudioDataByteSize];
|
|
|
+ }
|
|
|
}
|
|
|
//将buffer给audio queue
|
|
|
OSStatus status = AudioQueueEnqueueBuffer(recorder.audioQueue, inBuffer, 0, NULL);
|