服务器上存储的示例歌曲

Sample song stored on server

我正在设计一个网站,允许用户在决定是否购买之前试听一首歌曲的 30 秒样本。 我计划将所有 mp3 存储在根文件夹下,这样就无法直接访问它们。

不过,我想弄清楚的是,是否有一种方法可以通过使用完整的 mp3 文件来播放 30 秒的歌曲样本,或者我是否必须已经剪切存储在服务器上的示例 mp3。 谢谢。

下面的代码应该是您要查找的内容:

HTML:

<audio src="song.mp3" id="song">

Javascript:

var song = document.getElementById('song');
song.play(); //Start playing sound
setTimeout(function(){song.pause(), 30000}; //Pause the song after 30,000 millisends(30 seconds);

var song = document.getElementById('song');
song.play(); //start playing sound
setTimeout(function(){song.src="";}, 30000); //Instead of pausing the song, you remove the source file of the song which basically stops the sound

第二个选项可能更可取,因为任何具有基本 HTML/JS 知识的人都可以轻松取消暂停音频文件并收听整首歌曲。但是,您最好的选择是 trim 服务器上的歌曲,因为这样可以节省宝贵的带宽。可以使用命令行音频编辑工具 sox(http://sox.sourceforge.net/) 使用以下语法轻松完成

sox <originalFile> <newFile> trim <startTime> <duration>

示例:

sox input.wav output.wav trim 0 00:35

我最近一直在生产站点上使用 sox,它非常有用! 大多数服务器端框架必须能够生成一个子进程,该子进程可以 运行 命令,例如这个。

希望这对您有所帮助:)

编辑:阅读评论后,我认为如果您正在使用 PHP 并希望在服务器端执行此操作,则链接解决方案将是最简单的解决方案。如果您想在客户端执行此操作或者您不使用 PHP,我的解决方案可能是可行的方法。