Tag: avaudiosession

更改locking屏幕背景audio控制文本?

我有一个iOS应用程序,使用AVAudioSessionstream式背景audio。 它工作正常,但我很好奇,有没有办法改变锁屏audio控制的文本? 现在它只是显示我的应用程序的名称,但我想将其更改为曲目的名称。 此外,多任务栏在控件下面没有文本 – 有没有办法在那里添加曲目名称,就像iPod应用程序那样?

iOS AVAudioSession中断通知不按预期工作

我想知道什么时候我的AVAudioRecorder无法访问(例如,当音乐开始播放)。 由于audioRecorderEndInterruption将被弃用与iOS 9我专注于AVAudioSession的中断通知(但都没有按预期工作)。 问题是,如果应用程序在中断发生时仍处于前台,中断通知从不会被调用。 例如:用户启动和停止播放音乐,而不将应用程序移动到后台。 要检测我正在使用的任何中断: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(audioSessionWasInterrupted:) name:AVAudioSessionInterruptionNotification object:nil]; … – (void)audioSessionWasInterrupted:(NSNotification *)notification { if ([notification.name isEqualToString:AVAudioSessionInterruptionNotification]) { NSLog(@"Interruption notification"); if ([[notification.userInfo valueForKey:AVAudioSessionInterruptionTypeKey] isEqualToNumber:[NSNumber numberWithInt:AVAudioSessionInterruptionTypeBegan]]) { NSLog(@"InterruptionTypeBegan"); } else { NSLog(@"InterruptionTypeEnded"); } } } 如预期的那样,我得到InterruptionTypeBegan ,但是如果应用程序仍处于前台(即在应用程序放置在后台并返回前台之前不会调用),则不会调用InterruptionTypeEnded 。 在应用程序处于前台时发生中断时,如何接收InterruptionTypeEnded通知?

与AVAudioSessionCategoryPlayAndRecord组合在一起的低录音量

当我设置: [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error:NULL]; …录音和播放工作正常,只是播放音量比当我只是播放相同的声音,没有logging和设置PlayAndRecord时低60%左右。 我需要获得高音量(为了检查用户是否在麦克风中吹),因此我开始了录音。 但没有设置AVAudio..PlayandRecord,我无法播放任何声音在此期间。 这就是我实施这个命令的原因。 任何帮助? 克里斯

不logging时隐藏iOS应用程序中的红色录制状态栏

当应用程序在后台而不logging时,我无法将红色“录制”状态栏隐藏在我的应用程序中。 我碰巧使用了惊人的audio引擎 ,但我认为这个问题可以解决这个库的知识。 它得到这样的设置: audioController = [[AEAudioController alloc] initWithAudioDescription:desc inputEnabled:YES]; audioController.audioSessionCategory = kAudioSessionCategory_MediaPlayback; 当用户想要录制时,我打开这个麦克风: [audioController addInputReceiver:mic]; audioController.audioSessionCategory = kAudioSessionCategory_PlayAndRecord; 当用户想要停止录制时,我将其closures: [audioController removeInputReceiver:mic]; audioController.audioSessionCategory = kAudioSessionCategory_MediaPlayback; 问题是,当应用程序没有logging和用户离开应用程序,红色的“录制”状态栏仍然显示。 我无法停止/configurationaudioController,因为应用程序可能仍在播放audio。 如果我不录制,我不想让红色录制状态栏显示。 任何想法如何做到这一点? 更新 我设置了以下代码块,每隔2秒在我的应用程序中运行。 audioController.audioSessionCategory = kAudioSessionCategory_MediaPlayback; AVAudioSession *audioSession = [AVAudioSession sharedInstance]; NSError* error = nil; [audioSession setActive:NO error: &error]; NSLog(@"error: %@", error); [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil]; 这logging: TAAE: […]

接收没有audio的遥控事件

以下是一些背景信息,否则请直接跳至粗体问题。 我正在构build一个应用程序,我希望它有权访问远程控制/锁屏事件。 棘手的部分是,这个应用程序不播放audio本身,它控制附近的另一个设备的audio。 当应用程序处于前台时,设备之间的通信不成问题。 正如我刚刚发现的,一个应用程序不会假定遥控器的控制权,直到它播放audio播放audio会话,并且是最后一次。 这提出了一个问题,因为就像我所说的,应用程序控制另一个设备的audio,并没有必要发挥自己的。 我的第一个倾向是让应用程序在每次打开时播放无声片段,以便控制遥控器。 我必须这么做的事实让我怀疑,即使我被苹果允许这样做,或者如果有另一种方法来实现这一点,而不用假audio剪辑欺骗系统。 问题:苹果是否会批准播放无声audio剪辑的应用程序,以便控制远程/locking屏幕控件以控制其他设备的audio? 有没有任何方法可以在没有audio会话的情况下控制遥控器? 附言我宁愿有这个function在iOS 4.0及以上。 PPS我已经看到了这个类似的问题 ,它让我头脑风暴,但提供的答案是不是特定于我需要知道的。

检测iOS设备上的活动AVAudioSessions

我想弄清楚这是否可能 – 我的应用程序激活一个audio会话,初始化为: [[[AVAudioSession alloc] init] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&error]; 我希望能够理解何时来自另一个应用程序或操作系统的附加audio会话正在播放。 我知道实现委托方法beginInterruption:和endInterruption的能力,但是由于我使用的是AVAudioSessionCategoryOptionMixWithOthers选项,所以不会被调用。 有没有办法实现这一点,而不使用私人API? 提前致谢。

如何使用MPMoviePlayerController播放video时将audio静音/取消静音?

我创build了我自己的自定义控件,用于MPMoviePlayerController 。 到目前为止,除了静音button控制之外,所有的工作都正常。 在创buildMPMoviePlayerController实例之前,我使用以下代码configuration了MPMoviePlayerController 。 NSError *modeError = nil; [self.audioSession setMode:AVAudioSessionModeMoviePlayback error:&modeError]; if (modeError != nil) { NSLog(@"Error setting mode for AVAudioSession: %@", modeError); } NSError *categoryError = nil; [self.audioSession setCategory:AVAudioSessionCategoryPlayback error:&categoryError]; if (categoryError != nil) { NSLog(@"Error setting category for AVAudioSession: %@", categoryError); } 然后在我的静音buttoncallback方法我有以下代码: NSError *activeError = nil; [self.audioSession setActive:NO error:&activeError]; if (activeError […]

AVCaptureSession和背景audioiOS 7

每当我开始一个运行麦克风的AVCaptureSession作为input时,它将取消当前正在运行的任何背景音乐(例如iPod音乐)。 如果我将添加audioinput的行注释掉,背景audio会继续。 有没有人知道用麦克风录制video剪辑的方法,同时继续播放背景audio? 当您尝试录制video和音乐正在播放时,也有错误。 试图这样做: [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil]; UInt32 doSetProperty = 1; AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(doSetProperty), &doSetProperty); [[AVAudioSession sharedInstance] setActive: YES error: nil]; 但 'AudioSessionSetProperty' is deprecated: first deprecated in iOS 7.0 所以我试图这样做: AVAudioSession *audioSession = [AVAudioSession sharedInstance]; NSError *setCategoryError = nil; [audioSession setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&setCategoryError]; [audioSession setActive:YES error:nil]; 但最后它没有工作。 感谢帮助!