如何在Javascript中移动歌曲的子部分

How to move subsections of a song around in Javascript

本文关键字:移动 Javascript      更新时间:2023-09-26

我希望能够将在javascript中加载的HTML5音频中的歌曲拆分为歌曲的多个部分。然后我希望能够在浏览器上移动这些子部分(这意味着歌曲可能会失去顺序)并重新连接它们以形成新歌。

问题是我不知道如何操作这首歌来获得这首歌的一堆子部分并进一步操作这些子部分。据我所知,音频标签一次只播放一首歌,这首歌是不能被操纵的。

有办法做到这一点在javascript或在任何音频框架现在?

我已经研究了Web Audio Api,但它似乎更多地处理修改歌曲的继承质量(音高,声音等)

如果我理解正确的话,您是在寻找以各种顺序播放歌曲的部分。除了拆分文件,难道你不能直接操作歌曲的开始时间和结束时间吗?例如,如果你想在用户点击某个元素时从1:25播放到1:50,那么你可以轻松做到这一点(设置HTML5音频位置)

用户可以"移动歌曲的一部分",你只需调整文件的开始/结束时间:例如,首先播放从1:25到1:50,然后播放从0:45到1:05,等等。

如果你想使用一个库,HowlerJS可以使用从你的音频文件生成的精灵。

var sound = new Howl({
  urls: ['sounds.mp3', 'sounds.ogg'],
  sprite: {
    blast: [0, 2000],   //Starts at 0 second, lasts 2 seconds.
    laser: [3000, 700], //Starts at 3 seconds within the audio file and lasts 0.7 second
    winner: [5000, 9000] //Starts at 5 seconds, lasts 9 seconds (ends at 14)
  }
});
// shoot the laser!
sound.play('laser');

在你的例子中,你只需定义多个精灵,并使用这种方法一个接一个地播放它们。

你可以使用sssynthesizer .js来实时处理音乐。重新安排歌曲的部分,演奏乐器,改变乐器和歌曲属性等

参见此处使用

的示例