我在 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 中获取音频文件的数据大小?
谢谢
最佳答案
Swift 中的
sizeof()
采用类型作为参数,而不是变量。试试 sizeof(AudioFileID)
。您还需要将结果从 Int
转换为 UInt32
for inDataSize
即 UInt32(sizeof(AudioFileID))
关于swift - 如何获取用于在 Swift 中设置 AudioUnitSetProperty 的 inDataSize?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25311084/