AVAudioRecorder& iOS 7的AVAudioPlayer无法正常工作

时间:2013-09-20 16:57:54

标签: avfoundation avaudioplayer ios7 avaudiorecorder xcode5

我遇到了AVFoundation框架的一些问题。 我用iOS 6编写了一个演示应用来录制音频,播放和计算分贝。 它既可以使用iOS模拟器内置的xcode 4.6.3,也可以使用我的iPhone和iOS 6.1.3

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

我正在使用AVAudioRecorderAVAudioPlayer

我不知道会出现什么问题。有什么建议?谢谢!

4 个答案:

答案 0 :(得分:60)

我遇到了同样的问题......似乎Apple现在要求在使用AVAudioSession之前使用AVAudioRecorder。我无法找到有关此更改要求的任何文档,但我的应用程序的录制部分现在正在运行。

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

我希望这可以解决您的问题!

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

答案 1 :(得分:5)

同样的问题。

我已经使用AVAudioSession修复了它。此外,正确设置AVAudioSession

的类别

录制时使用:

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

玩游戏时使用:

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

如果我在播放时没有切换类别,则注册音量非常低。

祝你好运!

答案 2 :(得分:1)

我也面临着这个问题 首先,我必须通过转到设置确保应用程序有权使用麦克风 - >隐私 - >麦克风 然后我获得了成功。

答案 3 :(得分:0)

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

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