【问题标题】:IOS 7 iphone recording app Error: AudioQueueStart failed (-50)IOS 7 iphone录音应用错误:AudioQueueStart失败(-50)
【发布时间】:2013-11-30 12:57:30
【问题描述】:

我已经为 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

请帮忙???

【问题讨论】:

标签: ios iphone objective-c titanium


【解决方案1】:

我发现了问题!似乎在 iOS 7 上也需要设置它(我认为这只是实际上,因此很难找到,没有写在任何地方)。只需在调用任何 AudioQueue 函数之前添加此代码:

AudioSessionInitialize(NULL,
                       NULL,
                       nil,
                       ( void *)(self)
                       );

UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,
                        sizeof(sessionCategory),
                        &sessionCategory
                        );

AudioSessionSetActive(true);

【讨论】:

  • 嗨 mitul 谢谢你,我正在使用 Titanium,所以我需要进入 ios sdk 到手机和类中找到该实例出现的每个音频类并添加代码?
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    对于快速:

    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.")
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多