2012-01-09 6 views
3

私はサウンドボードを作成しました。このコードは、クリックするとすべてのアイテムのメディアプレーヤーを作成します。 は、ここに私のコードです:Android SDK - すべてのmediaplayerを一度に停止する方法

public void onListItemClick(ListView parent, View v, int position, long id){ 

Sound s = (Sound) mSounds.get(position); 

MediaPlayer mp = MediaPlayer.create(this, s.getSoundResourceId()); 

mp.start(); 

} 

しかし、私はプレーしているすべてのサウンドを停止するには、ボタンを作成します。すべてのmediaplayerオブジェクトを停止する方法はありますか?

+0

あなたはこの質問を見るかもしれません:[すべてのMediaPlayersを停止する方法はありますか?](http://stackoverflow.com/q/1969975/562935) – tidbeck

+0

これは私の質問には答えません。それは投稿する前に。そのヒントは、Mediaplayerの名前が固定されているときに機能し、1つのメディアプレーヤーで各サウンドを演奏したとしても、120以上のサウンドがあります。それぞれのスタートとストップは実用的ではありません。 –

答えて

0

MediaPlayersをすべてCollectionに入れてみませんか?

次に、コレクションを反復して停止することができます。

+0

私に例を挙げてもらえますか?私は初心者です。 –

+0

私は笑を試してそれを得た。大いに感謝する。 –

0

すべてのMediaPlayerインスタンスを追加する場合はVectorを作成し、停止ボタンをクリックした場合はmp.stop()でインスタンスを停止してループする必要があります。

+0

アプリには120以上のサウンドが含まれています。ユーザーが1つのサウンドで2回クリックすると、2つのメディアプレーヤーが作成され、誰も破壊されません。だから、ループでは、再生しているかどうかを確認してから、1つずつ停止する必要があります。これは多くのCPUを消費する可能性があります。 –

+0

1xx要素のベクトルを反復することは問題にはなりません。それぞれの反復では、if節とif節を実行する必要があります。それが再生されている場合は、ベクターの削除を中止してください...他のすべての破棄可能性があるかどうかはわかりません。 – frayab

+0

ええと...私に例を教えてもらえますか? –

関連する問題