要查詢你做下面的一個MatrixMixer AudioUnit:kAudioUnitProperty_MatrixLevels斯威夫特
// 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);
爲kAudioUnitProperty_MatrixLevels
上AudioUnitGetProperty
返回值(在文檔和示例代碼中定義),一個浮點32。
我試圖在swift中查找矩陣級別,並且可以在沒有問題的情況下獲得矩陣維度。但我不知道如何創建一個空的Float32元素數組,它是一個UnsafeMutablePointer<Void>
。這是我曾嘗試沒有成功:
var size = ((dims[0] + 1) * (dims[1] + 1)) * UInt32(sizeof(Float32))
var vols = UnsafeMutablePointer<Float32>.alloc(Int(size))
在MatrixMixerTest陣列使用,如:theVols[0]
「沒有成功」的意思是什麼? – Alexander
我無法使用'vols'作爲數組,它使用'EXC_BAD_ACCESS'崩潰 – GWRodriguez
您試圖在數組邊界內訪問的索引是什麼? – Alexander