gpt4 book ai didi

swift - 如何获取 AudioComponent 的 Description Type 字母代码?

转载 作者:搜寻专家 更新时间:2023-11-01 05:39:38 25 4
gpt4 key购买 nike

我试图在实例化 AudioComponents 和理解/使用 AudioUnits 之前理解它们...

我使用通配符创建了一个 AudioComponentDescription:

var inDesc = AudioComponentDescription(componentType: OSType(),
componentSubType: OSType(),
componentManufacturer: OSType(),
componentFlags: UInt32(0),
componentFlagsMask: UInt32(0))

我看看有多少个 AudioComponent:

AudioComponentCount(&inDesc) // returns 98 in a playground (ok)

我通过使用“nil”作为 AudioComponentFindNext 中的第一个参数来关注第一个 AudioComponent:

var currentComp = AudioComponentFindNext(nil, &inDesc)

看它的名字:

func getAudioComponentName (componentInit:AudioComponent) -> CFString {
var componentProp:AudioComponent = componentInit
var componentNameProp:CFString = "" as CFString
var unmanagedCurrentCompName:Unmanaged<CFString>?
AudioComponentCopyName(componentProp, &unmanagedCurrentCompName)
componentNameProp = unmanagedCurrentCompName!.takeRetainedValue()
return componentNameProp
}
var currentComponentName:CFString = "" as CFString
currentComponentName = getAudioComponentName(currentComp) // returns "Apple PAC3 Transcoder" (ok)

此时,下面的尝试都不会“ok”。

我想了解更多有关此“Apple PAC3 转码器”及其描述的信息:

// Creating an empty AudioComponentDescription
var currentComponentDescription = AudioComponentDescription()
// Gettings currentComp's description (type)
AudioComponentGetDescription(currentComp, &currentComponentDescription)
var compDescType:OSType = currentComponentDescription.componentType // returns 1633903715

最后一行代码,如何获取AUComponent.h中描述的字母代码:

enum
{
kAudioUnitType_Output = 'auou',
kAudioUnitType_MusicDevice = 'aumu',
kAudioUnitType_MusicEffect = 'aumf',
kAudioUnitType_FormatConverter = 'aufc',
kAudioUnitType_Effect = 'aufx',
kAudioUnitType_Mixer = 'aumx',
kAudioUnitType_Panner = 'aupn',
kAudioUnitType_Generator = 'augn',
kAudioUnitType_OfflineEffect = 'auol',
kAudioUnitType_MIDIProcessor = 'aumi'
};

为了进一步的兼容性,我宁愿不必在我的代码中重现这个“枚举”。

最佳答案

componentType 是一个 OSType,它是 4 个 ASCII 字符代码打包成 32 位。

1633903715十六进制为0x61636463

0x61636463 在 ascii 中是 'acdc'(0x61 = 'a',0x63 = 'c',等等)

关于swift - 如何获取 AudioComponent 的 Description Type 字母代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32182560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com