java - 编程实现歌曲串烧的两首歌曲之间的衔接怎么做才能自然一些?
PHP中文网
PHP中文网 2017-04-17 13:46:04
[Python讨论组]

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

PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
PHPz

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号