Place this line in your application:didFinishLaunchingWithOptions:
method of your AppDelegate
or in general before using the audio player.
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
According to the documentation, the AVAudioSessionCategoryAmbient
category is
for an app in which sound playback is nonprimary—that is, your app can be used successfully with the sound turned off.
This category is also appropriate for “play along” style apps, such as a virtual piano that a user plays over iPod audio. When you use this category, audio from other apps mixes with your audio. Your audio is silenced by screen locking and by the Silent switch (called the Ring/Silent switch on iPhone).
If you want also to ensure that no error occurred you have to check the return value
NSError *error;
BOOL success = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&error];
if (!success) {
//Handle error
NSLog(@"%@", [error localizedDescription]);
} else {
// Yay! It worked!
}
As a final remark, don't forget to link the AVFoundation
framework to your project and import it.
#import <AVFoundation/AVFoundation.h>
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…