0

こんにちは、私は Android 開発の初心者です。私のアプリケーションでは、1 つのクラス Music を作成して、すべてのアクティビティにメディア プレーヤーにアクセスします。約 50 のアクティビティがあります。MY Music クラスには、静的なメディア プレーヤー オブジェクトがあります。各アクティビティには次へのボタンと進むボタンがあります。次のボタンをクリックすると、クリックごとに増加する静的カウンターが 1 つあります。各カウンター値には異なる曲があります。だから私は最初のカウンター値の曲を停止し、次の曲を開始したい.on forward 同じことをしなければならない.

誰でも、最初の曲を停止して次の曲を開始する静的メソッドを実装する方法を知っています。

これが私のコードです。

public class Music extends Application implements OnCompletionListener    {



   public static   MediaPlayer mp=null;

public static void playGeneric(int name, final ImageButton button,final ImageButton pervious,Context context) {
        button.setEnabled(false);
        button.setClickable(false);
        pervious.setEnabled(false);
        pervious.setClickable(false);
            try{

                mp = MediaPlayer.create(context, name); // used to re-initialze the mediaplayer for reuse since resources were released.

                    mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                        @Override
                        public void onPrepared(MediaPlayer arg0) {

                            mp.start();

                        }

                    });

              mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

                    @Override
                    public void onCompletion(MediaPlayer mp) {
                        // TODO Auto-generated method stub
                        mp.release();
                        System.out.println("Object released");
                        button.setEnabled(true);
                        button.setClickable(true);
                        pervious.setEnabled(true);
                        pervious.setClickable(true);
                    }
                });




        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            e.getMessage();
        } catch (NullPointerException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            e.getMessage();
        }

    }

 public static void stopplaying() {
    if (mp != null) {
        mp.stop();
        mp.release();
        mp = null;
    }

}
}

アクティビティ時 次のボタン クリック時 スタティック カウンター インクリメント

    if (v == next) {
       counter++

 if (counter == 1) {
            Log.i("counter", "value :: " + counter);
            Music.playGeneric(audio, next,pervious, getBaseContext());

        }


     if (counter == 2) {
                   Music.playGeneric(audio, next,pervious, getBaseContext());                
}

    ....................................
          if(counter==25){}
    }

このように。音楽を止めたいのですが、どうすれば止められますか?私を助けてください。

4

1 に答える 1

0

@Sydroid次と前の2つの静的メソッド1を作成し、次と前をクリックするとこれを呼び出す必要があります。次と前のメソッドでstopplaying()メソッドを呼び出し、カウンターをインクリメントしてpalygeneric()を呼び出します。

于 2013-10-15T06:15:20.450 に答える