AUGraph 3D Mixer 噼啪声
Posted
技术标签:
【中文标题】AUGraph 3D Mixer 噼啪声【英文标题】:AUGraph 3D Mixer crackle 【发布时间】:2013-01-09 18:17:41 【问题描述】:我有一个 AUGraph 可以使用此设置播放和录制音频:
RemoteIO -> -> RemoteIO
Mulichannel Mixer -> 3D Mixer
Read Callback -> -> Write Callback
我的问题是我在录制的声音中有爆裂声。没有 3D 混合器 声音很好。但我需要他调整播放率...
音频格式:
memset(&_audioFormat, 0, sizeof(_audioFormat));
size_t bytesPerSample = sizeof (UInt16);
_audioFormat.mFormatID = kAudioFormatLinearPCM;
_audioFormat.mFormatFlags = kAudioFormatFlagsCanonical;
_audioFormat.mBytesPerPacket = bytesPerSample;
_audioFormat.mFramesPerPacket = 1;
_audioFormat.mBytesPerFrame = bytesPerSample;
_audioFormat.mChannelsPerFrame = 1;
_audioFormat.mBitsPerChannel = 8 * bytesPerSample;
_audioFormat.mSampleRate = 22100.0f;
我不知道为什么 3D 混合器会添加裂纹 -.- 这是一个小样本音频:Click
希望有足够的信息来找到解决方案。 谢谢:)
一些附加信息:
有噼啪声
AudioUnitGraph 0x7F8000:
Member Nodes:
node 1: 'auou' 'rioc' 'appl', instance 0x1cd66d40 O I
node 2: 'aumx' 'mcmx' 'appl', instance 0x1e055b40 O I
node 3: 'aumx' '3dem' 'appl', instance 0x1e05e7a0 O I
Connections:
node 1 bus 1 => node 2 bus 1 [ 1 ch, 22000 Hz, 'lpcm' (0x0000000C) 16-bit little-endian signed integer]
node 2 bus 0 => node 3 bus 0 [ 1 ch, 22000 Hz, 'lpcm' (0x0000000C) 16-bit little-endian signed integer]
node 3 bus 0 => node 1 bus 0 [ 2 ch, 44100 Hz, 'lpcm' (0x00000C2C) 8.24-bit little-endian signed integer, deinterleaved]
Input Callbacks:
0x12d9c1, 0x1cd65f30 => node 2 bus 0 [1 ch, 22000 Hz]
CurrentState:
mLastUpdateError=0, eventsToProcess=F, isRunning=F
无裂纹
AudioUnitGraph 0x7E7000:
Member Nodes:
node 1: 'auou' 'rioc' 'appl', instance 0x1e888810 O I
node 2: 'aumx' 'mcmx' 'appl', instance 0x1e88a0e0 O I
node 3: 'aumx' '3dem' 'appl', instance 0x1e88b200 O
Connections:
node 1 bus 1 => node 2 bus 1 [ 1 ch, 22000 Hz, 'lpcm' (0x0000000C) 16-bit little-endian signed integer]
node 2 bus 0 => node 1 bus 0 [ 1 ch, 22000 Hz, 'lpcm' (0x0000000C) 16-bit little-endian signed integer]
Input Callbacks:
0x1469b9, 0x1d5bffa0 => node 2 bus 0 [1 ch, 22000 Hz]
CurrentState:
mLastUpdateError=0, eventsToProcess=F, isRunning=F
更新:
我认为问题仅在 AudioGraph 重新启动后出现。
1.) CheckError(AUGraphStart(self.graph), "Error starting graph. - error code");
2.) Recording <- NO CRACKLE!
3.) CheckError(AUGraphStop(self.graph), "Error stopping graph. - error code");
4.) CheckError(AUGraphStart(self.graph), "Error starting graph. - error code");
5.) Recording <- CRACKLE!
【问题讨论】:
【参考方案1】:我找到了解决方法,但没有找到解决方案。 只需将 3DMixer 替换为 kAudioUnitSubType_Varispeed AU。
speedDescription.componentFlags = 0;
speedDescription.componentFlagsMask = 0;
speedDescription.componentType = kAudioUnitType_FormatConverter;
speedDescription.componentSubType = kAudioUnitSubType_Varispeed;
speedDescription.componentManufacturer = kAudioUnitManufacturer_Apple;
我希望这对某人有帮助!
【讨论】:
以上是关于AUGraph 3D Mixer 噼啪声的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 plotly.graph_objects 绘制 3D 线?