Tag: audiotoolbox

调用AUGraphStart进行播放时接收kAUGraphErr_CannotDoInCurrentContext

我正在使用AUGraph和Audio Units API在我的iOS应用程序中播放和录制audio。 现在我有一个罕见的问题,当一个AUGraph无法启动以下错误: 结果= kAUGraphErr_CannotDoInCurrentContext(-10863) 当我们尝试调用为audio播放设置的AUGraphStart ,发生错误不可预知: (BOOL)startRendering { if (playing) { return YES; } playing = YES; if (NO == [self setupAudioForGraph:&au_play_graph playout:YES]) { print_error("Failed to create play AUGraph",0); playing = NO; return NO; } //result = kAUGraphErr_CannotDoInCurrentContext (-10863) OSStatus result = AUGraphStart(au_play_graph); if (noErr != result) { print_error("AUGraphStart", result); playing = NO; […]

什么是在iOS 10新的键盘点击系统声音ID?

一般 我正在开发第三方键盘,目前正试图模仿苹果在iOS 10b4中推出的新键盘点击。 现在的情况 常规的点击声音可以使用AudioServicesPlaySystemSound(1104)播放,但我似乎无法find两个新的其他声音的系统声音ID。 我发现他们的.caf等价物的位置,但是那些使用AVAudioPlayer调整它们的音量之后就太吵了。 题 是否有可能获得新的点击声音的系统声音ID? 额外 如果有人需要.caf文件path供个人使用,在这里它们是: /System/Library/Audio/UISounds/key_press_click.caf /System/Library/Audio/UISounds/key_press_delete.caf /System/Library/Audio/UISounds/key_press_modifier.caf

需要访问iPhone使用的默认相机快门声音

现在,当用户按下一个button,我玩一个自定义相机快门声音。 但是,如果可能的话,我宁愿使用默认播放的相机快门声音,每当使用iPhone拍照时。 有没有一种方法可以访问和使用默认的iPhone相机快门声音? 如果是的话,那么它究竟在哪里? 我需要找出它的文件path,以便我可以使用下面的代码,只需更改pathForResource的input: NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"shutter" ofType: @"wav"]; NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:soundFilePath ]; self.myAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil]; [self.myAudioPlayer play]; 谢谢您的帮助。

耳机拔出时是否有事件发生?

在testing过程中,客户注意到拔下耳机时,iPhone中的video播放会暂停。 他想要类似的audio播放function,也许可以popup消息。 有没有人知道是否有一种事件我可以挂钩使这成为可能?

通过上方(电话)扬声器播放audio

我试图在我的应用程序中获取audio,通过iPhone上方的扬声器进行播放,这是您在通话期间按到耳边的那个扬声器。 我知道这是可能的,因为我已经在App Store上玩过一个模拟电话的游戏(“The Heist”)。 我在网上做了大量的研究,但是我发现一个甚至讨论过这个可能性的人都很难过。 绝大多数post似乎是关于免提扬声器vs插入式耳机,(比如这个 , 这个和这个 ),而不是上面的“电话”扬声器与免提扬声器。 (这个问题的一部分可能没有一个好名字:“电话扬声器”往往意味着设备底部的免提扬声器等,所以很难做一个真正有针对性的search)。 我已经看过苹果的Audio Session Category Route Overrides ,但似乎(纠正我,如果我错了)只处理底部的免提扬声器,而不是在电话顶部的扬声器。 我发现一个似乎是关于这个链接的post。 它甚至提供了一堆代码,所以我认为我是免费的,但现在我似乎无法让代码工作。 为了简单起见,我只复制了DisableSpeakerPhone方法(如果我正确地理解它应该是将audio重新路由到上面的扬声器的方法)到我的viewDidLoad ,看它是否会工作,但第一个“断言”行失败,audio继续发挥出底部。 (我还导入了AudioToolbox框架,正如评论中所build议的,所以这不是问题。) 这里是我正在使用的主要代码块(这是我复制到我的viewDidLoadtesting),虽然在我链接到的文章中有几个方法: void DisableSpeakerPhone () { UInt32 dataSize = sizeof(CFStringRef); CFStringRef currentRoute = NULL; OSStatus result = noErr; AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &dataSize, &currentRoute); // Set the category to use the speakers and microphone. UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord; […]