我正在尝试获取传入的麦克风音频并将其流式传输到另一部iPhone。基本上是一个电话,但通过蓝牙。我有音频通过AV音频录像机
进入:
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 from@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秒不断运行,我通过蓝牙将其发送到另一台设备。
它似乎不起作用,我不认为这是一种实用的方法。我做了很多搜索,但没有看到太多关于通过蓝牙传输数据的信息。关键字流(可以理解)会让我进入有关服务器流的页面。
我的问题是,如何从麦克风获取音频并通过蓝牙将其发送到另一部iPhone?我已经设置了蓝牙部分,它工作得很好。我的问题与此非常相似,除了iPhone和斯威夫特 - 我想通过蓝牙打电话。
提前感谢您。
要同时录制和重定向输出,需要使用类别AVAudioSessionCategoryMultiRoute
。
以下是类别列表的链接:https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioSession_ClassReference/#//apple_ref/doc/constant_group/Audio_Session_Categories
如果所有其他方法都失败了,您可以使用预制的解决方案:http://audiob.us
它有一个API,允许您将音频流从一个应用程序集成到另一个应用:https://developer.audiob.us/
它支持多个输出endpoint。
希望这有所帮助。
问题内容: 我正在尝试通过Apples Multipeer Connectivity框架将音频从麦克风流式传输到另一个iPhone。为了进行音频捕获和回放,我使用了AVAudioEngine。 我通过在输入上安装一个抽头来从麦克风接收数据,由此我得到了AVAudioPCMBuffer,然后将其转换为UInt8数组,然后将其流式传输到另一部电话。 但是,当我将数组转换回AVAudioPCMBuffe
我正在尝试创建一个麦克风应用程序,在会议中用作观众的真正麦克风。我们将把Android设备连接到Wi-Fi局域网,任何人都可以从他们的应用程序中触发麦克风,向他人讲话。数据将进入局域网内的服务器Java程序,并从那里进入扬声器。 我不知道该怎么做。有人能帮我吗???提前谢谢
问题内容: 我正在寻找一种将文件中的音频数据馈送到麦克风的方法,因此,当第三方应用程序(例如 arecord 或Chromium的“按语音搜索”功能)使用麦克风进行音频输入时,它们会从文件中接收音频数据代替。 这是我的情况 :我编写的一个应用程序记录了来自麦克风的音频数据(使用ALSA)并将其保存到文件(audioFile0.raw)中。在将来的某个未知时间点,某些未知的第三方应用程序(例如,我没
是否可以从iPhone的内置麦克风接收音频输入,并同时通过蓝牙耳机播放该音频? 我的目标是始终使用内置麦克风作为输入设备,即使输出设备是耳机,因为在我的用例中内置麦克风更方便。 当输出设备是有线耳机时,我知道如何实现我的目标,就像iPhone附带的那种。我只需插入有线耳机,并调用以下方法: 通过调用上述方法,输入设备将从有线耳机的麦克风切换到iPhone的内置麦克风,而输出设备不受影响,因此iPh
可以通过蓝牙传输音频吗?在我的研究中,我发现只有使用A2DP(高级音频分布配置文件)才有可能。每个Android设备都支持A2DP吗?如果没有,是否可以使用蓝牙在两个Android设备之间传输音频?请帮我理解这一点。 我浏览了以下链接: 在Android中通过蓝牙接收音频, 谷歌确认蓝牙音频流修复下一个版本的Android 4.2 如何通过蓝牙从另一台设备流式传输音频?
有没有办法通过耳机传送麦克风输入,同时通过智能手机扬声器使用音频输出? 我已经看了几个小时了,我看到这在iOS上显然是不可能的,但是Android呢... 我用的是三星Galaxy S4。 这是我的代码的一部分,即使耳机已插入,也可以通过扬声器路由音频输出: 但当我试图通过耳机的麦克风控制我的应用程序时,什么都没有。所以我试着用智能手机的那一个,它显然起作用了。 它看起来不像其他AudioMana