1
我想从iPhone麦克风(采用NSData格式)获取原始音频数据以通过套接字流式传输。这不是我可以使用twilio/etc的情况,因为它是一个研究项目。套接字的实现已完成(我可以发送音频文件),但是我无法获取流式麦克风数据。获取iPhone麦克风数据,通过套接字流式传输
这里是我的尝试:
class ViewController: UIViewController, AVCaptureAudioDataOutputSampleBufferDelegate
{
override func viewDidLoad()
{
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.setupMicrophone()
}
override func didReceiveMemoryWarning()
{
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func setupMicrophone()
{
let session = AVCaptureSession()
session.sessionPreset = AVCaptureSessionPresetMedium
let mic = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeAudio)
var mic_input: AVCaptureDeviceInput!
let audio_output = AVCaptureAudioDataOutput()
audio_output.setSampleBufferDelegate(self, queue: dispatch_get_main_queue())
do
{
mic_input = try AVCaptureDeviceInput(device: mic)
}
catch
{
return
}
session.addInput(mic_input)
session.addOutput(audio_output)
session.startRunning()
}
func captureOutput(captureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, fromConnection connection: AVCaptureConnection!)
{
// Do something here
}
}
问题:
委托函数永远不会被调用。
给予委托(如果它被调用)的数据不是NSData,是否有另一个函数可以提供NSData?有没有办法将CMSampleBuffer转换为NSData?
任何帮助表示赞赏。
干杯
看起来这可能是问题。我会测试并回复你! –
@ rythmic-fistman第一部分作品完美! 然而,当我使用的是第二部分,我收到错误: 的malloc:***错误对象0x1035662c0:被释放的指针没有被分配***设置malloc_error_break断点调试 知道为什么这将会? –
不 - 这到底发生了什么? –