iOS AVPlayer播放模式的实现(随机播放 列表循环 单曲循环)

本文介绍了如何在iOS应用中使用AVPlayer实现不同播放模式,包括随机播放、列表循环和单曲循环。通过创建数据单例存储歌曲模型,利用AVPlayer单例控制播放,并通过代理方法传递播放时间更新界面。当歌曲结束时,根据全局变量判断并执行相应的切换歌曲操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先我在这里讲一下我的整个播放器的思路:
首先是一个歌曲的列表,我把数据请求放在了一个单例里面,方便以后获取每首歌曲对应的model, 我给AVPlayer的播放也放在了一个单例里面,有播放开始,停止,等方法吗,我通过单例的代理方法将当前的播放时间传给播放时的控制器,这样控制器就可以根据传过去的当前时间给界面赋值了,比如播放界面的当前时间,以及当前的歌词等.

实现播放模式的思路:
1.通过点击按钮 弹出来一个下弹窗 可以选择播放模式 声明一个全局变量 不同的点击全局变量的值改变 全局变量默认的播放模式是列表循环
2.播放音乐时给播放添加计时器每隔0/1秒就要响应一次 通过代理方法传给控制器当前播放时间
3.在控制器的代理方法中 根据传过来的时间与当前歌曲的总时间对比,如果相等说明这首歌结束了,就调用歌曲结束的方法.
4.在音乐播放完毕的时候调用方法 根据不同的全局变量 实现不同的操作

第一步 实现button的点击方法 通过点击不同的下弹窗的值改变全局变量,记录选择的模式

/ 模式typeButton的点击方法的实现
- (void)actionTypeButton:(UIButton *)typeButton {
    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"请选择模式" message:nil preferredStyle:(UIAlertControllerStyleActionSheet)];
    // 添加顺序播放按钮
    UIAlertAction *serialAction = [UIAlertAction actionWithTitle:@"顺序播放" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction *action) {
          // 给定义的全局变量赋值
        self.typeCount = 0;
    }];
    // 添加随机播放按钮
    UIAlertAction *ArcAction = [UIAlertAction actionWithTitle:@"随机播放" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction *action) {
        self.typeCount = 1;
    }];
    // 添加重复播放按钮
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值