2

是否可以使用 Javascript 或 jQuery 将 mp3、wav 等转换为 m4r 格式?

4

3 回答 3

5

假设您有一个可以更改文件格式的库。

我们还假设您只需要应用程序在当前浏览器上运行,FileAPI这样您就可以访问上传的文件(如果没有或除非您使用或或等效技术,FileReference您将无法访问它们)。FileAPIFileReferenceFlashJava Applets

您将无法将输出文件回给用户,因为不允许 JavaScript 访问本地文件系统。

您唯一的解决方案是将转换后的文件发送到服务器,然后服务器使用强制下载指令将其发送回您,以便提示用户下载结果。

现在回到是否有一个可以转换的库(甚至是原生 JavaScript)......我还没有听说过。构建一个并非不可能,但它是不切实际的,并且不会运行得很快。

编辑:

让我们不要忘记Node.js

它是一个使用 Google Chrome 的V8 JavaScript 解释器/编译器的后端服务器。它运行 JavaScript 作为后端脚本引擎。

如果您使用文件系统、数据库和一切(或任何其他后端系统)并且仍在使用 JavaScript,则您可以访问它。您也可以使用库。要么是用 JavaScript 编写的,要么是用其他语言编写的库,这些库已经链接到 Node.js 的接口。

编辑2:

有一个完全用 JavaScript 编写的 PC 模拟器。如果您愿意,它会运行二进制可执行文件。它被称为JSLinux

如果您感觉特别吵闹,您可以获取ffmpeg二进制可执行文件(使用静态链接编译)。并将其作为 uuencoded 字符串嵌入到您的应用程序代码中,然后使用 JSLinux 执行命令并获取结果。

于 2012-06-27T13:57:23.687 回答
1

实际上,可以使用最新的 js 技术在客户端上执行此操作。一个网络工作者线程可以在后台完成工作。至少在 Firefox 和 Chrome 中,还可以使用新的W3C 文件 API读取(“在内存中上传”)和写入(“从内存中下载”)文件,请参见此处

我设法使用谷歌的 GWT通过拖放从客户端和在客户端内读取文件,这最终是纯 JavaScript,因此它必须也可以“本地”执行。

除此之外,会话算法当然必须在 javascript web worker 中实现以避免阻塞 gui。这应该是最难的部分,但并非不可能。

于 2012-06-27T14:08:56.680 回答
0

您需要一个后端来执行此操作。您可能想查看FFmpegPHPExtension

于 2012-06-27T13:54:28.717 回答