こんにちは、私は 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){}
}
このように。音楽を止めたいのですが、どうすれば止められますか?私を助けてください。