我正在从委托方法接收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
}
1条答案
按热度按时间v1l68za41#
你不需要转换任何东西。你需要把
AudioStreamBasicDescription
和AudioBufferList
沿着发送,以便在另一个设备上播放它。没有直接把所有这些转换成UnsafePointer<UInt8>
的方法,所以你需要自己做。这真的很棘手。我稍后会上传代码,说明如何做。现在你可以尝试研究下一个答案:1,2