2013-02-21 36 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或找到一個匹配你最好的。