ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DFPlayer播放模式完全指南:一行代码实现单曲循环、顺序播放与随机播放

DFPlayer播放模式完全指南:一行代码实现单曲循环、顺序播放与随机播放 DFPlayer播放模式完全指南一行代码实现单曲循环、顺序播放与随机播放【免费下载链接】DFPlayer(已不维护)简单灵活的iOS音频播放组件。基于AVPlayer支持本地和远程音频播放具有缓存、耳机线控、锁屏和控制中心信息展示、单曲顺序随机播放、倍速播放、歌词同步等音频播放器功能DFPlayer封装了缓冲条、进度条、播放暂停按钮、下一首按钮、上一首按钮、播放模式按钮、歌词同步的tableview等UI控件一行代码布局即可实现相应功能。项目地址: https://gitcode.com/gh_mirrors/df/DFPlayerDFPlayer 是一款简单灵活的 iOS 音频播放组件基于 AVPlayer 封装支持本地和远程音频播放、缓存、歌词同步等功能。它的playMode 播放模式属性内置了 4 种模式单次播放、单曲循环、顺序播放、随机播放一行代码即可完成切换。本文带你完整看懂 DFPlayer 播放模式的全部用法帮你快速在自己的音乐 App 中实现完整的播放控制。一、DFPlayer 内置的 4 种播放模式一览 DFPlayer 的播放模式由DFPlayerMode枚举定义位于 DFPlayer/DFPlayer.h 文件中第 26~31 行模式常量行为说明是否默认DFPlayerModeOnlyOnce单曲只播放一次播完停止✅ 默认值DFPlayerModeSingleCycle单曲循环当前歌曲反复播放—DFPlayerModeOrderCycle顺序循环按列表顺序播放播完回到第一首—DFPlayerModeShuffleCycle随机循环随机抽取下一首—四种模式覆盖了绝大多数音乐 App 的播放需求无需自己实现任何队列逻辑。二、一行代码设置播放模式playMode是一个普通属性声明在 DFPlayer/DFPlayer.h 第 163 行在播放器初始化的任何时刻赋值即可立即生效[DFPlayer sharedPlayer].playMode DFPlayerModeSingleCycle; // 单曲循环官方 Demo 中就是这样设置的见 DFPlayerDemo/Src/DFPlayerViewController.m 第 191 行[DFPlayer sharedPlayer].playMode DFPlayerModeSingleCycle; 小贴士如果只想用顺序播放把它改为DFPlayerModeOrderCycle即可随机播放则是DFPlayerModeShuffleCycle。不同模式下播完一首会发生什么播放结束后的行为差异是区分这 4 种模式的关键核心逻辑在 DFPlayer/DFPlayer.m 第 691~722 行的df_next方法中单曲一次歌曲自然播完后自动暂停用户点下一首才切换单曲循环歌曲自然播完后自动重播当前歌曲顺序循环播完自动切下一首最后一首之后回到第一首随机循环播完随机抽取一首新歌曲也就是说你只需设置一次playMode播完自动做什么的逻辑全部由 DFPlayer 在底层处理好了。三、内置播放模式按钮点击即可三种模式互切 除了代码设置DFPlayer 还封装了一个播放模式切换按钮。它封装在 DFPlayer/DFPlayerUIManager.m 第 162~204 行的df_typeBtnWithFrame:方法中点击后按以下顺序循环切换并自动更新按钮图标单曲循环 → 顺序循环 → 随机循环 → 单曲循环 ……在 Demo 中一行代码即可创建该按钮第 239 行[mgr df_typeBtnWithFrame:typeRect singleImage:singleImage // 单曲循环图标 circleImage:circleImage // 顺序循环图标 shuffleImage:shuffleImage // 随机循环图标 superView:_bgView block:nil];⚠️注意一个容易踩的坑当播放模式为默认的DFPlayerModeOnlyOnce时df_typeBtnWithFrame:会直接返回nil按钮不会显示见 DFPlayer/DFPlayerUIManager.m 第 169~171 行。所以想使用模式切换按钮请先将playMode设置为三种循环模式中的任意一种。四、随机循环模式下的上一首行为随机播放时上一首不好定义DFPlayer 的处理方式很贴心在 DFPlayer/DFPlayer.m 第 724~734 行的df_last方法中随机模式下按上一首会回到刚才播放过的那首歌内部通过_playIndex1/_playIndex2记录播放历史只有当没有历史时才重新随机。这与主流音乐 App 的体验一致。五、常见问题快速解答 ❓Q1播放模式按钮点了没反应 / 根本不显示检查playMode是否为默认的DFPlayerModeOnlyOnce此模式下模式按钮不创建。先设置成任意循环模式再创建按钮即可。Q2播放中途可以切换播放模式吗可以。playMode随时赋值、即时生效例如用户点击模式按钮时UI 层只是重新给playMode赋值无需重建播放器。Q3模式按钮会切换到单曲一次吗不会。内置按钮只在单曲循环、顺序循环、随机循环三者之间切换单次播放适合作为初始默认状态由代码设置。Q4项目还在维护吗DFPlayer 目前已标注停止维护但其播放模式、缓存、歌词同步等功能完整稳定对于中小型音频需求依然好用。总结DFPlayer 用DFPlayerMode枚举 playMode属性 内置切换按钮三件套把单曲循环、顺序播放、随机播放这一整套播放逻辑封装得极其轻量一行代码设置模式一行代码创建切换按钮播完自动处理逻辑全部由底层完成。对新手来说这是实现 iOS 音频播放器播放控制的最快路径。【免费下载链接】DFPlayer(已不维护)简单灵活的iOS音频播放组件。基于AVPlayer支持本地和远程音频播放具有缓存、耳机线控、锁屏和控制中心信息展示、单曲顺序随机播放、倍速播放、歌词同步等音频播放器功能DFPlayer封装了缓冲条、进度条、播放暂停按钮、下一首按钮、上一首按钮、播放模式按钮、歌词同步的tableview等UI控件一行代码布局即可实现相应功能。项目地址: https://gitcode.com/gh_mirrors/df/DFPlayer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表