OSX 上的 AVAudioSession 替代方案可获取音频驱动程序采样率

2024-01-08

在IOS上你可以使用[[AVAudioSession sharedInstance] sampleRate];检索音频驱动程序使用的当前采样率。 AVAudioSession 在 OSX 上不存在,所以我想知道如何在 OSX 上实现同样的事情,因为我找不到太多关于这个主题的信息。

Thanks


Okay,

经过更深入的研究音频硬件服务似乎可以在 OSX 上使用。这是一些示例代码:

//get the default output device
AudioObjectPropertyAddress addr;
UInt32 size;
AudioDeviceID deviceID = 0;
addr.mSelector = kAudioHardwarePropertyDefaultOutputDevice;
addr.mScope = kAudioObjectPropertyScopeGlobal;
addr.mElement = 0;
size = sizeof(AudioDeviceID);
err = AudioHardwareServiceGetPropertyData(kAudioObjectSystemObject, &addr, 0, NULL, &size, &deviceID);

//get its sample rate
addr.mSelector = kAudioDevicePropertyNominalSampleRate;
addr.mScope = kAudioObjectPropertyScopeGlobal;
addr.mElement = 0;
size = sizeof(Float64);
Float64 outSampleRate;
err = AudioHardwareServiceGetPropertyData(deviceID, &addr, 0, NULL, &size, &outSampleRate);
//if there is no error, outSampleRate contains the sample rate

不幸的是,虽然不像 IOS 版本那么简单,但也能完成工作!这将为您提供可以在 OSX 中更改的采样率设置音频 MIDI 设置.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OSX 上的 AVAudioSession 替代方案可获取音频驱动程序采样率 的相关文章

随机推荐