【问题标题】:How do I get the inDataSize for use in setting AudioUnitSetProperty in Swift?如何获取 inDataSize 以在 Swift 中设置 AudioUnitSetProperty?
【发布时间】:2014-08-14 14:50:05
【问题描述】:

我在 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 core-audio audiounit


    【解决方案1】:

    sizeof() 在 Swift 中采用类型作为参数,而不是变量。试试sizeof(AudioFileID)。您还需要将 Int 的结果从 UInt32 转换为 inDataSize,即 UInt32(sizeof(AudioFileID))

    【讨论】:

      猜你喜欢
      • 2015-07-09
      • 1970-01-01
      • 2011-01-11
      • 1970-01-01
      • 2014-10-28
      • 2020-08-15
      • 2022-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多