代码之家  ›  专栏  ›  技术社区  ›  user3817799

存储在服务器上的示例歌曲

  •  3
  • user3817799  · 技术社区  · 9 年前

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

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

    1 回复  |  直到 9 年前
        1
  •  1
  •   Cameron    6 年前

    下面的代码应该是您需要的:

    HTML格式:

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

    Java脚本:

    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知识的人都可以轻松地打开音频文件并收听整首歌曲。然而,您最好的选择是在服务器上修剪歌曲,因为这样可以节省宝贵的带宽。使用命令行音频编辑工具sox可以轻松完成( http://sox.sourceforge.net/ )使用以下语法

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

    例子:

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

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

    希望这有帮助:)

    编辑:在阅读了评论之后,我认为如果您使用PHP并希望在服务器端执行,则链接解决方案将是最简单的解决方案。如果您想在客户端或不使用PHP,那么我的解决方案可能是最好的选择。