编程实现歌曲串烧的两首歌曲之间的衔接怎么做才能自然一些?


如题,想要在两首曲子衔接的时候处理的平滑自然一点,怎么处理比较好?

python java pygame 多媒体 ffmpeg

黑月吃掉你 9 years, 6 months ago

从音乐制作上来说,两首歌曲衔接的处理有很多种手法,在这儿说说最常用的 cross fade(i/o) ,也叫 交叉淡入淡出

它的原理很简单,两首歌各取开头/结尾的一段(比如 4s)分别做淡入和淡出操作,并前一首歌结束前 4s 开始播放后一首歌就可以了。

所以要做的无非就是写一个函数,预先设定一个偏移量(如上的 4s,或转换为 frames,取决于你用的 library 的接口规格),然后从 歌曲的总长 - 偏移量 的位置开始,以一个很小的时间单位(如 100ms)循环降低歌曲的音量,一直到 0 为止。同时对下一首歌(你应该有个播放列表的对吧)做反向操作。最后在当前歌曲播放到偏移量位置的时候开始播放下一首歌曲即可。

OpenVL answered 9 years, 6 months ago

Your Answer