0

みんなのシナリオは、ボタンをクリックするとサウンドが再生され、そのトラックの期間内にもう一度ボタンをクリックして最初から再生したいとします。次のコードで試しましたが、成功しませんでした。コードは:

public class SoundtestActivity extends Activity {
/** Called when the activity is first created. */
 MediaPlayer mp;
 @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
     mp = MediaPlayer.create(this, R.raw.gun_shot);
    Button click=(Button) findViewById(R.id.bt1);
    click.setOnClickListener((new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(mp.isPlaying())
                mp.reset();
            mp.start();
        }
    }));
       }

}

4

3 に答える 3

1

最良の方法と最も簡単な方法は=mp.setLooping(true);です。そして、はい、それは機能します。mp.start()の後にこの行を追加するだけで、他にnothinfgが必要です。

于 2012-12-05T07:52:57.993 に答える
1

このコードを試してください

mp.setOnCompletionListener(新しいOnCompletionListener() {

            @Override
            public void onCompletion(MediaPlayer mp) {
                mp.release();
                mp.start();
            }

        }); 

または、mp.start(); を置き換えます。mp.reset(); によって このコードで

于 2012-12-05T07:11:30.360 に答える
0

comment次の行をshift your Media player instance実行し、ボタンのリスナー メソッドで、複数のメディア プレーヤーを同時に再生してビンゴを実行する だけです。

Button click=(Button) findViewById(R.id.bt1);
click.setOnClickListener((new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    mp = MediaPlayer.create(this, R.raw.gun_shot); // ADD THIS LINE HERE

        if(mp.isPlaying()){ 
            mp.stop();           //ADDED TO STOP FIRST
            mp.release();        //ADDED TO RELEASE RESOURCES
    }
        mp.start();
    }
}));
于 2012-06-18T04:45:28.060 に答える