首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS中带有usb音频设备的外部时钟源

iOS中带有usb音频设备的外部时钟源
EN

Stack Overflow用户
提问于 2016-06-18 17:29:35
回答 1查看 288关注 0票数 4

我的应用程序使用一个外部USB麦克风与一个非常精确的热补偿石英振荡器(TCXO)。采样率为48 The。我把它插入iOS通过相机工具包连接器。我正在使用EZAudio库,一切都很好,除了iOS似乎保留了自己的内部时钟源来进行音频采样,而不是我精确的48 iOS。

我阅读了关于CoreAudio的所有文档,但在使用闪电音频时没有找到任何与时钟源相关的信息。

有没有办法在内部时钟源和外部时钟源之间进行选择?

谢谢!

代码语言:javascript
复制
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分钟后的波形截图:

EN

回答 1

Stack Overflow用户

发布于 2016-06-19 02:15:51

在激活音频会话之前,将音频会话的首选采样率设置为48 the有帮助吗?

代码语言:javascript
复制
session.setPreferredSampleRate(48000)

我不知道它是否会对时钟源做任何事情,或者它是否会影响输入(或输出)采样率,但值得一试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37899789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档