Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
再次与Swift一起使用AudioBufferList_Swift_Core Audio_Audiounit_Unsafe Pointers - Fatal编程技术网

再次与Swift一起使用AudioBufferList

再次与Swift一起使用AudioBufferList,swift,core-audio,audiounit,unsafe-pointers,Swift,Core Audio,Audiounit,Unsafe Pointers,提及 我在堆栈溢出上找到了以下解决方案,可以用音频单元播放一些声音。我这里的问题是,我不能像正弦波数据那样将实际数据放入缓冲区。我用memcpy而不是memset尝试了它,但是这UnsafePointer的东西非常累人 那么,是有人要澄清我将如何将实际数据放入缓冲区,还是我应该抓起一本Objective-C的书,然后从头再来一遍 func renderCallback(ioData: UnsafeMutablePointer<AudioBufferList>) -> OSSta

提及

我在堆栈溢出上找到了以下解决方案,可以用音频单元播放一些声音。我这里的问题是,我不能像正弦波数据那样将实际数据放入缓冲区。我用
memcpy
而不是
memset
尝试了它,但是这
UnsafePointer
的东西非常累人

那么,是有人要澄清我将如何将实际数据放入缓冲区,还是我应该抓起一本Objective-C的书,然后从头再来一遍

func renderCallback(ioData: UnsafeMutablePointer<AudioBufferList>) -> OSStatus 
{
    let abl = UnsafeMutableAudioBufferListPointer(ioData)
    for buffer in abl {
        memset(buffer.mData, 0, Int(buffer.mDataByteSize))
    }
    return noErr
}
func renderCallback(ioData:UnsafeMutablePointer)->OSStatus
{
设abl=UnsafemeutableAudioBufferListPointer(ioData)
用于abl中的缓冲区{
memset(buffer.mData,0,Int(buffer.mDataByteSize))
}
返回noErr
}

您可以在“for”循环中将数据逐元素复制到字节或Int16数组中。与memset相比,Swift可能会合理地优化该循环,从而使处理器数据缓存效应最终主导性能