swift 如何对AudioBufferList进行流处理并检索它

2ic8powd  于 2022-10-31  发布在  Swift
关注(0)|答案(1)|浏览(135)

我正在从委托方法接收AudioBufferList指针与bufferSize,并希望使用多对等连接对其进行流式处理.委托方法从发送设备得麦克风提供AudioBufferList指针

func microphone(_ microphone: EZMicrophone!, hasBufferList bufferList: UnsafeMutablePointer<AudioBufferList>!, withBufferSize bufferSize: UInt32, withNumberOfChannels numberOfChannels: UInt32) {
    // code to transform the AudioBufferList pointer to UInt8 and write to output stream 
}

我想知道的是如何将AudioBufferList指针更改为UInt8,这样我就可以将其写在OutputStream上,然后从多点连接设备的InputStream中检索AudioBufferList指针。

func session(_ session: MCSession, didReceive stream: InputStream, withName streamName: String, fromPeer peerID: MCPeerID) {
    // Multipeer Connectivity delegate method with input stream, code to receive UInt8 and transform back to an AudioBufferList pointer
}
v1l68za4

v1l68za41#

你不需要转换任何东西。你需要把AudioStreamBasicDescriptionAudioBufferList沿着发送,以便在另一个设备上播放它。没有直接把所有这些转换成UnsafePointer<UInt8>的方法,所以你需要自己做。这真的很棘手。我稍后会上传代码,说明如何做。现在你可以尝试研究下一个答案:12

相关问题