Я пытаюсь принять входящий звук микрофона и передать его на другой iPhone. В основном телефонный звонок, но через Bluetooth. У меня есть звук, входящий через AVAudioRecorder
:
func startRecording() {
audioRecorder = nil
let audioSession:AVAudioSession = AVAudioSession.sharedInstance()
audioSession.setCategory(AVAudioSessionCategoryRecord, error: nil)
var recordSettings:NSMutableDictionary = NSMutableDictionary(capacity: 10)
recordSettings.setObject(NSNumber(integerLiteral: kAudioFormatLinearPCM), forKey: AVFormatIDKey)
recordSettings.setObject(NSNumber(float: 44100.0), forKey: AVSampleRateKey)
recordSettings.setObject(NSNumber(int: 2), forKey: AVNumberOfChannelsKey)
recordSettings.setObject(NSNumber(int: 16), forKey: AVLinearPCMBitDepthKey)
recordSettings.setObject(NSNumber(bool: false), forKey: AVLinearPCMIsBigEndianKey)
recordSettings.setObject(NSNumber(bool: false), forKey: AVLinearPCMIsFloatKey)
soundPath = documentsDirectory.stringByAppendingPathComponent("record.caf")
refURL = NSURL(fileURLWithPath: soundPath as String)
var error:NSError?
audioRecorder = AVAudioRecorder(URL: refURL, settings: recordSettings as [NSObject : AnyObject], error: &error)
if audioRecorder.prepareToRecord() == true {
audioRecorder.meteringEnabled = true
audioRecorder.record()
} else {
println(error?.localizedDescription)
}
}
Затем я попытался использовать StreamReader
из ЗДЕСЬ - StreamReader из @martin-r
Использование:
if let aStreamReader = StreamReader(path: documentsDirectory.stringByAppendingPathComponent("record.caf")) {
while let line = aStreamReader.nextLine() {
let dataz = line.dataUsingEncoding(NSUTF8StringEncoding)
println (line)
Затем отправьте данные на другое устройство, используя:
self.appDelegate.mpcDelegate.session.sendData(data: NSData!, toPeers: [AnyObject]!, withMode: MCSessionSendDataMode, error: NSErrorPointer )
Я конвертирую строку в NSData, затем используя dispatch_after через 0,5 секунды, я отправляю ее на другое устройство через bluetooth.
Кажется, что это не работает, и я не думаю, что это практический способ сделать это. Я выполнил многочисленные поисковые запросы и не видел много потоков данных через bluetooth. Потоковая передача ключевых слов (понятно) отправляет меня на страницы о потоке сервера.
Мой вопрос: как я могу взять звук с микрофона и отправить его на другой iPhone через Bluetooth? У меня есть часть bluetooth, все настроено, и она отлично работает. Мой вопрос очень похож на ЭТО, за исключением iPhone и Swift - я хочу иметь телефонный звонок через bluetooth.
Спасибо заранее.