2016-05-06 15 views
2

私はAURenderCallbackStructをAudio Unitに設定しました。コールバックで私はioData: UnsafeMutablePointer<AudioBufferList>としてオーディオデータを取得しています。以下のコードを確認してください。私はここioDateからAudioBufferを取得できますかUnsafeMutablePointer <AudioBufferList>をSwiftのAudioBufferに変換するには?

func renderCallback(inRefCon: UnsafeMutablePointer<Void>, ioActionFlag: UnsafeMutablePointer<AudioUnitRenderActionFlags>, inTimeStamp: UnsafePointer<AudioTimeStamp>, inBufferNumber: UInt32, inNumberFrames: UInt32, ioData: UnsafeMutablePointer<AudioBufferList>) -> OSStatus { 

    // How can i get AudioBuffer from iodate here ? 

    return noErr 
} 

?提案してください...

N.B.私はすぐに使用しています。

答えて

3

memoryのプロパティーをUnsafeMutablePointer<>に設定するだけで、生のメモリーにアクセスできます。だからあなたのコードはこのように見えるはずです。

var audioBufferListPtr = UnsafeMutableAudioBufferListPointer(ioData).unsafeMutablePointer.memory 
for i in 0 ..< Int(inBufferNumber) { 
    var buffer: AudioBuffer = audioBufferListPtr.mBuffers 
} 

N.B.スウィフトは急速に進化する言語です。したがって、このコードは将来変更される可能性があります。

関連する問題