2

ユーザーがリストビューのアイテムに触れたときに音を鳴らしたい。リストビューを作成しました。以下は、アイテムクリックリスナーのオンクリック実装です。

listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapter, View view,int pos, long id) {

 //Here I am getting getting sound bytes from raw folder with name
 // like "a"+pos and using getResourse

  mp.create(context, resid);
  mp.start();

    }
 });

私はアンドロイドの MediaPlayer についてあまり知識がありません

私の問題は、メディアプレーヤーを使用して単一のサウンドインスタンスを再生する方法です。メディア プレーヤーを使用しましたが (上記のコードを参照)、ユーザーが複数回クリックすると複数のサウンド インスタンスが再生されます。私が間違っていなければ、グローバル レベルで mediaplayer.create() を呼び出すのが最善です。しかし、メディア ファイルのリソース ID を渡すにはどうすればよいでしょうか。

4

1 に答える 1

3

最初に、アイテムをクリックするたびに MediaPlayer が null かどうかを確認する必要があります。

    if(mp!=null) {
        try{
            mp.stop();
            mp.release();
        } catch(Exception e){
            Log.w("Exception", e);
        }
    }

そして、同じメディアプレーヤーで別のサウンドを再生できます

mp = MediaPlayer.create(YOUR_ACTIVITY_NAME.this, YOUR_SOUND_FILE);
mp.prepare();
mp.start();

これが問題の解決に役立つことを願っています。

これはこれを行うための最良の方法ではないかもしれません。誰かが他の方法を知っている場合は、私を更新してください。

ありがとう!

于 2012-09-07T17:48:04.680 に答える