在iOS中强制音频采样率

Enforcing an audio sampling rate in iOS(在iOS中强制音频采样率)
本文介绍了在iOS中强制音频采样率的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个使用RemoteIO音频单元来创建声音的应用程序。然而,由于时延和计算问题,该系统的采样率不能高于8 kHz。我使用以下行来设置采样率。

AudioSessionSetProperty(kAudioSessionProperty_PreferredHardwareSampleRate,propSize,&hwSampleRate)
但是,在某些运行中,我得到了44.1 kHz的采样率。在这种情况下,我的应用程序似乎无法工作,因为它无法处理以该采样率进行的计算。将采样率强制为8 kHz的最佳选择是什么?退出并再次打开应用程序有效,但会导致糟糕的用户体验。

推荐答案

正如hotpaw2所说,音频是iOS上的共享资源。你不能独家访问硬件。调用AudioSessionSetProperty/kAudioSessionProperty_PreferredHardwareSampleRate设置首选硬件采样率。正如您所注意到的,您可能会以不同的速度运行硬件,但这并不意味着您的应用程序不能以8 kHz运行。

如果您正确配置了RemoteIO格式,则RemoteIO将为您执行输出采样率转换。硬件将以44.1 kHz运行,但您的应用程序将以8 kHz输出。

您可以通过在本文档中搜索"采样率"来了解实现这一目标的各种方法:

http://developer.apple.com/library/ios/documentation/MusicAudio/Conceptual/AudioUnitHostingGuide_iOS/ConstructingAudioUnitApps/ConstructingAudioUnitApps.html

一种选择(如文档中所述)是使用正确的输出采样率设置混合器,然后将呈现回调附加到混合器的输入。

这篇关于在iOS中强制音频采样率的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

iOS convert audio sample rate from 16 kHz to 8 kHz(IOS将音频采样率从16 kHz转换为8 kHz)
Recording volume drop switching between RemoteIO and VPIO(录制RemoteIO和VPIO之间的音量下降切换)
iOS: Is it possible to record from multiple microphones at the same time(IOS:是否可以同时使用多个麦克风录音)
ios simulator access localhost server(IOS模拟器访问本地主机服务器)
How can I know when it#39;s safe to reuse a background NSURLSessionConfiguration id from another process?(我如何才能知道何时重新使用另一个进程中的后台NSURLSessionConfigurationID是安全的?)
NSURLSession: can#39;t get resume data after calling cancelByProducingResumeData(NSURLSession:调用ancelByProducingResumeData后无法获取简历数据)