問題タブ [opensl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3120 参照

android - Android でサポートされている OpenSL ES 機能

Android は、NDK 経由でアクセスできる OpenSL es API 経由で 3D オーディオをサポートすることになっています。それは多かれ少なかれ機能し、作成されたプレーヤーと出力ミックスを介してサウンドを再生することができました。しかし、3D サウンドの再生に必須の 3D ロケーション インターフェイス (SL_IID_3DLOCATION 定数) を備えたリスナーを実現しようとすると、. しかし、定数を SL_BOOLEAN_TRUE に設定しようとすると、LogCat に渡される CreateListener メソッドの結果は 12 になります。12 は、OpenSL es 定数 SL_RESULT_FEATURE_UNSUPPORTED の値です。以下にコードの短い部分を示します。私が何か間違ったことをしたのか、それとも機能が本当にサポートされていないのか、つまり OpenSL es の実装が 3D オーディオをサポートしていないのか、誰でも確認できますか?

0 投票する
2 に答える
1415 参照

android - OpenSL ES オーディオ プレーヤーからの終了したバッファを解放する必要がありますか?

確認のためだけに。Android 用の OpenSL ES を介して作成されたオーディオ プレーヤーがバッファの再生を終了すると、そのバッファはガベージ コレクタによって自動的に解放されますか? または、バッファを自分で解放する必要がありますか?

後者の場合、私はいくつかの助けを借りることができます。しかし、今のところ、自分でやる必要があると言われるまで、コードを投稿しません...

0 投票する
5 に答える
34933 参照

android - Android 用 OpenSL ES のチュートリアル

Android 2.3 でネイティブ オーディオを実行するために利用できる OpenSL ES ライブラリの使用を検討しようとしましたが、利用可能なドキュメントはヘッダー ファイルと仕様の 600 ページの pdf だけのようです。

例、チュートリアル、または機能の簡単な概要はどこで探すべきですか?

0 投票する
2 に答える
1369 参照

android - Androidのネイティブコードでのオーディオキャプチャ/レンダリング

Androidプラットフォームでネイティブコードを使用してオーディオをキャプチャおよびレンダリングする方法に関する混乱を解消することを検討しています。私が聞いたのは、OpenSLと呼ばれるオーディオ用のAPIがあるということです。使用方法に関する推奨ガイドやチュートリアルはありますか?

また、OpenALラッパーなどのOpenSL用の優れたオーディオラッパーはありますか?私は他のプラットフォームでOpenALを使用してオーディオ部分を開発したので、コードを再利用するとよいでしょう。

OpenSLに制限はありますか?たとえば、Javaコードで実行する必要があるものはありますか?

OpenSLはOpenALとどのくらい異なりますか?

ありがとう!

0 投票する
2 に答える
6407 参照

audio - Windows、Mac、iOS 用のオーディオ ライブラリ? OpenAL/OpenSL

OpenGL を使用してデスクトップ/iOS ゲームを作成し、オーディオ ファイル (mp3 または wav) を再生したいと考えています。私はすでに CoreAudio と AudioQueues を使ってきましたが、今は Windows (そしておそらく Linux) でも動くものが必要です。

私はこれまで見てきました:

  • OpenAL
  • OpenSL

「playSound(file)」や「isPlaying(file)」などの本当に基本的な機能のみが必要です。3D サウンドやエフェクトなどは必要ありません... OpenAL と OpenSL はどちらも khronos からのものなので、実際には違いがわかりません (はい、それらは2つの異なるライブラリだと考えられています)。

最も単純なクロスプラットフォームのソリューションは何ですか? iPhone やデスクトップ PC で同様に動作するコードを書くことはできますか?

0 投票する
1 に答える
2413 参照

android - Android での OpenSL による効果音のミキシング

私は現在、OpenSL を介して Android で効果音のミキシングを実装しています。初期実装を行っていますが、いくつかの問題が発生しました。

私の実装は次のとおりです。

1) サウンド エフェクトごとに、OGG ファイルを参照する SLDataLocator_AndroidFD データ ソースを使用する複数の AudioPlayer オブジェクト (同時サウンドごとに 1 つ) を作成します。たとえば、立て続けに再生される銃の発砲音 (gun.ogg と呼びましょう) がある場合、同じ gun.ogg オーディオ ソースと同じ outputmix オブジェクトを参照するおよそ 5 つの AudioPlayer オブジェクトを使用します。

