静态媒体播放器对象访问整个应用程序中的资源文件

时间:2013-10-15 05:48:20

标签: java android android-mediaplayer

你好,我是android开发的新手,在我的应用程序中我创建了一个类Music来访问媒体播放器每个activity.i有大约50个活动。 MY Music class拥有静态媒体播放器对象。 每个活动都有下一个按钮和前进按钮。单击下一个按钮,有一个静态计数器将根据click.each计数器值增加不同的歌曲。 所以我想要停止第一个计数器价值歌并开始下一个。必须完成同样的前进。

任何人都有想法,如何实现停止第一首歌并开始下一首歌的静态方法。

这是我的代码。

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;
    }

}
}

on下一个按钮的活动点击静态计数器增量

    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){}
    }
  像这样。现在我想停止音乐,如何阻止音乐?请帮忙   我

1 个答案:

答案 0 :(得分:0)

@Sydroid你需要在下一个和第二个前面做两个静态方法1并在你单击next和previous之前调用它,在next和previous方法中调用你的stopplaying()方法,然后递增你的计数器并调用palygeneric()。 / p>