【发布时间】:2015-03-02 02:57:50
【问题描述】:
我使用 AVAudioPlayer 播放声音,但有时音量会变得非常低,与系统音量不一样。当我通过按音量按钮更改系统音量时,它变得正常。它是怎么发生的?
代码如下:
- (void)prepareAudioSession {
AVAudioSession *session = [AVAudioSession sharedInstance];
NSError *setCategoryError = nil;
if (![session setCategory:AVAudioSessionCategoryPlayback
withOptions:AVAudioSessionCategoryOptionMixWithOthers
error:&setCategoryError]) {
// handle error
}
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *error = nil;
BOOL result = [audioSession setActive:YES withOptions:0 error:&error];
if (!result && error) {
// deal with the error
}
}
- (void)playWithAudioPath:(NSString *)path {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) {
NSError *error;
NSURL *audioFileURL = [NSURL fileURLWithPath:path];
self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioFileURL error:&error];
audioPlayer.delegate = self;
if (error == nil) {
[self prepareAudioSession];
[audioPlayer setCurrentTime:0];
[audioPlayer play];
}
else {
NSLog(@"%@", error.description);
}
});}
【问题讨论】:
标签: ios objective-c avaudioplayer volume avaudiosession