我在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中获取音频文件的数据大小?
由于
答案 0 :(得分:2)
sizeof()
为参数提供了一个类型,而不是一个变量。试试sizeof(AudioFileID)
。您还需要将结果从Int
转换为UInt32
inDataSize
,即UInt32(sizeof(AudioFileID))