首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得本地(硬件支持的)音频采样率,以避免内部采样速率转换?

如何获得本地(硬件支持的)音频采样率,以避免内部采样速率转换?
EN

Stack Overflow用户
提问于 2014-01-02 19:02:11
回答 1查看 8.6K关注 0票数 8

有人能向我指出说明不同iPhone版本的本地采样率的文档,以避免core-audio内部采样率的转换吗?

编辑:,您能告诉我如何以编程方式获得这些值的源代码示例吗?

编辑:这个苹果文件(第26页)指的是一种规范的音频格式,但只提到了示例类型(PCM)和位深度(16位)。它没有提到捕获硬件直接支持的任何本地采样率。这些就是我想要的价值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-02 23:06:37

您需要做的是找到一种方法来检测硬件采样率,并使用您在后续代码中找到的任何内容。

有一个音频会话属性将为您提供以下内容: CurrentHardwareSampleRate

代码语言:javascript
复制
- (void) logSampleRate {
    Float64 sampleRate;
    UInt32 srSize = sizeof (sampleRate);
    OSStatus error = 
         AudioSessionGetProperty(
         kAudioSessionProperty_CurrentHardwareSampleRate,
         &srSize,
         &sampleRate);
    if (error == noErr) {
        NSLog (@"CurrentHardwareSampleRate = %f", sampleRate);
    }
}

iPhone 4S和iPhone 5S报告hardwareSampleRate = 44100.000000,但其他设备可能会有所不同。

编辑

在回答问题和阅读最新的文档时,我发现CurrentHardwareSampleRate在iOS6中是不可取的。真的,考虑到我自己的建议,我应该知道得更清楚。

事情是这样的:

1-不要使用这个过时和过时的C接口,使用AVAudioSession API

2-不要使用HardwareSampleRate,使用sampleRate

这引起了人们的怀疑,即苹果想让我们(甚至)离金属更远。但我们应该放心。而sampleRate的文档只提供

目前有效的音频采样率(以赫兹为单位)。(只读)

值得注意的是,省略了单词hardware,我们还有这样的方法:

代码语言:javascript
复制
- (BOOL)setPreferredSampleRate:(double)sampleRate error:(NSError **)outError

其中,sampleRate被充分描述为

要使用的硬件采样率。硬件采样率的可用范围取决于设备。它通常从8,000到48,000赫兹不等。

看来,我们应该使用的方式,是设置我们的首选速率,设备将设置一个(?)实际的费率,大概是尽可能接近首选的,基于硬件。因此,一旦设置了首选速率,就可以检查sampleRate (而不是preferredSampleRate)属性的值,以发现将要使用的实际示例速率。我们希望这是硬件取样。

这是现代的方式..。

代码语言:javascript
复制
- (void) logAudioFormatAV {
    AVAudioSession* session = [AVAudioSession sharedInstance];
    BOOL success;
    NSError* error = nil;
    double preferredSampleRate = 48000;
    success  = [session setPreferredSampleRate:preferredSampleRate error:&error];
    if (success) {
        NSLog (@"session.sampleRate = %f", session.sampleRate);
    } else {
        NSLog (@"error setting sample rate %@", error);
    }
}

我在4S和5S上尝试了各种不同的样品价格,并且总是得到44100。因此,这似乎是正确的事情,并报告了实际的硬件采样率。但这需要更广泛的测试,以获得更大的确定性。

我也想指出你的方向克里斯亚当森的出色的书学习核心音频,其中涉及这个主题在第10章,核心音频在iOS。

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

https://stackoverflow.com/questions/20889902

复制
相关文章

相似问题

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