問題タブ [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.
android - android.media.SoundPool はメモリ リークを引き起こしますか?
これらのコードがAndroid 2.1でメモリリークを引き起こす可能性があることがわかりました
実行のたびに、MAT プラグインは、「android:unnamed_thread」の 2 つの String オブジェクトがプロセスのヒープに追加されることを通知します。それは問題ですか?
java - サウンドプールでサウンドループを一時停止/停止するCupcake(API3)フレンドリーな方法は? 何か案は?
簡単なメモ: SoundPool クラスを使用しています
http://developer.android.com/reference/android/media/SoundPool.html
ここにあるのは、押している間ループ サウンドを再生する単純なボタンです。それはうまくいきます。ただし、sounds.autoPause();
API 8まで導入されなかったので、カップケーキと互換性のあるものが本当に必要です(API 3)。API 3のものでフィルタリングされた開発リファレンスサイトを調べていたところ、一時停止していたので、試してみようと思いましsounds.pause(sound);
たが、そうではありません手を離しても音を止めないでください。(使い方が間違っているだけでしょうか?) カップケーキに優しい方法でこの音を止める方法を知っている人はいますか? ありがとう!
編集:それもsounds.stop(sound);
うまくいきませんでした。
コード:
私のonCreate:
次に、ここに私のタッチイベントがあります
なぜsounds.stop(sound);
機能しないように見えるのか理解できませんが、それは私が読んだ記事で推奨されていることです
sounds.stop(sound);
1回使用すると、その後は離しても止まらないことに注意してください。しかし、最初のプレスとリリースは意図したとおりに機能します。
今、andoirdサイトでsoundIDではなくstreamIDと表示されていることは知っていますが、streamIDを取得する方法がわかりません
android - SoundPool のサウンドが変わらない
サウンドプール オブジェクトといくつかのサウンドがありますが、一度作成すると、ループ数、音量、停止など、サウンドの再生を変更できません。
宣言コード:
サウンド割り当てコード:
開始/停止コード:
これらの関数が呼び出されていることは知っていますが、とにかくそれを変更するものは何もありません。setLoop、setVolume、pause、unload も試しましたが、どれも機能しませんでした。
何か案は?
android - Android サウンドプールのタイミング
サウンドプールでサウンドの切り捨てを防ぐ信頼できる方法はありますか? 私はサウンド間の sleep() 関数である程度成功しましたが、別のサウンドを開始する前に、サウンドの最後のビットを見逃すことがあります。私のアプリは短い音を順番に再生します。ジェリー
android - Android - 順次オーディオ再生?
サウンドプールとメディアプレーヤーの両方を試してみましたが、サウンド ファイルをオーバーラップせずに順番に正しく再生することはできません。ランダムに選択された 3 つのオーディオ ファイルをオーバーラップせずに順番に再生できる必要があります。サウンドプールを使用してオーディオを順番に再生する例はありますか? 非常に高く評価されます..そのような単純なことは過度に複雑であるように思われます..
android - onClick()でSoundPoolサウンドが同時に再生されないのはなぜですか?
クリックすると、次のコードにより、2つのサウンドが同時にではなく、順番に再生されます。なぜ同時にプレイされないのですか?
android - Androidサウンドプールの問題
私はAndroidマーケットにアプリを持っていて、効果音にSoundPoolクラスを使用しています。Android APIのすべての部分の中で、これが最も問題を引き起こしているように思われることに気づきました。例えば:
HTC DesireにはWAVファイルの再生に問題があります(これにより、ランダムにロックされます)。.oggファイルを使用するとこれが修正されます
Droidで、initセットアップ呼び出しのチャネル数を超えた場合:
mSoundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);
受話器がロックします。あなたがそれをデバッグすることの難しさを想像できるなら!私が所有していない受話器。それは私の顧客からの多くの無私の助けを必要としました。「4」を「16」に変更すると、問題が解消されました。16のサウンドを同時に再生しても、クラッシュすることは間違いありません。ありがたいことに、その可能性は低いです。
- また、さまざまなデバイスでランダムにクラッシュします。顧客の1人から、サウンドの再生に関連する「ヒープオーバーフロー」エラーのあるカタログがあります。
MediaPlayerを使用するようにサウンドマネージャーを変更しました。これは今のところうまく機能しているようです。他の開発者がこれらの問題を経験しているかどうか疑問に思っていますか?
android - Android onLoadCompleteListenerの実装方法は?
SoundPool を使用した「Sound」というカスタム クラスがあります。ロード完了リスナーを実装して、アクティビティがイントロ サウンドを再生し、ロードが完了すると「開始」ボタンを表示できるようにしたいと考えています。
リスナーを実装し、アクティビティから完全なステータスをテストして、すべてがロードされていることを確認してから、上記を実行するにはどうすればよいですか。
小さな例をいただければ幸いです。
MyActivity は、クラス「Sound」のインスタンスを作成して、そこからさまざまなサウンド メソッドを呼び出せるようにします。
これらのほとんどは、呼び出されるまでにロードが完了しているため、問題ではありませんが、呼び出す前に MyActivity がロードが完了したかどうかを確認できるようにする必要があります。
(例えば)。
たぶん、OnLoadCompleteListener は最善の解決策ではないかもしれません。私はまだ学んでいるので、アイデアを受け入れています。
ありがとう
android - デフォルトの着信音を再生する
私はSoundPoolを使用してデフォルトの着信音を再生しようとして成功しませんでした。以下のコードで
「コンテンツ/システム/着信音サンプル0の読み込み中にエラーが発生しました」というメッセージが表示されます。URIをSDカード上の既存のmp3ファイルへのハードパスに置き換えると、同様の結果が得られます。
私は何が間違っているのですか?ありがとう、
カイル
android - そして再びSoundPoolのメモリの問題について
SoundPoolは小さなfxのようなサウンドを処理することを目的としていたことを認識しており、あるシーケンスで1つずつ再生したい4つのサウンドクリップが十分に小さいことを確認しました。
私はogg品質0を使用し、クリップは35kb、14kb、21kb、23kbで、合計92kbの圧縮オーディオです。非圧縮のサイズを見積もる方法がわかりませんが、それほど多くはないはずですよね?
したがって、4つのサウンドを順番に再生すると、最初の9回(9つのシーケンスx 4つのサウンド)は正常に機能しますが、1つのサウンドの9つのシーケンスでメモリの問題が発生し始めます。エラーが発生し始めると、常にシーケンス9になります。
それを処理するための最良の方法は何ですか?私はいくつかのアイデアを持っています:
1)サウンドをさらに圧縮します(ステレオの代わりにogg品質-1とモノラル)
2)SoundPool.loadとSoundPool.unloadを使用して、サウンドを常にアンロードおよびロードします
3)soundPoolインスタンスをリリースして再作成します
他にできることはありますか?androidapiがそれほど小さなクリップを処理できないのは恥ずかしいことです。効果音の多いゲームをどうやって作るのかしら…
エラーは次のようになります。
ERROR / AudioFlinger(35):AudioTrackに十分なメモリがありませんsize = 1048640 DEBUG / MemoryDealer(35):AudioTrack(0x25018、size = 1048576)