2013-02-21 37 views
1

我开发一个应用程序,其中用户可通过如何将音频上载

使用移动任何Android版本上传音频文件到服务器“.WAV”格式转换。通过使用内置的Android录音机,他们可以

只创建.amr音频的格式。但我需要在.wav格式的音频

在服务器端使用电话。

有android的任何方式来创建内置的Android录音机

,或者在服务器端.wav格式是可以使用PHP转换任何音频文件格式.wav

任何帮助将是感谢。

+1

而不是设置一个转换AMR-> WAV的服务器,在您的应用程序中进行录制不是更容易吗?即使用AudioRecord类来记录PCM数据,添加一个WAV标题,然后就完成了。 – Michael 2013-02-21 06:41:40

+0

无论你选择做什么工作,都不要“上传”。排队转换。我建议为这项工作称为Gearman的完美服务。 – 2013-02-27 17:55:26

回答

2

最好的方法是使用FFMPEG作为php扩展,或者你可以直接运行ffmpeg进行转换。使用php的简单方法是:

<?php exec(ffmpeg -i audio.amr testwav.wav) ?> 

但是您可能会遇到一些困难。所以你应该添加一些参数。您可以使用“-ar”设置音频采样率(以Hz为单位),“-ab”设置音频比特率(以位/秒为单位)等。以下是样本:

<?php exec("ffmpeg -i audio.amr -ar 22050 -ab 32 -map_meta_data audio.wav:audio.amr audio.wav"); ?> 
3

我建议在服务器端进行转换以保存从未压缩文件传输的带宽。

您可以使用FFMPEG为您进行转换。

+0

转换服务器端的另一个好处是,如果您的格式需求发生变化,您不需要发布应用程序的新版本。 – twaddington 2013-02-25 23:58:35

0

你也可以在一个Android使用FFMPEG设备。这可能是一个棘手的设置(需要一些NDK配置),但这已被JavaCV(可用here)大大简化。

0

我强烈建议您使用第三方在线格式转换API来完成这项工作,但如果您的服务器没有资源限制,您可以根据Brad的建议去FFMPEG
你可以使用在线API,如online-convert或找到一个匹配你最好的。