单军华
2018-04-18 de88ae127e305e0b153c327b073645f9353cace5
pregnancy_guard/BaseProject/Utility/AudioTool/CSAudioManager.m
@@ -114,12 +114,14 @@
    
    AVAudioPlayer *player = self.musicPlayers[playID];      //先查询对象是否缓存了
    player.delegate = self;
    player.numberOfLoops = -1;//设置音乐播放次数  -1为一直循环
    
    if (!player) {
        NSError *error = nil;
        player = [[AVAudioPlayer alloc] initWithData:musicData error:&error];
        player.delegate = self;
        player.numberOfLoops = -1;//设置音乐播放次数  -1为一直循环
        
        if (![player prepareToPlay]){
            NSLog(@"播放器缓冲失败");
@@ -184,6 +186,7 @@
            
            AVAudioPlayer *player=self.musicPlayers[playID];
            [player stop];
            [self.musicPlayers removeObjectForKey:playID];
            if (_blockPlayerStopPlay) {
                _blockPlayerStopPlay();
            }
@@ -228,6 +231,7 @@
        NSLog(@"请传入playID");
        return ;
    }
    AVAudioPlayer *player = self.musicPlayers[playID];
    
    [player stop];
@@ -272,11 +276,24 @@
        self.soundIDs[playID] = @(soundID);
    }
    
    // 设置播放完成回调
    AudioServicesAddSystemSoundCompletion(soundID, NULL, NULL, soundCompleteCallback, NULL);
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    // 播放
    AudioServicesPlaySystemSound(soundID);
}
//当音频播放完毕会调用这个函数
void soundCompleteCallback(SystemSoundID soundID,void* sample)
{
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);  //震动
    AudioServicesPlaySystemSound(soundID);
    /*播放全部结束,因此释放所有资源 */
//    AudioServicesDisposeSystemSoundID(sample);
//    CFRelease(sample);
//    CFRunLoopStop(CFRunLoopGetCurrent());
}
//摧毁音效
- (void)disposeSoundWithPlayID:(NSString *)playID