我正在使用HTML5和Javascript制作游戏。我想拍一个用户选择的MP3文件,并分成几个第二个长块。是否可以在Javascript中执行此操作,如果是,如何执行此操作?
答案 0 :(得分:10)
如果您需要客户端解决方案,但不受Javascript约束,您可能需要尝试使用Flash。 Flex / Actionscript中有许多优秀的编辑解决方案。以下是我在快速谷歌之后遇到的一个教程:http://scriptplayground.com/tutorials/as/Play-Sound-Samples-From-One-File-Using-ActionScript-3/
但是,如果您已经开始使用Javascript,请尝试执行以下步骤:
看看这个小提琴:http://jsfiddle.net/andrewodri/PKPD6/。它使用HTML5音频元素播放声音,但有趣的是这个数据被编码为数据URI。无论我们在源头投掷什么编码数据,都可以播放。
阅读W3C File API specification,尤其是FileReader interface。至少在Chrome和Firefox支持这一点,尽管我不太确定它有多全面。你会注意到你能够read the binary data into a data URI,你可以1)操纵一个字符串,2)发送到音频元素的src属性。
这将是最困难的部分......您可以从熟悉MP3文件的结构开始;即。 understanding how big the ID3 tag is and how to identify it, how big frames are and where you can chop them off, and how the file is closed。这将帮助您提取相关信息,但也找出你可以开始砍伐的地方。我在底部放了一些参考文献。在Actionscript中为此创建了许多类似的代码,这可能是一个很好的参考。
如果您有足够的耐心,可以执行以下操作:
我最后会说,在Flash中执行此操作会更容易,甚至将其发送到服务器,如其他注释中所述。但如果您有充分理由在Javascript中完成所有操作,那么在大多数现代浏览器中这绝对是可能的。
其他参考文献: