問題タブ [soundpool]

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 投票する
3 に答える
23505 参照

android - Android SoundPoolはどれくらい悪いですか?使用する代替手段は何ですか?

私は、AndroidSoundPoolを、汎用ゲーム開発ライブラリに効果音を実装するメカニズムとして見ていました。それは理想的なようでした。

しかし、少し調べてみると、にはあらゆる 種類 バグがあることがわかっていSoundPoolます。のバグはSoundPoolまだ関連していますか?

私はライブラリを開発しているので、バグはライブラリのバグにSoundPoolなり、ユーザーをそこから隔離したいと思います。

だから私の質問は基本的に:オーディオにどのAPIを使うべきですか?

AudioTrack自分のミキサーを使用して作成することは問題外ではありません。しかし、明らかにそれを避けることが望ましいでしょう。そして、私にデコードを提供するAPIはありますか?

適度な数の効果音(少なくとも16)を同時に再生でき、さらにオープンである必要があります。サウンドは低レイテンシーで再生を開始する必要があります。WAVファイルをサポートする必要があります(MP3 / Oggは重要ではありません)。効果音は、シームレスなループと動的な個別の音量調整をサポートする必要があります。Androidアプリのライフサイクルを適切にサポートする必要があります。

どこかに1MBの制限があると聞きましたSoundPool。これは、個々のサウンドエフェクトごとにおそらく許容できますが、すべてのバッファ/サウンドに対しては許容できません。誰かが制限が何であるかを正確に教えてもらえますか?

最後に、CPU負荷が低く、圧縮形式でバックグラウンドミュージックも再生できる必要があります。MediaPlayerこれには理想的だと思います。別のAPIと並行して使用できますか?

私は何人かの人々がのMediaPlayerために記入するために使用していることを知っていSoundPoolます。しかし、それは私が必要とする機能をサポートしていますか?

私が見逃した他のオーディオAPIはありますか?

0 投票する
3 に答える
2467 参照

android - リリースビルドで Android Soundpool.play() が機能しない

サウンドを録音して再生するアプリを構築しようとしています。録音部分は完全に機能しますが、サウンドを再生しようとしても何もしません。デバッガーで実行し、オーディオを再生する手順を実行すると、機能します。すべてのブレークポイントを削除してプログラムをデバッグで実行すると、実行されません。

この問題はおそらく、バックグラウンドで実行され、オーディオを実行しようとする前に完了していないことが原因であると考えられますが、完全にはわかりません。

どんな助けでも大歓迎です。

ソースコードの関連部分を次に示します。

サウンドプールの作成

サウンドプールからの再生

Audiorecorder.java 出力ファイルは .mp4

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

android - AndroidのsoundPoolは拡張機能をサポートしていますか?

このコードをonCreate()メソッドで記述しましたが、何も再生されませんでした。

質問1:私のコードに問題はありますか?私はそれを間違ってしましたか?

いいえの場合、

質問2:私の音は.amrファイルです。それはによってサポートされていSoundPoolますか?サポートされているタイプは何ですか?

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

android - さまざまなAPIでのAndroidテスト、クラスが見つかりません

さまざまなAPIと画面解像度でアプリをテストしていますが、Android2.1を使用して問題が発生しました。アプリを実行するときはいつでも、メインメニューは、メインゲームアクティビティを除いて、アプリ用に作成した他のすべてのアクティビティと一緒に機能します。以下に示す最初のエラーが原因だと思います。Android2.1はSoundPoolのOnLoadCompleteListenerをサポートしていないと思います。私はこれに代わるものを見つけるのに苦労しているので、2.2以降と2.1以下のAndroidバージョンの両方で動作します。2.2以降でSoundPoolを使用する場合は、OnLoadCompleteListenerメソッドが必要であると確信しています。私はそれなしでは機能しなかったことを覚えています。誰か提案がありますか?

ありがとう

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

android - SoundPool を使用した OGG オーディオの Android Static

OGG オーディオ ファイルを SoundPool にロードする必要があるアプリを作成していますが、Android 2.1 (onLoadingCompleteSetListener をサポートしていません) と互換性がある必要があります。このため、再生前にサウンド ファイルがロードされているかどうかを確認する方法はありません。

これを回避するために、Thread.sleep(1000); を配置しました。オーディオファイルをロードした直後に、ロードする時間を与えます。しかし、今では onLoadingCompleteSetListener メソッドがないと、私のオーディオ ファイルは非常に静的で不明瞭です。恐ろしいですね。しかし、「サンプル # の準備ができていません!」というメッセージが表示されません。LogCat で警告するので、Thread.sleep(1000); だと思います。はその仕事をしています。

しかし、Thread.sleep(1000); はありません。読み込みプロセスも停止しますか? だから実際にはロードする時間を与えていないので、それが静的な理由ですか? 私はこれを理解することはできません.私は私のオーディオをより明確にする必要があります. どんな提案でも役に立ちます。

ありがとう!

0 投票する
3 に答える
5758 参照

android - Android SoundPool.stop が機能しないようです

クラス MySoundPool を作成しました (このクラスを sigelton として使用していますが、他のすべてが機能するため、これは関係ないと思います)。私は、HashMap である SoundPool を初期化し、AudioManager のコンテキストを取得しています。その後、2 つのサウンドをロードしています。MySoundpool はメソッド MySoundPool.playSound(int index, float rate) によって使用されます。 playSound はレートを 0.5 <= rate >= 2.0 にクリップし、ステートメントを実行します。

ここまでは順調ですね。すべて正常に動作します。いいえ、以前のサウンドがまだ再生されている間に playSound が呼び出されることがあります。新しいサウンドを再生する前にそれを停止したいと考えています。私が試した上記のコードスニペットの前に

成功しませんでした。音は最後まで再生され続けます。コメントをお待ちしております

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

android - MP3 を Android のサウンド プールにロードする

いくつかの MP3 をサウンド プールにロードしたいのですが、これらの MP3 はアクティビティ 3 でのみ使用します。アクティビティ 1 で MP3 をロードすることは可能ですか?

それとも、これはそれを使用するアクティビティに限定されていますか?

ドキュメントで答えが見つかりません。

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

inner-classes - Androidの2つのonCreate()メソッド?

私は別の例に取り組んでいます (ここで見つかりましたMP3 を Android のサウンド プールにロードする)。しかし、何らかの理由で2つのonCreate()メソッドになってしまい、1つを削除するとエラーが発生します。

MP3 をサウンドプールに一度ロードしてから、他のアクティビティでそれらを呼び出そうとしています。

私のコード:

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

android - Android、最初のアクティビティで mp3 をロードし、さらに下のアクティビティでアクセスします

アクティビティ 1 で MP3 ファイルをサウンドプールにロードし、アクティビティ 5 でさらに下にアクセスする方法はありますか?

私はこれを試してみましたが、成功しませんでした。

もちろん、これはロード時間を短縮し、同じファイルを何度も何度もロードせずにどこでも使用するためです。

ありがとう!ライアン