如何在Swift中设置用于设置AudioUnitSetProperty的inDataSize?

时间:2014-08-14 14:50:05

标签: swift core-audio audiounit

我在Swift中大致有以下代码:

var inputFileURL : NSURL
var inputFile : AudioFileID
inputFileURL = NSURL.fileURLWithPath("/Bird.wav")
status = AudioFileOpenURL(inputFileURL, Int8(kAudioFileReadPermission), 0, &inputFile)
status = AudioUnitSetProperty( inUnit: AudioFilePlayerAU, inID: kAudioUnitProperty_ScheduledFileIDs, inScope: kAudioUnitScope_Global, inElement: 0, inData: self.inputFile, inDataSize: sizeof(inputFile) )

问题是我无法使用sizeof()[如大多数核心音频示例所示]来设置AudioUnitSetProperty函数的参数。

我得到并且错误:

173:37: error: 'AudioFileID' is not convertible to 'T.Type'
            inDataSize: sizeof(self.inputFile) )
                                    ^
Swift.sizeof:1:6: note: in call to function 'sizeof'
func sizeof<T>(_: T.Type) -> Int

我想如何在Swift中获取音频文件的数据大小?

由于

1 个答案:

答案 0 :(得分:2)

Swift中的

sizeof()为参数提供了一个类型,而不是一个变量。试试sizeof(AudioFileID)。您还需要将结果从Int转换为UInt32 inDataSize,即UInt32(sizeof(AudioFileID))