从 iOS 设备的麦克风将音频缓冲区分段发送到服务器
Send audio buffer in parts to a server from an iOS device's microphone
我正在尝试构建一个 iOS 应用程序来流式传输直接来自设备输入(或麦克风)的音频。我在想的是,每隔一段时间,我必须将音频缓冲区发送到服务器,以便服务器将其发送到可能想要收听的另一个客户端。我打算将 WebSockets 用于服务器端实现。
有没有办法从 iOS 设备的输入(麦克风)中获取特定的缓冲区流,并在用户说另一段话时将其发送到服务器等等?我在想,如果我可以用 AVAudioEngine
开始一个 AVAudioRecorder
并每 1 秒或半秒记录一次,但我认为这会造成太多延迟,并可能在过渡过程中丢失流过程。
有没有更好的方法来完成这个?我真的很想了解它背后的科学。如果这不是最好的方法,请告诉我它是哪一种,也许是它的实施的基本想法,或者可以为我指明正确方向的东西。
我找到了我自己问题的答案!!答案在于 AVFoundation
框架,特别是 AVCaptureAudioDataOutput
及其委托,一旦输入源捕获它就会向您发送缓冲区。
我正在尝试构建一个 iOS 应用程序来流式传输直接来自设备输入(或麦克风)的音频。我在想的是,每隔一段时间,我必须将音频缓冲区发送到服务器,以便服务器将其发送到可能想要收听的另一个客户端。我打算将 WebSockets 用于服务器端实现。
有没有办法从 iOS 设备的输入(麦克风)中获取特定的缓冲区流,并在用户说另一段话时将其发送到服务器等等?我在想,如果我可以用 AVAudioEngine
开始一个 AVAudioRecorder
并每 1 秒或半秒记录一次,但我认为这会造成太多延迟,并可能在过渡过程中丢失流过程。
有没有更好的方法来完成这个?我真的很想了解它背后的科学。如果这不是最好的方法,请告诉我它是哪一种,也许是它的实施的基本想法,或者可以为我指明正确方向的东西。
我找到了我自己问题的答案!!答案在于 AVFoundation
框架,特别是 AVCaptureAudioDataOutput
及其委托,一旦输入源捕获它就会向您发送缓冲区。