在活动启动时播放一个按钮音乐播放/停止

时间:2017-02-02 06:04:01

标签: android

我有一个带有一个播放/停止音乐按钮的应用。当我运行应用程序时,音乐会在启动时停止。但我想在运行应用程序时自动播放音乐,如果单击按钮,音乐就会停止。我搜索了网站,但我找不到答案。请帮助我的朋友们。

  @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test2);

    mainkan=(ImageButton)findViewById(R.id.imageButton1);
    mainkan.setOnClickListener(new OnClickListener(){
         @Override
        public void onClick(View v){

            go();
         }

        });

     public void go(){
mp=MediaPlayer.create(ProjectisengActivity.this, R.raw.test);
if(mp.isPlaying()){
    mp.stop();
    try {
        mp.prepare();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    mp.seekTo(0);

3 个答案:

答案 0 :(得分:1)

你可以这样说:

if (mp == null) {
    mp = MediaPlayer.create(ProjectisengActivity.this, R.raw.test);
}

if (mp.isPlaying()) {
    mp.pause();
} else {
     mp.start();
}

答案 1 :(得分:0)

您可以使用下面的切换按钮

ToggleButton toggle = (ToggleButton) findViewById(R.id.togglebutton);
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (isChecked) {
            // The toggle is enabled
        } else {
            // The toggle is disabled
        }
    }
});

答案 2 :(得分:0)

在您的activity oncreate方法中调用go()方法。  当你再次点击它时,它会在活动开始时自动播放,并再次调用相同的方法,因此条件正在进行,因此它已停止。

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test2);

mainkan=(ImageButton)findViewById(R.id.imageButton1);
go();
mainkan.setOnClickListener(new OnClickListener(){
     @Override
    public void onClick(View v){

        go();
     }

    });



public void go(){
mp=MediaPlayer.create(ProjectisengActivity.this, R.raw.test);
if(mp.isPlaying()){
mp.stop();
try {
    mp.prepare();
} catch (IllegalStateException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
mp.seekTo(0);