2011-07-20 62 views
39

我一直在試圖尋找到使用OpenSL ES庫,可用於做原生音頻與Android 2.3,但現在看來,頭文件和規範的600頁的PDF格式是隻有可用的文檔。教程OpenSL ES的Android

應該在哪裏我找實例,教程或功能的簡要概述?

+0

請googlesample https://github.com/googlesamples/android-ndk/tree/master/native-audio – animation123

回答

21

有自帶的NDK稱爲NativeAudio一個示例應用程序。它有幾乎任何你想要實現的例子:效果,流媒體,綜合等。如果你看看它的代碼,你會得到一個良好的開端。

16

你也可以查看維克托·拉扎里尼的音頻節目的博客,它有一個機器人部分:http://audioprograming.wordpress.com/category/android/

那裏你會找到工作的例子,他們開始使用openSL非常有用的我,可作爲一個基地用ndk開發音頻應用程序。

此外,不要忽略規格說明文件,它不會太長,第一部分不超過五十頁,併爲您提供所需的視角以瞭解所有部件的工作原理,其餘部分僅供參考。請注意,android openSL實現中的一些內容與規範不同:請參閱-ndk-directory/docs/opensles/index.html以獲取有關此更多信息。

+0

博客是私人.. – Timo

+1

@Timo,問題是超過五年自那時以來,很多事情都發生了變化(甚至有一種新的音頻API可以用來替代較新設備上的OpenSL!)。如果你還在尋找例子,看看這些谷歌的github回購:https://github.com/googlesamples/android-ndk/tree/master/audio-echo和https://github.com/googlesamples/android音頻高性能。我對OpenSL規範的建議仍然存在。信息的另一個來源是ndk谷歌組:https://groups.google.com/forum/#!forum/android-ndk,只需使用「音頻」關鍵字進行搜索即可。 – athos

10

相當搜索更有價值的信息後,我發現:

+0

看起來像我不小心投了這個答案:/將解除投票,只要我的投票解鎖 –

8

對於那些只想播放單個聲音文件或記錄短暫快照(在單個緩衝區中)的用戶來說,NDK項目就足夠了。 我看了一下「Android NDK初學者指南」,它實際上並不比示例NDK項目解釋得太多。

但實際上,對於這些應用,你可能用的Java API的一個更好。對他們使用OpenSL ES是一個矯枉過正的恕我直言。將會有更多的代碼需要編寫,而且沒有真正的收益。

OpenSL的優點是對於那些對音頻合成和處理有較低延遲感興趣的人來說(可用時),爲此,您可能需要流式傳輸音頻,而不是播放/記錄單個緩衝區。本書的章節和NDK的例子不會告訴你這些。音頻節目博客中的博客文章爲這些目的提供了更多信息。

+0

和那些博客文章是什麼?你的答案真的是一個答案嗎?它看起來像一個評論給我.. – aProgrammer

+0

我相信他指的是這個:http://audioprograming.wordpress.com/,實際上被稱爲「音頻編程博客」 –

0

一個Android上的部分維克托·拉扎里尼的音頻節目的博客確實是一個良好的開端。 http://audioprograming.wordpress.com/category/android/

而且有從到位桶git倉庫直接下載示例代碼這個博客,這是最受歡迎的一部分。

構建和運行非常簡單。對於我來說,我需要這些步驟,構建和運行這個例子:

  1. 安裝痛飲:swig-3.0.2。安裝3步:

    $ configure $ make $ sudo make install。

  2. 編輯build.sh以反映NDK的位置。並在頂層目錄下運行build.sh腳本。
  3. 通過生成的build.xml:

    $ Android的更新項目--name opensl-ES-audiotest --target --path 1 ./

  4. 螞蟻構建:$螞蟻調試
  5. 然後,您可以將它安裝到您的設備進行測試:

    $ ADB安裝斌/ opensl-ES-audiotest-debug.apk