我想创建一个能够接收音频流的Android应用程序.我想过使用A2DP配置文件,但似乎Android不支持A2DP接收器.看起来有很多人在寻找这个问题的解决方案.但接收普通比特流,然后将数据转换为应用程序中的音频呢?我想通过RFCOMM(SPP蓝牙配置文件)接收PCM或Mp3数据流,然后使用AudioTrack播放它.
首先,如何通过RFCOMM在我的Android手机上接收比特流?是否可以通过RFCOMM作为PCM或Mp3流接收比特流?
其次,如果不能通过RFCOMM接收比特流作为PCM或Mp3流,我如何将接收的比特流转换为音频?
第三,如何将接收的数据转换为音频并同时"实时"播放音频?我可以使用onDataReceived吗?
要清楚,我对使用A2DP配置文件不感兴趣!我想通过RFCOMM(SPP蓝牙配置文件)传输数据.接收的数据流将采用PCM或Mp3.我想写自己的应用程序,但如果有人知道一个应用程序来解决这个问题,我很高兴听到它!我正在使用Android 2.3 Gingerbread.
/约翰尼
我对同一主题进行了研究,发现android设备是a2dp源,音频只能从a2dp源流到a2dp接收器.A2dp接收器可以是蓝牙耳机或蓝牙扬声器.
但我的问题是那个名为 " 蓝牙音乐播放器 " 的Android应用程序是如何工作的?
它允许从一个移动设备流式传输到另一个 因此,在这种情况下,收听移动设备必须充当接收器.这怎么可能?他们使用的是其他配置文件而不是a2dp吗?
好的,这可能是他们正在使用的不同的配置文件.因为应用程序也需要在客户端安装.但是如何将语音从蓝牙麦克风传输到Android设备呢?
请帮忙.
我正在尝试接收传入的麦克风音频并将其传输到另一部iPhone.基本上是电话,但通过蓝牙.我有音频通过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 { …Run Code Online (Sandbox Code Playgroud)