問題タブ [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.
android - バイト配列に格納された mp3 データをデコードすることは可能ですか?
バッファに保存された mp3 データをデコードすることはできますか?
API バージョン 14 以降でバッファにデコードできることはわかっています。しかし、デコーダへの入力として使用する SimpleBufferQueue を作成できませんでした。
これが現在のコードです。最終的なオーディオ出力を供給するために別の場所で動作する simplebufferqueue を取得でき、バイト配列の Wavs を問題なく再生できるので、opensl/es、ファイル、タブレットなどに問題がないことがわかっています。
皆さんありがとう
opengl - OpenGL PBO が nVidia グラフィックス カードで動作しない
openGL を使用して RGB フレームをレンダリングしようとしています。CPU にメモリが割り当てられると、コードは正常に動作します。ただし、Pixel Buffer Objects の概念を使用して GPU にメモリを割り当てると、フレームのレンダリング中に問題が発生します。
問題は、表示ウィンドウが完全に白いことです。同じコードを他のグラフィックス カードで実行すると、コードは正常に動作します。ただし、nVidia グラフィックス カードを搭載したシステムで実行すると、この白い画面の問題に直面します。
以下は私のコードです:
がアドレスを返すかどうかをデバッグして確認しましglMapBufferARB
た。有効なアドレスが返されます。つまり、BadPtr
問題はありません。3 つの異なるモデルの nVidia グラフィックス カードを搭載した 3 つのシステムで確認しましたが、出力は同じで、白い画面が表示されます。
ただし、他のグラフィックカードを搭載したシステムでもコードを試してみましたが、コードは機能します。なお、OpenGL版では問題ありません。
上記のコードを機能させるための変更または何かを提案してください。
android-ndk - (無効) 結果は何ですか。Android OpenSLの例で意味しますか?
OpenSL ES の Android 実装では、次のサンプル コードは android-ndk /samples/native-audio/jni/native-audio-jni.c にあります。
は、定義により 32 ビットの符号なし整数型であるSLResult
typeであると定義されています。SLuint32
私の質問は次のとおりです。ラインは何をし(void)result;
ますか? これは何の役にも立たず、コンパイラはこれを最適化できると思いました。しかし、この例でも似たような行があちこちに出てきて、結局何か意味があるのだろうかと疑問に思っています。
android-ndk - PC用openSL ESエミュレーター
Android NDKでopenSL ESが動作しています。私の openSL ES コードを PC 上でエミュレートする方法はありますか? エミュレーションが不可能な場合の最良の代替案について誰かが提案できますか?
android - opensles では、同時に再生したい mp3 ごとに個別のオーディオ プレーヤーが必要ですか?
出力ミックスをプレーヤー間で共有する方法を見てきましたが、複数のプレーヤーを使用せずに複数の mp3 ファイルを同時に再生する方法を知りたいです。
明らかに、サードパーティのライブラリ (ffmpeg など) を使用して mp3 をデコードし、バッファ ストリームを自分でミックスしてプレーヤーに渡すことはできますが、これは私のニーズに対しては過剰です。opensles でのデコードには FD/URI->BufferQueue プレーヤー オブジェクトが必要なようで、プレーヤーの数は変更されません。
私が見逃しているテクニックはありますか?唯一の制限は、ソリューションで c++ と opensles を使用する必要があることです。
android - Jelly Bean 4.3 の openSL ES は音声ルートの切り替えをサポートしていますか?
Android 4.3 の openSL ES API を介して、利用可能なオーディオ エンドポイント (イヤホン、スピーカーフォン、有線ヘッドセット、Bluetooth ヘッドセット) を取得することは可能ですか?
それとも、すべて Java レベルで行われますか?
現在の状況では、openSL ES オーディオ ドライバーを実装しています。ドライバーは、既定のマイクからマイク パケットを受信し、スピーカー パケットを既定のスピーカー エンドポイントに配信するだけです。
可能であれば、コードに追加の関数をいくつか作成したいと考えています。1 つはエンドポイントについて照会し、もう 1 つはエンドポイントを設定します。
android - OpenSL ES デコード 24 ビット FLAC
Android で OpenSL ES を使用して、24 ビット サンプル形式の FLAC ファイルをデコードしようとしています。もともと、私はこのようなセットアップのSLDataFormat_PCM
ために私のものを持っていました。SLDataSink
これは、基本的にすべてのデータ形式でうまく機能します。幸いなことに、samplesPerSec
は尊重されていません (リサンプリングはしたくありません)。
ここで、24 ビット サンプルを含む FLAC ファイルの完全なビット深度をサポートしたいと考えています。この形式を使用すると、ファイルを読み込んでANDROID_KEY_PCMFORMAT_BITSPERSAMPLE
情報を確認すると 16 であるため、明らかにビット深度変換が実行されます。
bitsPerSample = SL_PCMSAMPLEFORMAT_FIXED_24;
orを入れるSL_PCMSAMPLEFORMAT_FIXED_32
と、OpenSL ES はそれを拒否します
これがどのように機能するのか考えていますか? Android は現在 16 ビット int のみに制限されていますか? 32 ビット浮動小数点も受け入れますが、それもうまくいかないと思います。
android - メモリからopenSLを使用してMP3ファイルのAndroid NDKを再生する
FileWrap を使用してデータがパックされている Android アプリがあります。問題は、mp3データをandroidファイルにラップして、そのメモリから再生したいということです。MP3 をアセットまたはファイル システム ファイルとして再生する方法を示す NDK の nativeaudio の例を確認しましたが、メモリに埋め込まれた MP3 を再生する方法は示されていません。
助けてください。ありがとう。