Php 如何在上传时将音频转换为“.WAV”格式

Php 如何在上传时将音频转换为“.WAV”格式,php,android,file-upload,wav,audio-recording,Php,Android,File Upload,Wav,Audio Recording,我正在开发一个应用程序,用户可以通过 在手机中使用任何android版本。通过使用内置的android语音记录器,他们可以 仅创建音频的.amr格式。但我需要一些.wav格式的音频 在服务器端使用电话 android中有没有办法在内置的android语音记录器中创建.wav格式 或者在服务器端,可以使用PHP将任何音频文件格式转换为.wav 任何帮助都将不胜感激 我建议在服务器端进行转换,以节省未压缩文件传输中的带宽 您可以使用来进行转换。我建议在服务器端进行转换,以节省未压缩文件传输中的带宽

我正在开发一个应用程序,用户可以通过

在手机中使用任何android版本。通过使用内置的android语音记录器,他们可以

仅创建音频的.amr格式。但我需要一些.wav格式的音频

在服务器端使用电话

android中有没有办法在内置的android语音记录器中创建.wav格式

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


任何帮助都将不胜感激

我建议在服务器端进行转换,以节省未压缩文件传输中的带宽


您可以使用来进行转换。

我建议在服务器端进行转换,以节省未压缩文件传输中的带宽


您可以使用来进行转换。

我认为PHP是最好的选择,您可以使用,并查看以下页面:


我认为PHP是最好的选择,您可以使用它,并查看以下页面:


您还可以在Android设备上使用FFMPEG。某些NDK配置可能需要复杂的设置,但JavaCV的使用大大简化了这一过程。

您也可以在Android设备上使用FFMPEG。某些NDK配置可能需要复杂的设置,但JavaCV的使用大大简化了这一过程。

我强烈建议您使用第三方在线格式转换API来完成这项工作,但如果您的服务器资源不受限制,您可以按照Brad的建议转到FFMPEG。
您可以使用类似的在线API或找到最适合您的API。

我强烈建议您使用第三方在线格式转换API来完成这项工作,但如果您的服务器资源不受限制,您可以按照Brad的建议转到FFMPEG。
您可以像在线API一样使用,或者找到与您最匹配的API。

最好的方法是使用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"); ?>

最好的方法是使用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"); ?>

与其设置一个服务器来转换AMR->WAV,在你的应用程序中进行录制不是更容易吗?也就是说,使用AudioRecord类来记录PCM数据,在其中添加WAV头,您就完成了。无论您选择执行什么操作,都不要在上载时执行。对转换进行排队。我推荐一个叫Gearman的完美服务来完成这项工作。与其设置一个服务器来转换AMR->WAV,在你的应用程序中进行录制不是更容易吗?也就是说,使用AudioRecord类来记录PCM数据,在其中添加WAV头,您就完成了。无论您选择执行什么操作,都不要在上载时执行。对转换进行排队。我建议使用名为Gearman的完美服务来完成这项工作。转换服务器端的另一个好处是,如果格式要求发生变化,则无需发布应用程序的新版本。转换服务器端的另一个好处是,如果格式要求发生变化,您不需要发布应用程序的新版本。