Commit 8874eeb5 cgx

修复白噪音正在播放被其他APP音频中断播放状态问题

1 个父辈 319ab8c5
......@@ -6,6 +6,7 @@
//
#import "NoisePlayerManager.h"
#import <AVFoundation/AVFoundation.h>
@interface NoisePlayerManager ()
/// 临时操作使用的可变数组
......@@ -19,6 +20,8 @@ SingletonM(NoisePlayerManager)
_isPlaying = isPlaying;
[[NSNotificationCenter defaultCenter] postNotificationName:@"playStatusNoti" object:nil userInfo:@{@"isPlaying":@(self.isPlaying)}];
[self addNoti];
}
- (NSMutableArray *)tmpArry {
......@@ -28,6 +31,31 @@ SingletonM(NoisePlayerManager)
return _tmpArry;
}
- (void)addNoti {
// 监听音频被其他APP打断通知
AVAudioSession *sessionInstance = [AVAudioSession sharedInstance];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(audioSessionWasInterrupted:)
name:AVAudioSessionInterruptionNotification
object:sessionInstance];
NSError *error = nil;
[sessionInstance setCategory:AVAudioSessionCategoryPlayback error:&error];
if (nil != error) {
DSLog(@"Error setting audio session category! %@", error);
} else {
[sessionInstance setActive:YES error:&error];
if (nil != error) DSLog(@"Error setting audio session active! %@", error);
}
}
- (void)removeNoti {
[[NSNotificationCenter defaultCenter] removeObserver:self name:AVAudioSessionInterruptionNotification object:[AVAudioSession sharedInstance]];
}
- (void)audioSessionWasInterrupted:(NSNotification *)notification {
self.isPlaying = NO;
}
- (NSArray<NoiseAudioCell *> *)playCellList {
return [self.tmpArry copy];
}
......@@ -41,6 +69,8 @@ SingletonM(NoisePlayerManager)
[item play];
}
self.isPlaying = isPlaying;
[self addNoti];
}
- (void)pauseAll {
......@@ -49,6 +79,8 @@ SingletonM(NoisePlayerManager)
[item pause];
}
self.isPlaying = NO;
[self removeNoti];
}
- (void)stopAll {
......@@ -58,6 +90,8 @@ SingletonM(NoisePlayerManager)
[item stop];
}
self.isPlaying = NO;
[self removeNoti];
}
- (BOOL)addNoiseAudioCell:(NoiseAudioCell *)cell {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!