Answers
从音乐制作上来说,两首歌曲衔接的处理有很多种手法,在这儿说说最常用的 cross fade(i/o) ,也叫 交叉淡入淡出 。
它的原理很简单,两首歌各取开头/结尾的一段(比如 4s)分别做淡入和淡出操作,并前一首歌结束前 4s 开始播放后一首歌就可以了。
所以要做的无非就是写一个函数,预先设定一个偏移量(如上的 4s,或转换为 frames,取决于你用的 library 的接口规格),然后从
歌曲的总长 - 偏移量
的位置开始,以一个很小的时间单位(如 100ms)循环降低歌曲的音量,一直到 0 为止。同时对下一首歌(你应该有个播放列表的对吧)做反向操作。最后在当前歌曲播放到偏移量位置的时候开始播放下一首歌曲即可。
OpenVL
answered 10 years, 1 month ago