4

(onClickListenerを使用して)mp3ファイルを再生し、2秒後に停止しようとしています。以下のコードを試しましたが、機能しません。誰か助けてもらえますか?

final MediaPlayer mpsound = MediaPlayer.create(this, R.raw.media_player_sound);

ImageView sound = (ImageView) findViewById(R.id.button);

sound.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                mpsound.start();{
                    sleep(2000);
                    mpsound.stop();
                }
            }
        });
4

2 に答える 2

1

mpsoundでオーディオを再生しているのに、なぜmpfrogでstop()を呼び出すのですか?mpsound MediaPlayerでstop()関数を呼び出す必要があります。また、@ OverrideアノテーションをonClick()メソッドに追加することもできます。

オーバーライド用...

sound.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mpsound.start();{
                    sleep(2000);
                    mpsound.stop();
                }
            }
        });

タイマー用.....

Handler handler = new Handler(){
            @Override
            public void handleMessage(Message msg){
                mpsound.stop();
            }
        };

//Task for timer to execute when time expires
    class SleepTask extends TimerTask {
        @Override
        public void run(){
            handler.sendEmptyMessage(0);
        }
    }

//then in some other function...
Timer timer = new Timer("timer",true);
timer.schedule(new SleepTask(),2000);
于 2012-07-18T21:54:42.040 に答える
0

別のスレッドで2秒間待機する必要があります。この場合、独自に作成したスレッドを使用してそこで待機し、プレーヤーを停止するか、CountDownTimerを使用できます。これは非常に単純なソリューションです。

ここここに集約された同じ質問を見つけることができます

Eclipseでは、オートコンプリート(デフォルトではCtrl +スペース)を使用して、実装されているすべてのメソッドを自動的に入力できます。@Overridesはすでに存在します。

于 2012-07-19T18:02:14.763 に答える