iOS循环播放背景音乐

iOS循环播放背景音乐


相关宏定义

#define kUserDefaults               [NSUserDefaults standardUserDefaults]
#define kAppDelegate            ((AppDelegate*)[[UIApplication sharedApplication] delegate])
static NSString *const _Nullable kSoundValid                  = @"kSoundValid";

设置播放器,我的audioPlayer是写在AppDelegate里面的,进入应用后,直接调播放就行了

- (void)setBackgroundMusic{
    NSString *path = [[NSBundle mainBundle] pathForResource:@"Music" ofType:@"mp3"];
    NSURL *url = [[NSURL alloc] initFileURLWithPath:path];
    self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
    self.audioPlayer.volume = 0.5;
    self.audioPlayer.delegate = self;
}
// 播放器代理 播放完成的时候再次播放
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{
    [self.audioPlayer play];
}


播放与停止

/**  播放背景音乐*/
+ (void)playMusic{
    if ([kUserDefaults boolForKey:kMusicValid]) {
        AVAudioSession *session = [AVAudioSession sharedInstance];
        [session setCategory:AVAudioSessionCategoryAmbient error:nil];
        [session setActive:YES error:nil];
        [kAppDelegate.audioPlayer play];
    }
}

/**  停止背景音乐*/
+ (void)stopMusic{
    [kAppDelegate.audioPlayer pause];
    // 继续播放其他App的声音
    [[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil];
}

关于设置
其中LGSwitch是自定义开关LGService为自定义的工具类

- (void)musicDidChange:(LGSwitch *)switchView{
    [kUserDefaults setBool:switchView.isOn forKey:kMusicValid];
    [kUserDefaults synchronize];
    if (switchView.isOn) {
        [LGService playMusic]; 
    }else{
        [LGService stopMusic];
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值