iOS:如何在我的音乐应用程序中播放蓝牙耳机中的缓冲音频?

Posted

技术标签:

【中文标题】iOS:如何在我的音乐应用程序中播放蓝牙耳机中的缓冲音频?【英文标题】:iOS: How to play buffering audio in bluetooth headset in my music app? 【发布时间】:2015-04-20 06:23:14 【问题描述】:

我目前正在开发一款音乐应用。因为我需要玩缓冲 蓝牙耳机中的音频歌曲。我过去 1 天搜索了代码。但 我不能。请提供解决方案如何在我的音乐应用中添加它。

当 iphone 处于后台模式和屏幕锁定模式时,我还需要在蓝牙耳机中播放该音频。

   AVAudiosession* audioSession = [AVAudioSession sharedInstance];
//[audioSession setDelegate:self];
NSError *error;
[audioSession setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionAllowBluetooth error:&error];
[audioSession setActive: YES error: nil];


// check the audio route
UInt32 size = sizeof(CFStringRef);
CFStringRef route;

OSStatus result = AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &size, &route);
NSLog(@"route = %@", route);
// if bluetooth headset connected, should be "HeadsetBT"
// if not connected, will be "ReceiverAndMicrophone"

// now, play a quick sound we put in the bundle (bomb.wav)
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef        soundFileURLRef;
SystemSoundID   soundFileObject;
soundFileURLRef  = CFBundleCopyResourceURL (mainBundle,CFSTR ("sample"),CFSTR ("m4a"),NULL);
AudioServicesCreateSystemSoundID (soundFileURLRef,&soundFileObject);
AudioServicesPlaySystemSound (soundFileObject);     // should play into headset

我已在我的音乐应用中添加了此代码。但此代码用于捆绑音频文件。但我需要缓冲音频。如果不可能,请告诉我的代码是否正确,可以通过蓝牙耳机播放本地音频文件。?

【问题讨论】:

请发布您尝试过的任何内容,即使它是对蓝牙播放的非缓冲内容,或者是对蓝牙不播放的缓冲内容。发布你所拥有的一切。 @GHC 我编辑了我的帖子。请检查并更新我。谢谢。 顺便说一句,您可以在techslides.com/sample-files-for-development找到示例文件 @raja 你是否在 info.plist 中添加了关于播放音频背景模式的权限? 【参考方案1】:

根据我在文档中阅读的内容,设置音频会话的类别应该是

AVAudioSessionCategoryPlayAndRecord

AVAudioSessionCategoryRecord

如果将选项设置为

 AVAudioSessionCategoryOptionAllowBluetooth

所以你应该改变它,当我查看枚举时另一件事:AVAudioSessionCategoryOptions 蓝牙选项是 __TVOS_PROHIBITED 但我不知道替代方案...

【讨论】:

以上是关于iOS:如何在我的音乐应用程序中播放蓝牙耳机中的缓冲音频?的主要内容,如果未能解决你的问题,请参考以下文章

耳机线控启动APP时如何查看iOS APP【音乐播放应用】是不是在后台

当我在我的应用程序中录制完整的音频时,如何在其他 iOS 应用程序中继续播放音乐? [关闭]

如何使用 BLE 控制 iOS 设备中的音乐播放器

通过用户库中的耳机播放音乐

当设备被蓝牙耳机锁定时,AVAsset 无法播放

如何在右侧耳机播放音频,在左侧播放音乐?