//
//  HHNIMPlayer.m
//  hhvDoctorSDK_OC
//
//  Created by 程言方 on 2021/1/29.
//

#import "HHNIMPlayer.h"
#import "HHResManager.h"

@import TXLiteAVSDK_TRTC;


@interface HHNIMPlayer()

@property (nonatomic, assign) BOOL hasStoped;

@property (nonatomic, strong) TXAudioMusicParam * audioMusicParams;

@end


@implementation HHNIMPlayer

+ (HHNIMPlayer *)sharedInstance {
    static HHNIMPlayer * _sharedInstance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _sharedInstance = [[HHNIMPlayer alloc] init];
    });
    return _sharedInstance;
}


- (void)playHangUp {
    _hasStoped = NO;
    [self playLocalVoice:@"hangUp" voiceId: 1000 loopCount:1];
}

- (void)playSendRing{
    _hasStoped = NO;
    [self playLocalVoice:@"calling" voiceId: 1001 loopCount:1000];
//    [self playOnlineVoice:@"https://imgs.hh-medic.com/video/001/calling.mp3" voiceId: 1001];
}

- (void)playReceiverRing {
    _hasStoped = NO;
    [self playLocalVoice:@"calling" voiceId: 1002 loopCount:1000];
//    [self playOnlineVoice:@"https://imgs.hh-medic.com/video/001/calling.mp3" voiceId: 1002];
}

- (void)stopPlaying {
    _hasStoped = YES;
    
    if (_audioMusicParams != nil) {
        [[TRTCCloud.sharedInstance getAudioEffectManager] stopPlayMusic: _audioMusicParams.ID];
    }
}


- (void)playLocalVoice : (NSString *) name voiceId : (int) voiceId loopCount : (int) loop{
    
    NSURL * pathUrl = [HHResManager getAudioWithName:name];
    
    if (pathUrl == nil) {
        return;
    }
    
    _audioMusicParams = [[TXAudioMusicParam alloc] init];
    _audioMusicParams.ID = voiceId;
    _audioMusicParams.path = pathUrl.path;
    _audioMusicParams.loopCount = loop;
    
    
    [TRTCCloud.sharedInstance.getAudioEffectManager startPlayMusic:_audioMusicParams onStart:^(NSInteger errCode) {
        
    } onProgress:^(NSInteger progressMs, NSInteger durationMs) {
        
    } onComplete:^(NSInteger errCode) {
        
    }];
    
//    [TRTCCloud.sharedInstance playBGM:pathUrl.path withBeginNotify:^(NSInteger errCode) {
//
//    } withProgressNotify:^(NSInteger progressMS, NSInteger durationMS) {
//
//    } andCompleteNotify:^(NSInteger errCode) {
//
//    }];
    
}


- (void)playOnlineVoice : (NSString *) path voiceId : (int) voiceId {
    _audioMusicParams = [[TXAudioMusicParam alloc] init];
    _audioMusicParams.ID = voiceId;
    _audioMusicParams.path = path;
    _audioMusicParams.loopCount = 1000;
    
//    [TRTCCloud.sharedInstance playBGM:path withBeginNotify:^(NSInteger errCode) {
//
//    } withProgressNotify:^(NSInteger progressMS, NSInteger durationMS) {
//
//    } andCompleteNotify:^(NSInteger errCode) {
//        if (!self.hasStoped) {
//
//            [self playOnlineVoice:path voiceId:voiceId];
//        }
//
//    }];
    
    [TRTCCloud.sharedInstance.getAudioEffectManager startPlayMusic:_audioMusicParams onStart:^(NSInteger errCode) {
        
    } onProgress:^(NSInteger progressMs, NSInteger durationMs) {
        
    } onComplete:^(NSInteger errCode) {
        
    }];
    
}

@end