Skip to content

Commit d0bd09f

Browse files
author
eagleychen
committed
pcm record 18
1 parent e87d963 commit d0bd09f

File tree

1 file changed

+19
-12
lines changed

1 file changed

+19
-12
lines changed

Source/SDK/LinkVideo/FLV/TIoTPCMXEchoRecord.mm

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,15 @@ - (instancetype)initWithChannel:(int)channel isEcho:(BOOL)isEcho
4040
return nil;
4141

4242
AudioStreamBasicDescription outStreamDes;
43-
outStreamDes.mSampleRate = 48000;
43+
if (@available(iOS 18.0, *)) {
44+
outStreamDes.mSampleRate = 48000;
45+
outStreamDes.mFormatFlags = kAudioFormatFlagIsSignedInteger|kAudioFormatFlagIsPacked;
46+
47+
}else {
48+
outStreamDes.mSampleRate = 16000;
49+
outStreamDes.mFormatFlags = kAudioFormatFlagIsSignedInteger;
50+
}
4451
outStreamDes.mFormatID = kAudioFormatLinearPCM;
45-
outStreamDes.mFormatFlags = kAudioFormatFlagIsSignedInteger|kAudioFormatFlagIsPacked;
4652
outStreamDes.mFramesPerPacket = 1;
4753
outStreamDes.mChannelsPerFrame = channel;
4854
outStreamDes.mBitsPerChannel = 16;
@@ -126,17 +132,18 @@ static OSStatus record_callback(void *inRefCon, AudioUnitRenderActionFlags *ioAc
126132
UInt32 bufferSize = list.mBuffers[0].mDataByteSize;
127133
uint8_t *bufferData = (uint8_t *)list.mBuffers[0].mData;
128134
// NSLog(@"record_callback__________size : %d", bufferSize);
135+
if (@available(iOS 18.0, *)) {
136+
UInt32 bufferData16Size = 0;
137+
[r resample48000To16000_Linear:(int16_t *)bufferData output:(int16_t *)bufferData16 inputFrames:bufferSize outputFrames:&bufferData16Size];
138+
[r addData:&pcm_circularBuffer :bufferData16 :bufferData16Size];
139+
if (r->callback)
140+
r->callback(bufferData16, bufferData16Size, r->user);
141+
}else{
142+
[r addData:&pcm_circularBuffer :bufferData :bufferSize];
143+
if (r->callback)
144+
r->callback(bufferData, bufferSize, r->user);
145+
}
129146

130-
131-
UInt32 bufferData16Size = 0;
132-
[r resample48000To16000_Linear:(int16_t *)bufferData output:(int16_t *)bufferData16 inputFrames:bufferSize outputFrames:&bufferData16Size];
133-
[r addData:&pcm_circularBuffer :bufferData16 :bufferData16Size];
134-
if (r->callback)
135-
r->callback(bufferData16, bufferData16Size, r->user);
136-
137-
// [r addData:&pcm_circularBuffer :bufferData :bufferSize];
138-
// if (r->callback)
139-
// r->callback(bufferData, bufferSize, r->user);
140147
return error;
141148
}
142149

0 commit comments

Comments
 (0)