2012-10-08 29 views
1

如何在Windows Phone上錄製和AMR音頻片段?amr錄製在Windows Phone 7中

麥克風只提供PCM採樣,在寫入文件之前需要將其轉換爲AMR。

如何完成此轉換?如果有人有任何示例代碼,請分享。

回答

0

我不認爲有任何圖書館可用於WP7這樣做。存在的.Net庫或者使用本機代碼或第三方庫來執行轉換。

那麼你的選擇是要實現你自己的轉換庫(聽起來像一個不錯的開源項目!),或者設置一個使用存在庫執行轉換的Web服務。

要做第一個選擇,你可能會從像OpenCode-arm這樣的庫開始,並將代碼轉換爲C#。有時候這種轉換非常簡單,而其他時間可能會非常複雜。但大多數情況下,如果您有足夠的時間可以進行轉換。

更快的替代方法是設置一個Web服務,您可以在其中上傳返回AMR數據的PCM數據。在此服務中,您可以使用可用於.Net和其他平臺的現有庫之一。

你不說你需要AMR文件。如果你打算把它發送到某個地方,那麼也許你可以發送PCM數據並進行轉換服務器端?

編輯:

如果您選擇安裝一個Web服務,它如何能工作將建立承載轉換方法和實施執行轉換的公共方法的類的簡單的shell:

[ServiceContract] 
public class ConvertService 
{ 
    [OperationContract] 
    public byte[] ConvertPcmToAmr(byte[] pcmData) 
    { 
    // Do the conversion here and return the data 
    } 
} 
+0

我正在寫一個錄音機,爲此我想廣告支持AMR錄音。到目前爲止,我還沒有探索過web服務部分.Net。如果可能,你可以提供一些示例代碼嗎? – user1728060

+0

WCF很容易上手。主要的挑戰是設置託管代碼的服務器。我建議你閱讀WCF和可能的ServiceStack(一個很容易入門的替代框架),然後提出一個新問題。設置Web服務遠遠超出了您的問題範圍。 –