2009-12-30 85 views
4

嘿,我想改變一個android應用程序中的音頻文件的音調。Android上的SoundTouch?

我在網上找到了一個開源的「SoundTouch」(http://www.surina.net/soundtouch),你覺得我可以在android應用中使用這個庫嗎?

我一直在谷歌搜索「SoundTouch在Java」中找到了這個數據(http://www.aplu.ch/classdoc/jaw/ch/aplu/jaw/SoundTouch.html)。

可能這個庫我可以使用或任何其他庫或過程的任何想法,我可以用它來改變音頻文件的音高在android上?我也研究過一個android不支持的Java Sound API。 :/

感謝 亞當

回答

4

你有沒有想過只是改變採樣率是多少?如果您將原始音頻樣本加載到內存中並使用Android的AudioTrack類進行播放,則可以指定各種可能的採樣率,Android會爲您重新採樣。這會改變音高和速度,就像以錯誤的速度播放唱片一樣。如果您絕對需要在不影響節奏的情況下改變音高,則需要SoundTouch或類似的東西。

無論如何,這絕對是可能的,但它將需要相當數量的工作。

您需要使用Android NDK(本機開發工具包)來編譯SoundTouch。你發現的Java包裝可能會有所幫助,但最終你需要用NDK弄髒你的手。

您還需要編寫自己的代碼從磁盤讀取音頻文件,然後通過SoundTouch將其緩存,然後通過AudioTrack類進行緩存。 MediaPlayer在這裏不會幫你。

最後,請注意,在發佈您的應用時,您需要遵守LGPL的條款。

+1

喜你發現任何toturial如何使用聲音觸摸庫在Android應用程序,我需要播放時改變歌曲的bmp,如果你有什麼請幫助我。謝謝 – milind 2012-05-13 18:10:52

+0

@Adam嗨...你有沒有編譯安卓成功的soundtouch?如果是,那麼請指導我在我的項目中這樣做。我想改變音頻文件的速度。由於我是新來的android我不知道如何編寫android.mk文件和包裝類。你能幫我嗎。 Thanx Adam – Harsh 2012-08-31 08:44:03

+0

如果你仍然在尋找Android上的SoundTouch,我正在研究封裝 - https://github.com/svenoaks/SoundTouch-Android - 目前在16位樣本上工作良好。 – 2014-01-17 00:14:36

4

https://github.com/nonameentername/soundtouch-android

請按照上面的鏈接,只是建立與NDK。 Soundtouch的來源有誤,請下載並更換。 建立在Linux環境上。 如有任何疑問,請聯繫我。

如果你想改變聲音的音高,您可以使用的OpenAL

http://pielot.org/2011/11/10/openal4android-2/

+0

@sachinNadgouda ...我們可以在音高轉換後保存文件嗎? – 2012-12-03 04:55:29

+1

在soundtouch是的,在openal我還沒有想出保存文件。 – sachinNadgouda 2012-12-05 06:22:25

+0

我想在OpenAL中提供任何線索如何做到這一點?我還沒有能夠爲Android做Sound Touch的NDK版本。 – 2012-12-06 06:40:49