1.公式ドキュメント
NDKインストール時に含まれているもの。
パスは<NDK-PATH>/docs/opensles/
で、内容は下記の2つ
で、内容は下記の2つ
- OpenSL_ES_Specification_1.0.1.pdf
OpenSL ESの仕様書。これはAndroidに特化したものではない。
なので、ここにあるもの全てが使えるわけではないので、その辺りは下記index.htmlを確認する必要がある。
なので、ここにあるもの全てが使えるわけではないので、その辺りは下記index.htmlを確認する必要がある。
2.サンプル
- 上記OpenSL_ES_Specification_1.0.1.pdfの最後の方
再生や録音の基本的なサンプルがある。
→日本語訳
これはサンプルというよりコードを交えた解説。日本語の情報としては一番内容が濃いと思う。
PCMデータにデコードするコードが「動かないもの」として載ってる。
読めばわかるように、バッファを2つEnqueueしてやれば動く
こんな感じ↓
// enqueue a buffer and start playing CK_SL_VERIFY( (*g_playerBufferQueue)->Enqueue(g_playerBufferQueue, g_buf, k_bufSamples * sizeof(int16)) ); CK_SL_VERIFY( (*g_playerPlay)->SetPlayState(g_playerPlay, SL_PLAYSTATE_PLAYING) );
// enqueue a buffer and start playing CK_SL_VERIFY( (*g_playerBufferQueue)->Enqueue(g_playerBufferQueue, g_buf, k_bufSamples * sizeof(int16)) ); CK_SL_VERIFY( (*g_playerBufferQueue)->Enqueue(g_playerBufferQueue, g_buf, k_bufSamples * sizeof(int16)) ); CK_SL_VERIFY( (*g_playerPlay)->SetPlayState(g_playerPlay, SL_PLAYSTATE_PLAYING) );
必要に応じてバッファを変えてあげて下さい。