我为ios 7制作了一个带钛的iphone录音应用程序,我注意到你在锁定手机时会发生一个错误。
当我运行应用程序时,一切记录都很好我可以关闭/最小化应用程序重新打开应用程序所有工作都很好问题发生时我关闭应用程序并锁定手机点击右上方按钮。
如果我然后重新输入我的密码并再次打开应用程序并单击记录我在xcode中出现以下错误,并且顶部红色背景服务栏轻弹然后再次退出。
我用xcode输出了这个。
Error: couldn't get queue's maximum output packet size (-50)
Error: AudioQueueAllocateBuffer failed (-50)
Error: couldn't get queue's maximum output packet size (-50)
Error: AudioQueueAllocateBuffer failed (-50)
我被告知这可能是苹果的问题,这可能是真的吗?
这是一段视频,当你看到顶部的红色条形图闪烁时,我看到上面的错误,并且录制失败。
https://www.youtube.com/watch?v=CvlAAlo3yts
请帮忙???
答案 0 :(得分:2)
我发现了这个问题!似乎在iOS 7上也需要设置它(我认为这只是实际上很难找到,不会写在任何地方)。只需在调用任何AudioQueue函数之前添加此代码:
AudioSessionInitialize(NULL,
NULL,
nil,
( void *)(self)
);
UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,
sizeof(sessionCategory),
&sessionCategory
);
AudioSessionSetActive(true);
答案 1 :(得分:1)
user3278923的答案解决了这个问题,但这里是Obj-C的代码:
AVAudioSession *session = [AVAudioSession sharedInstance];
NSError * error;
[session setCategory:AVAudioSessionCategoryRecord error:&error];
[session setActive:YES error:nil];
录制后:
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryAmbient error:nil];
[session setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil];e
答案 2 :(得分:0)
要迅速:
https://developer.apple.com/documentation/avfoundation/avaudiosession
let audioSession = AVAudioSession.sharedInstance()
do {
try audioSession.setActive(true)
try audioSession.setCategory(AVAudioSessionCategoryPlayback)
} catch {
print("Setting category to AVAudioSessionCategoryPlayback failed.")
}