2) そのサウンド エフェクトを再生する必要がある場合、作成したすべての AudioPlayer オブジェクトを検索し、現在 SL_PLAYSTATE_PLAYING 状態にないオブジェクトを見つけて、それを使用してエフェクトを再生します。

3) クリップを再生する前に、SLPlayItf::SetPosition を使用してクリップの開始位置をシークします。

これまでのところ問題なく動作していますが、サウンドを立て続けに再生するとパチパチというノイズが発生します。Android NDK ニュースグループで、Android 上の OpenSL にはデータ ソースの切り替えに関する問題があることを読みました。誰かがこの問題に遭遇しましたか?

また、Android での OpenSL のサウンド ミキシング アプローチを見た、または思いついた人が他にいるかどうかも疑問に思っています。もしそうなら、あなたのアプローチは私のものとは異なりますか? パチパチ音について何かアドバイスはありますか?

インターネットで OpenSL のドキュメントとサンプル コードを探しましたが、ミキシングに関してはあまり情報がありません (既にわかっている読み込みのみ)。どんな助けでも大歓迎です。

0 投票する
1 に答える
823 参照

android-ndk - 出力ミックスオブジェクトのボリュームインターフェイスを作成できません

AndroidのOpenSLのボリュームインターフェイスに問題があります。次のようなボリュームインターフェイスを使用して出力ミックスオブジェクトを作成しようとすると、次のようになります。

resultSL_RESULT_FEATURE_UNSUPPORTEDボリュームインターフェイスが仕様で義務付けられているようにリストされている場合でも、戻ってきます。

1要求されたインターフェイスを無視するようにをに変更する0と、出力ミックスオブジェクトが作成されますが、しようとすると明らかに失敗しますGetInterface(outputObject,SL_IID_VOLUME,&volumeInterface)

ここに表示されるボリュームインターフェイスの唯一の言及は、を使用する場合のボリューム計算に関連していEnableStereoPositionます。

0 投票する
0 に答える
336 参照

android - バッファに埋まるデータサイズについて

プロジェクトで低レイテンシのオーディオが必要で、Android 2.3 は OpenSL ES をサポートしています。ドキュメントとサンプル コードを読み、Android シンプル バッファ キューを使用して再生と録音を行うことにしました。ここで、テストを実行するための簡単なアプリケーションを作成してみます。

しかし、録音についていくつか質問があります。記録中にレコーダ停止を設定した場合、最後のバッファがいっぱいになっていない場合に、最後のバッファにいっぱいになった正確なバイト数を知るにはどうすればよいですか?

バージョン 1.1 では、コールバック関数にはバッファとその埋められたデータに関するいくつかのパラメータがありますが、バージョン 1.0.1 にはそのようなパラメータはありません。

この情報を取得する方法はありますか?

どんな提案でも大歓迎です!

0 投票する
0 に答える
801 参照

android - エミュレーターで OpenSL ES を使用して記録する

オーディオの録音と再生に OpenSLES を使用するアプリを開発しています。この時点で、アプリは JNI サンプル ネイティブ オーディオ アプリに似ています。1 つの問題は、プログラムが記録しようとすると、実際のデバイスでは問題ないのに、エミュレータで次のエラーが発生することです。

そして、これは私がそのエラーを受けている行です。

もちろん、AVD にオーディオ レコードと再生を設定し、マニフェストで次のように指定しました。

上記のエラーを取り除くには、他に何をする必要がありますか?

0 投票する
1 に答える
1944 参照

android - PC 用 OpenSL チュートリアル ES (Android 以外)

私は、Android ビジネス全体に入ることなく、OpenSL ES の基本を学び始めたいと考えています。OpenAL の場合のように、OpenSL のセットアップ プロセスを説明するチュートリアルはありませんか?

私はUbuntuを使用しています。