iOS音频混合
问题描述:
当混合两个音频文件时,这段代码显示一个声音被视为立体声而另一个被视为单声道,为什么?为什么他们都不能被视为立体声?iOS音频混合
@property (readwrite) AudioStreamBasicDescription stereoStreamFormat;
@property (readwrite) AudioStreamBasicDescription monoStreamFormat;
音频文件的检查就是这样的。
if ((inputDataFormat.mFormatID == kAudioFormatLinearPCM) &&
(inputDataFormat.mSampleRate == 44100.0) &&
(inputDataFormat.mChannelsPerFrame == 2) &&
(inputDataFormat.mChannelsPerFrame == 2) &&
(inputDataFormat.mBitsPerChannel == 16) &&
(inputDataFormat.mFormatFlags == (kAudioFormatFlagsNativeEndian |
kAudioFormatFlagIsPacked | kAudioFormatFlagIsSignedInteger))
) {
// no-op when the expected data format is found
} else {
status = kAudioFileUnsupportedFileTypeError;
goto reterr;
}
为什么遇到该数据格式时会触发无操作条件?
答
当混合两个音频,这段代码显示一个声音被视为立体声,另一个被视为单声道,为什么?
这是您正在使用的任何库的实现细节。
为什么不能将它们视为立体声?
那么,他们当然可以,如果你写支持代码复制的信号“/流”数据。通常情况下,你会而不是做到这一点,而是保持区别(如原作者已经完成),所以你的渲染链不会增加渲染或文件大小。
为什么遇到这种数据格式时不存在禁用条件?
这只是作者的书面风格。这种表达可以用几种方式来写。