我正在使用 PHP 开发一个项目,用户可以从曲目库中选择一个曲目,从该曲目中选择几秒钟长的片段,然后将该片段用作下一页上的搜索参数。
客户希望显示轨道的波形(这些已经生成为 PNG 文件),并带有一个显示当前播放位置的“播放头”(应该很容易做到)。用户应该能够通过拖动竖线来选择开始和结束点,试听所选片段(通过按空格键或类似方法),然后单击“搜索”以提交 HTML 表单。表单中我真正需要的唯一参数是所选音频片段的开始和结束位置。
所以,这就是客户想要的,而我正处于头脑风暴阶段。到目前为止,我有一堆mp3文件和相应的波形图。在浏览器支持方面,可以指定浏览器必须是“...的最新版本”,但我想为所有大牌提供支持:Safari、Firefox、Opera、IE、Chrome .
您对我应该考虑的 JavaScript 库或解决方案有什么建议来帮助实现:嵌入音频文件、播放控制界面和片段选择界面。尽管可以为所有 mp3 生成相应的 OGG 文件(以帮助实现 HTML5),但如果可能的话,我不希望这样做,因为它会使事情复杂化。所以理想情况下,我想要一个提供跨浏览器支持的仅限 mp3 的解决方案。也许像 jPlayer 这样的东西是可能的?我当然熟悉 jQuery,所以使用它会是一个好处。
我可以使用任何现有的库来帮助我使用“片段选择”界面吗?在一个完全理想的世界中,这将是一个带有“scrub bar”的解决方案 - 即当您拖动开始和结束句柄时,“播放头”处的声音会立即预览。
非常感谢您的任何想法和建议!
编辑(更多信息):
我希望能够创建类似于此演示的内容: http ://www.happyworm.com/jquery/jplayer/latest/demo-07.htm除了用户可以选择“片段”的附加功能从轨道,使用起点和终点擦洗条,并可以通过按播放试听片段。所以,我想要的界面是这样的:
- 在页面加载时,曲目将开始缓冲,如果按下,播放按钮将从头开始播放
- 如果用户从轨道的最左边缘拖动一个拖拽条,播放头处的声音将被预览(就像我链接到的演示一样),并且在释放拖拽条时,播放将从那里继续到结尾轨道
- 如果用户从轨道的最右侧拖动另一个拖拽条,播放头处的声音将再次被预览。但是,随着栏被释放,播放应该跳回到 LEFT 拖拽栏,并从那里继续。(如果这太难实现了,我会对右手磨砂条感到满意,以免在被拖动时预览声音,而只是用作选择结束时的“标记”)。
- 两个擦洗条不能互相通过,所以左边总是选择的“开始”,右边是选择的“结束”。
- 一旦移动了条并进行了选择,播放应该无限期地循环选择的片段,直到按下“停止”。
- 在理想的世界中,我希望擦洗条“捕捉”到整秒的网格,以便片段开始、结束和长度值始终是整秒。如果做不到这一点,我稍后会在 JavaScript 中将数字四舍五入到最接近的整数。