要查询 MatrixMixer AudioUnit,请执行以下操作:
// code from MatrixMixerTest sample project in c++
UInt32 dims[2];
UInt32 theSize = sizeof(UInt32) * 2;
Float32 *theVols = NULL;
OSStatus result;
ca_require_noerr (result = AudioUnitGetProperty (au, kAudioUnitProperty_MatrixDimensions,
kAudioUnitScope_Global, 0, dims, &theSize), home);
theSize = ((dims[0] + 1) * (dims[1] + 1)) * sizeof(Float32);
theVols = static_cast<Float32*> (malloc (theSize));
ca_require_noerr (result = AudioUnitGetProperty (au, kAudioUnitProperty_MatrixLevels,
kAudioUnitScope_Global, 0, theVols, &theSize), home);
的返回值AudioUnitGetProperty
是kAudioUnitProperty_MatrixLevels
(在文档和示例代码中定义)一个 Float32。
我正在尝试快速找到矩阵级别,并且可以毫无问题地获得矩阵维度。但我不确定如何创建一个由 Float32 元素组成的空数组,即UnsafeMutablePointer<Void>
. 这是我没有成功的尝试:
var size = ((dims[0] + 1) * (dims[1] + 1)) * UInt32(sizeof(Float32))
var vols = UnsafeMutablePointer<Float32>.alloc(Int(size))
在 MatrixMixerTest 中,数组的使用如下:theVols[0]