我正在使用AVAudioSession开发一个快速的音频/视频和文本聊天iOS应用程序。每当我选择使用某些蓝牙设备时,设备上播放的声音不是App音频流。每当发送/接收消息时,它们只播放文本聊天库发送的系统声音。它不会在所有蓝牙设备上发生,在其中一些设备上一切正常。在内置麦克风和扬声器上,该应用程序也能正常工作。以下是我类用于管理设备的最重要的方法:classMyAudioSession{privatevarmAudioSession:AVAudioSession;init!(){self.mAudioSession=AVAudioSession.sharedInstance();do{
我正在开发音乐应用程序,它只播放来自应用程序的歌曲。现在我正在连接蓝牙扬声器播放。所以我正在设置AVAudioSession类别,但它总是会返回错误。代码:funcsetupSessionForPlaying(){letaudioSession=AVAudioSession.sharedInstance()do{tryaudioSession.setCategory(AVAudioSessionCategoryPlayback,with:[.allowBluetooth])tryaudioSession.setActive(true)}catch{fatalError("ErrorSe
我正在播放几种声音,每种声音都会使背景音频变暗。完成后,我恢复背景音频。每次播放其中一个音频文件时,背景都会变暗(根据需要)。当最后一个音频完成播放时,背景音频将恢复(也是需要的)。但是大约5秒后,它会抛出此错误并再次调暗音频(这不是我想要的,因为所有声音现在都已结束)。ERROR:[0x19c9af310]AVAudioSession.mm:646:-[AVAudioSessionsetActive:withOptions:error:]:DeactivatinganaudiosessionthathasrunningI/O.AllI/Oshouldbestoppedorpaused
尝试将AVAudioSession放入.playAndRecord类别并使用AVAudioSessionModeMeasurement模式会导致.defaultToSpeaker选项被忽略,导致输出在听筒(也称为接收器)中安静地播放。 最佳答案 虽然关于此的内容似乎不多,但文档使“将音频输出发送到接收器而不是扬声器的最终结果”看起来像是可能的预期行为,而不是错误。letAVAudioSessionModeMeasurement:StringThismodeisintendedforappsthatneedtominimizethea
我知道这个问题可能会得到不好的评价,但我一直在寻找询问如何将音频输出重新路由到iOS设备上的扬声器的问题。我看到用户的每个问题都谈到使用您的AVAudioSession来重新路由它。但是,我没有使用AVAudioSession,我使用的是AVAudioEngine。所以基本上我的问题是,即使我使用的是AVAudioEngine,我还应该有AVAudioSession吗?如果是这样,这两个对象之间的关系是什么?或者有没有办法将AVAudioEngine连接到AVAudioSession?如果不是这种情况,并且AVAudioEngine和AVAudioSession之间没有任何关系,那么您
我想使用AVCaptureSession录制带音频的视频。为此,我需要AudioSessionCategoryAVAudioSessionCategoryPlayAndRecord,因为我的应用程序还可以播放带声音的视频。我希望可以从默认扬声器听到音频,并且我希望它与其他音频混合。所以我需要选项AVAudioSessionCategoryOptionDefaultToSpeaker|AVAudioSessionCategoryOptionMixWithOthers.如果我在播放其他音频时执行以下操作,则其他应用的音频中会出现明显的故障:[[AVAudioSessionsharedIns
所以在我的应用程序中,在iOS6上运行,一切似乎都与音频一起工作。我使用旧的CAPI格式通过回调捕获中断;通过以下方式设置:AudioSessionInitialize(NULL,NULL,interruptionListenerCallback,(__bridgevoid*)self)非常棒。虽然使用iOS7SDK,但当设备收到调用或警报响起时,我的中断回调似乎永远不会被调用。环顾四周后,我听说旧的Capi已被弃用,您应该转向更新的AVAudioSession函数。更多阅读表明AVAudioSession委托(delegate)已被弃用,您应该使用NSNotification为AVA
我想知道我的AVAudioRecorder何时无法访问(例如,音乐开始播放时)。由于audioRecorderEndInterruption将在iOS9中被弃用,我主要关注AVAudioSession的中断通知(但两者都没有按预期工作)。问题是,如果应用程序在中断发生时一直在前台运行,则永远不会调用中断通知。例如:用户开始和停止播放音乐,而无需将应用程序移至后台。要检测我正在使用的任何中断:[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(audioSessionWasInterrupted:)
我正在尝试弄清楚这是否可行-我的应用激活了一个初始化为以下内容的AudioSession:[[[AVAudioSessionalloc]init]setCategory:AVAudioSessionCategoryPlaybackwithOptions:AVAudioSessionCategoryOptionMixWithOtherserror:&error];我希望能够了解何时播放源自其他应用或操作系统的附加AudioSession。我知道实现委托(delegate)方法beginInterruption:和endInterruption的能力,但由于AVAudioSessionCa
我需要列出iOS应用程序可用的音频输出。我的问题与此类似:HowtolistavailableaudiooutputrouteoniOS我试过这段代码:NSError*setCategoryError=nil;BOOLsuccess=[[AVAudioSessionsharedInstance]setCategory:AVAudioSessionCategoryPlaybackerror:&setCategoryError];NSError*activationError=nil;[[AVAudioSessionsharedInstance]setActive:YESerror:&ac