2012-05-21 96 views
0

我正在開發一個非常健全,沉重的windows phone應用程序,並且這些聲音需要同時播放。這意味着我需要使用PCM WAV文件來創建SoundEffect類。如何減少WAV文件的下載和上傳時間?

這些文件的下載時間過長,嘗試使用GZIP並沒有壓縮太多。

還有什麼其他方式來加速這些文件的下載時間。我曾嘗試爲Windows Phone找到一個MP3到WAV的轉換類,但沒有太多的運氣(所有東西似乎都只運行在服務器端)

我對任何可能的解決方案開放,只要我可以使用SoundEffect Windows Phone設備上的類(或類似)與我已下載的文件。我真的不在乎它是如何在電話和服務器端進行壓縮或解壓的,並且我可以在流程結束時使用SoundEffect類中的文件。

謝謝。

雖然我很想寫我自己的解碼器,但我並沒有真正被賦予空間或時間去做。 (也不會我甚至知道從哪裏開始)

+0

你看過「MediaPlayer」嗎?它支持多種音頻格式。 http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.media.mediaplayer – Polynomial

+0

@Polynomial是的,我有。但是,我需要在彼此之上播放多個文件(同時播放),MediaPlayer和MediaElement不允許播放。 – Bob

+0

有趣。您是否考慮過降低WAV文件的質量?您可以使用22050Hz而不是44100Hz採樣將文件大小減半,手機揚聲器的質量差異可以忽略不計。 – Polynomial

回答

1

我終於解決了這個問題。我所做的是我使用Ogg vorbisOggSound class,它將ogg轉換爲動態音效。這不完美,但有一些修補和包裝,我能夠得到它的一切工作。

+0

多數民衆贊成酷..我去其他方式使用WMA與背景音頻 –

+0

你有任何鏈接,你如何能夠做到這一點? –

+0

我用這個問題的信息:http://stackoverflow.com/questions/4820361/vorbis-decoder-for-windows-phone-7 – Bob

2

有一個在這個URL純C#MP3解碼器:http://robburke.net/mle/mp3sharp/

你可以用它來MP3的手動解碼成波浪PCM音頻,然後創建一個新的SoundEffect中的實例原始音頻數據。

這是基於我的一對AppHub去年

+0

謝謝,你是否得到了它的工作?我剛剛下載了一些,並有一些編譯錯誤,一旦我修復了編譯錯誤,我意識到我不知道如何實際進行轉換,或者獲取數據,如持續時間或其他任何東西,也可以用它來轉換WAV到mp3上傳? – Bob

+1

這是一個人試圖找到解決方法,並用它作爲解決方案的解決方案。從我讀的內容來看,它就像一個流,所以你可以嘗試IsolatedStorageFile.OpenFile()來創建dest文件並獲取輸出流,然後在Mp3Stream上使用CopyTo(就像展開zip文件一樣) –

+0

好的謝謝,現在看看。你有一個AppHub對話的鏈接? – Bob