AVAudioRecorder & AVAudioPlayer with iOS 7 not working properly

10,057

Solution 1

I was having the same issue... It appears as if Apple is now requiring the use of AVAudioSession prior to using the AVAudioRecorder. I couldn't find any documentation on this change in requirement, however the recording portion of my app is now working.

All I did was create an audioSession, set the category, and set it to be active. I did this prior to calling prepareToRecord and I tried it after the call to prepareToRecord... both ways worked.

I hope this fixes your problem!

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

Solution 2

Same issue.

I have fixed it by using AVAudioSession. Moreover set properly the category of AVAudioSession:

when recording use:

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

when playing use:

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

If i don't switch the category when i play, the registration the volume is very low.

Good Luck!

Solution 3

I am also facing this problem so First I had to make sure the app had permission to use the mic by going to settings -> privacy -> microphone then I got success.

Share:
10,057

Related videos on Youtube

ace_ventura
Author by

ace_ventura

Updated on June 17, 2022

Comments

  • ace_ventura
    ace_ventura almost 2 years

    i'm having some issue with AVFoundation framework. I wrote a demo app to record audio, play it, and calculate decibels, with iOS 6. It both worked with iOS simulator built-in xcode 4.6.3 and my iPhone with iOS 6.1.3

    Now i've update xcode to version 5 and tested the appa again. With the built-in simulator it works (both with iOS 6.1 and iOS 7 simulators). But when i deploy the app to my iPhone, with iOS 7.0, it doesn't work anymore.

    I'm using AVAudioRecorder and AVAudioPlayer.

    I don't know what could be the problem. Any suggestions? thank you!

    • Sam B
      Sam B over 10 years
      that's exactly what's been happening to me. All my apps that used to work on iOS 6 have just flat out stopped working in iOS 7 for AVAudioRecorder and AVAudioPlayer. In my case they don't even work on simulator
    • Mr.Hardy
      Mr.Hardy over 10 years
      Sam, was your app unable to play audio as well? Check my answer for the way I figured out how to fix recording, but my playback was still working prior to the fix.
  • atbebtg
    atbebtg over 10 years
    I tried this on my code but its still not working. Do I need to ask permission to use the microphone first? thanks.
  • Hank
    Hank over 10 years
    @atbebtg you might need to replace the category with AVAudioSessionCategoryPlayback.
  • san
    san over 10 years
    Thank you. Saved my day.
  • Valeriy Van
    Valeriy Van over 10 years
    These helped me solve problem. Thanks a lot. Should add a bit of salt. Last two methods have return value. It is not a good practice ignoring return value. It is not acceptable even in example snippets.