|
通常所理解的无缝播放(Gapless)即无间隙播放。
具体的体现是同一个播放队列,如果相邻的两个曲目采样率完全一样,要做到完全无间隙,用户完全感知不到切换曲目,一般一个专辑或一个乐章都是同采样率;如果两个曲目采样率不一样也要做到尽可能的缩短下一曲的Loading时间(毫秒级).
这个功能理论上实现并不难,但也没有现成的参考实现。在一个曲目快播放完成之前另外一个进程提前loading下一个曲目,并在播放完成时做到无间隙切换,对于网络流,要提前拉取数据,对于CD要在缓存了足够多当前曲目缓存的前提下提前变轨去预加载。难的是调优,这个必须有很有经验的解码工程师。
以前的CD都支持是因为伺服和解码机芯在设计的时候就考虑了这个功能。后面国产的方案商以性价比逐渐代替了这些机芯,但这些方案并没有考虑无缝播放的实现。所以。。。。
在国外,一个合格的数播,本地曲目和CD播放的Gapless 是必须的功能。否则用户一定不会认可。
艾索洛首次在安卓上实现了挂载普通光驱的CD读轨与校验机制(因为CD没有文件系统,安卓原生并不支持)。并在支持以上这两种无缝播放形式的基础上,又新增支持所有集成的网络音乐服务的无缝播放,以及DLNA,TIDAL Connect, LMS,PLEX client 等串流服务的Gapless.
其中DLNA 的无缝播放和客户端的下一曲功能并不是一个标准功能,需要厂家自行开发。 |
|