Reputation: 6448
I need to loop play a .caf file in my iPhone app.
The AVAudioPlayer looks promising. But there's one problem. It won't stop or mute even if I pressed the mute button on the iPhone.
And I understand that there would be no way to programmatically find out whether that mute button is pressed or not in iOS 5.
So, what I need to know might be some properties about AVAudioPlayer or AVAudioSession. Or, perhaps, I may need to consider other libraries to loop playing my .caf file.
Any idea?
Upvotes: 13
Views: 6001
Reputation: 36257
From docs:
So basically you just have to figure out which Audio Session category suits your need.
Upvotes: 3
Reputation: 11636
my 2 cents for swift 3.0:
let sharedSession = AVAudioSession.sharedInstance()
do {
try sharedSession.setCategory(AVAudioSessionCategoryAmbient)
} catch _{
return false
}
or simpler:
try? sharedSession.setCategory(AVAudioSessionCategoryAmbient)
Upvotes: 0
Reputation: 6448
I realized it was because I had this line of code
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];
I then changed it into
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: nil];
Then the mute button would work and stop my AVAudioPlayer...
Upvotes: 26