我的应用程序使用一个外部USB麦克风与一个非常精确的热补偿石英振荡器(TCXO)。采样率为48 The。我把它插入iOS通过相机工具包连接器。我正在使用EZAudio库,一切都很好,除了iOS似乎保留了自己的内部时钟源来进行音频采样,而不是我精确的48 iOS。
我阅读了关于CoreAudio的所有文档,但在使用闪电音频时没有找到任何与时钟源相关的信息。
有没有办法在内部时钟源和外部时钟源之间进行选择?
谢谢!
var audioFormatIn = AudioStreamBasicDescription(mSampleRate: Float64(48000),
mFormatID: AudioFormatID(kAudioFormatLinearPCM),
mFormatFlags: AudioFormatFlags(kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked),
mBytesPerPacket: 2,
mFramesPerPacket: 1,
mBytesPerFrame: 2,
mChannelsPerFrame: 1,
mBitsPerChannel: 16,
mReserved: 0)
func initAudio()
{
let session : AVAudioSession = AVAudioSession.sharedInstance()
do {
try session.setCategory(AVAudioSessionCategoryPlayAndRecord)
try session.setMode(AVAudioSessionModeMeasurement)
try session.setActive(true)
}
catch {
print("Error Audio")
}
self.microphone = EZMicrophone(microphoneDelegate: self, withAudioStreamBasicDescription: audioFormatIn)
}更新:多亏了@节律Fistman,设置了首选的采样率,部分解决了问题。不再从iOS和TCXO重新采样仍然是时钟主源。但是信号现在很快就被缓冲区中的空样本破坏了。随着录音长度的增加,这个问题越来越严重。当然,由于我需要雷电端口来插入硬件,所以我很难轻松地进行调试!
7分钟后的波形截图:

15分钟后的波形截图:

发布于 2016-06-19 02:15:51
在激活音频会话之前,将音频会话的首选采样率设置为48 the有帮助吗?
session.setPreferredSampleRate(48000)我不知道它是否会对时钟源做任何事情,或者它是否会影响输入(或输出)采样率,但值得一试。
https://stackoverflow.com/questions/37899789
复制相似问题