ihoudf / DFPlayer

简单灵活的iOS音频播放组件。基于AVPlayer,支持本地和远程音频播放,具有缓存、耳机线控、锁屏和控制中心信息展示、单曲顺序随机播放、倍速播放、歌词同步等音频播放器功能,DFPlayer封装了缓冲条、进度条、播放暂停按钮、下一首按钮、上一首按钮、播放模式按钮、歌词同步的tableview等UI控件,一行代码布局即可实现相应功能。
MIT License
586 stars 114 forks source link

不支持边下边播的策略,我看2.0.1有相关代码,需要缓冲好多才播放 #22

Open qianlifei opened 4 years ago

qianlifei commented 4 years ago

有相关代码,但是所有音频都不支持边下边播策略

ihoudf commented 4 years ago

支持。确认是最新的sdk。或者录屏发到这里。

qianlifei commented 4 years ago

支持。确认是最新的sdk。或者录屏发到这里。

好的,我弄一下哈

qianlifei commented 4 years ago

是这样的第一次从头播放的时候是边下边播,一旦拖动进度条到某个位置,就必须从开头全部缓冲下载好到拖动的位置才能播放。也就是边下边播只对第一次从头播放有效,拖动进度条后,下载片段没有优先从拖动位置分片下载了

qianlifei commented 4 years ago

我看代码也是这样,没对拖动位置进行立马的分片下载,而是等待第一次从开头缓冲直到缓冲到拖动位置

qianlifei commented 4 years ago

你的demo里面拖动进度条,seek后 - (BOOL)resourceLoader:(AVAssetResourceLoader )resourceLoader shouldWaitForLoadingOfRequestedResource:(AVAssetResourceLoadingRequest )loadingRequest 此方法都不会调,那肯定是没法分片下载了

JazzHunter commented 4 years ago

我也下载了2.0.1的最新代码。确实如楼上所说,拖动后,只有在缓冲到对应位置时才可以播放。不知道是哪里有问题么……?

qianlifei commented 4 years ago

我也下载了2.0.1的最新代码。确实如楼上所说,拖动后,只有在缓冲到对应位置时才可以播放。不知道是哪里有问题么……?

看了代码是项目压根没支持这个功能,作者所说的边下边播只是初次请求URL,这是最基本的一种支持,后续其实核心复杂的seek没做支持边下边播,bug挺多的

JazzHunter commented 4 years ago

我也下载了2.0.1的最新代码。确实如楼上所说,拖动后,只有在缓冲到对应位置时才可以播放。不知道是哪里有问题么……?

看了代码是项目压根没支持这个功能,作者所说的边下边播只是初次请求URL,这是最基本的一种支持,后续其实核心复杂的seek没做支持边下边播,bug挺多的

作者其实也付出挺多心血的..我看了作者的源码,其实代码质量挺好的。虽然经过断点,确实是没有走seek那个边下边播的函数。不知道后面会不会有更新