問題タブ [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 投票する
0 に答える
223 参照

android - SoundPoolを使用してクリップを連続して再生する

プレーヤーが簡単な数学の問題を解いているAndroidタブレット用のゲームを作成しました。私はゲームにそれぞれの問題を声に出して読ませることに取り組んでいます。0〜9、20、30、40などのすべてのサウンドクリップを録音しています。これらのサウンドクリップをすべて「ミックスアンドマッチ」して、起こりうる問題を声に出して読むことができるはずです。これは私の現在のsayProblem()メソッドです:

これは、問題を正しく読み取るために時々機能しますが、問題を構成するために一緒になっている3つの異なるクリップの間に非常に長い遅延が発生する場合があります。それが正しく機能するとき、それは次のように出てきます:「1プラス3」、それが正しくないとき、それは次のように出てきます:

「1つ.............................プラス.................。 ......... 3 "ここで、ピリオドはさまざまな長さの長い休止を表します。

whileループを使用してsp.play()を呼び出し続けることは、3つのサウンドクリップを連続して再生するための正しい方法ではないと思いますが、それが私を近づけた唯一の方法です。

SoundPool(または他の何か)を使用して3つのクリップをより一貫して連続して再生するのを手伝ってくれる人はいますか?

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

android - タイプ SoundPool のメソッド load(Context, int, int) は適用できません。メソッド getSystemService(String) は未定義です

注: 私は初心者なので、これらのエラーの意味がよくわかりません。

これは私のクラスコードです:

そして、2 つのエラーが発生しています。最初のエラーは次のとおりです。

エラーには次のようThe method load(Context, int, int) in the type SoundPool is not applicable for the arguments (MySingleton, int, int) に表示され、2番目のエラーは次のとおりです。

そしてエラーは言うThe method getSystemService(String) is undefined for the type MySingleton

0 投票する
4 に答える
924 参照

soundpool - SoundPool がサウンドを切り詰めないようにする方法

サウンドボード アプリがあり、SoundPool を使用してサウンドの再生を制御しています。約 30 秒の長さのサウンドを追加しようとするまで、すべてがうまくいきました。そのサウンドのボタンをクリックすると、数秒間だけ再生されて停止します。SoundPool を使用してこれを防ぐ方法はありますか? これが私のコードです。ありがとう!

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

android - リソースIDへのURI

UriをResIDに変換する必要があります。これは可能ですか?SDカードに.mp3があり、ResIDのみを取得するSoundPoolに入れたいので必要です。注:( MediaPlayerを使用できません、サウンドプール機能が必要です)

助けてくれてありがとう

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

android - Androidは、アプリケーションでサウンドをロードして再生するための最速の方法です

1つのアクティビティで6つの異なるサウンドをロードし、ボタンをクリックするだけですべてのサウンドを再生する必要があるプロジェクトに取り組んでいます。サウンドファイルはそれほど大きくありませんが、問題はもっと大きくなる可能性があるということです。これは、単一のアクティビティでサウンドファイルをロードする最も速い方法です。テスト目的で、res / rawフォルダーを使用してサウンドファイルを保存し、2つの異なる方法でファイルを再生しようとしましたが、結果は満足できませんでした。 2つの異なるタイプのコード:

方法1:

方法2:

しかし、問題は両方の方法が遅いことです..私は音を再生するより速い方法を見つける必要があります..しかし今、私が音を再生するためにボタンをクリックしてからほぼ1秒後です。

サウンダをより速く再生する方法についてアドバイスをいただけますか?アプリケーションの起動時にそれらをキャッシュにロードするか、データベースまたは他の場所に保存する必要があります(実際のところ、データベースは良いオプションではないと思いますがいくつかの提案を聞きたいです)またはアセットフォルダからそれらをロードするかもしれませんが、それでも遅いと思います。

それで、何かアイデアや提案はありますか?前もって感謝します!

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

android - Androidの複数のMediaPlayerインスタンスが同期していますか?

複数のトラックを同時に再生し、他のトラックにできるだけ短いレイテンシで変更できるようにする必要があります。SoundPoolは実際のオーディオトラックであり、サンプルがそれほど多くないため、機能しないと思います。ある種のミキシングアプリケーションのように、再生するトラックと再生しないトラックを選択できるようにしようとしています。
これを行う方法についてのアイデア、提案/ヒントはありますか?

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

android - Androidサウンドプールのヒープサイズオーバーフロー

デバッグで実行すると、このエラーが何百回も発生します。プログラムには影響していないようですが、どうすれば解決できますか?

他の投稿に基づいてSoundPoolにさかのぼることができることを知っています

09-15 09:03:09.190: エラー/AudioCache(34): ヒープ サイズ オーバーフロー! 必要サイズ: 1052672、最大サイズ: 1048576

0 投票する
6 に答える
7244 参照

android - ゲームでSoundPoolを適切に使用するにはどうすればよいですか?

SoundPoolの使用中にパフォーマンスの問題が発生します。サウンドを再生するたびに、フレームレートが低下します。いくつかのログを追加しましたが、logcatで「再生」機能に8ミリ秒かかることがあります。

* .oggファイルを使用しており、SoundPoolの初期化はアプリの起動時に行われます。

サウンドを再生するには、次のコードを使用します(ゲームループ内)。

私の質問は次のとおりです。

  • ゲームループの外で、別のスレッドで「プレイ」と呼ぶ必要がありますか?
  • サービスを通じて「プレイ」と呼ぶべきですか?
  • 私は何か間違ったことをしていますか?

ありがとう!


アップデート:

別のスレッドでサウンドを再生し、サービスを介してサウンドを再生することをテストしましたが、ラグはまだ存在しています。

次に、次のテストを行いました。*1000ms間隔でサウンドを再生->ラグは常に発生します*200ms間隔でサウンドを再生->ラグは発生しません

そんなことがあるものか?!?!?これらのテストの後、何も再生されていないときはSoundPoolがリセットされ、再び再生されるときは初期化に時間がかかるようです...非常に奇妙です!

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

android - mp3またはwaveファイルを次々に混合または追加し、結果のファイルをAndroidのSDカードに保存する方法は?

/res/raw フォルダーにいくつかの mp3 ファイルがあります。私がやっていることは、ユーザーがボタンをクリックするたびにそれぞれのサウンドが再生され、すべてのボタンを押し終わった後、それらすべての mp3 ファイルをまとめて、そこから新しいオーディオ ファイルを作成したいということです。 SDカードに保存します。私はよくグーグルで検索し、有用なクラスを見つけましAudioTrackSoundPoolが、問題を解決できませんでした。

助けてください。

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

android - Android: ボタン クリック時のランダム サウンド FX

サウンドプールを使用して、ボタンのクリックでランダムなサウンド FX を再生しようとしています。これはエミュレーターでは機能しますが、私のデバイスでは機能しません。手がかりはありますか?