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斷點調試 知道爲什麼這將會? –
不 - 這到底發生了什麼? –