【问题标题】:AVAudioRecorder & AVAudioPlayer with iOS 7 not working properly带有 iOS 7 的 AVAudioRecorder 和 AVAudioPlayer 无法正常工作
【发布时间】:2013-09-26 03:41:18
【问题描述】:

我在使用 AVFoundation 框架时遇到了一些问题。 我使用 iOS 6 编写了一个演示应用程序来录制音频、播放并计算分贝。 它既适用于内置 xcode 4.6.3 的 iOS 模拟器,也适用于带有 iOS 6.1.3 的 iPhone

现在我已经将 xcode 更新到版本 5 并再次测试了 appa。使用内置模拟器,它可以工作(适用于 iOS 6.1 和 iOS 7 模拟器)。但是当我将应用程序部署到我的 iPhone 上,使用 iOS 7.0 时,它不再工作了。

我正在使用AVAudioRecorderAVAudioPlayer

我不知道可能是什么问题。有什么建议?谢谢!

【问题讨论】:

  • 这正是发生在我身上的事情。我以前在 iOS 6 上运行的所有应用程序都完全停止在 iOS 7 中的 AVAudioRecorder 和 AVAudioPlayer 运行。就我而言,他们甚至不能在模拟器上工作
  • Sam,您的应用是否也无法播放音频?检查我的答案,了解我想出如何修复录制的方法,但在修复之前我的播放仍在工作。

标签: avfoundation avaudioplayer ios7 avaudiorecorder xcode5


【解决方案1】:

我遇到了同样的问题...看起来 Apple 现在要求在使用 AVAudioRecorder 之前使用 AVAudioSession。我找不到有关此要求更改的任何文档,但是我的应用程序的录制部分现在可以正常工作了。

我所做的只是创建一个audioSession,设置类别,并将其设置为活动状态。我在调用prepareToRecord 之前这样做了,在调用prepareToRecord... 之后我尝试了这两种方法都有效。

希望这能解决您的问题!

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
[audioSession setActive:YES error:nil];

【讨论】:

  • 我在我的代码上尝试了这个,但它仍然无法正常工作。我需要先获得使用麦克风的许可吗?谢谢。
  • @atbebtg 您可能需要将类别替换为 AVAudioSessionCategoryPlayback
  • 谢谢。拯救了我的一天。
  • 这些帮助我解决了问题。非常感谢。应该加一点盐。最后两个方法有返回值。忽略返回值不是一个好习惯。即使在示例 sn-ps 中也是不可接受的。
【解决方案2】:

同样的问题。

我已经使用 AVAudioSession 修复了它。另外正确设置AVAudioSession的类别:

录音时使用:

[self.audioSession setCategory:AVAudioSessionCategoryRecord error:nil];

玩时使用:

[self.audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];

如果我玩的时候不切换类别,注册音量就很低。

祝你好运!

【讨论】:

    【解决方案3】:

    我也遇到了这个问题 首先,我必须确保应用程序有权使用麦克风,方法是转到设置 -> 隐私 -> 麦克风 然后我就成功了。

    【讨论】:

      【解决方案4】:

      也许您无权使用麦克风。使用此代码:

      if ([audioSession respondsToSelector:@selector(requestRecordPermission:)]) {
          [audioSession performSelector:@selector(requestRecordPermission:) withObject:^(BOOL granted) {
              if (granted) {
                  // Microphone enabled code
              }
              else {
                  // Microphone disabled code
              }
          }];
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-29
        • 2013-03-06
        • 1970-01-01
        相关资源
        最近更新 更多