以前播放的音乐不会停止按下按钮。

时间:2014-10-29 17:07:50

标签: imagebutton

我是编程的绝对新手,最近敢于开始使用Android编程。添加了4个图像按钮,每个按钮播放一个独特的曲调并显示一个独特的消息;但问题是,如果我在点击一个按钮后按下另一个按钮,之前的音乐会继续播放而当前的音乐仍然打开,简而言之,音乐继续运行。如果我一个接一个地弹奏四个按钮,则会完全播放四种不同的音乐。无法找到出路。如果可能的话,请以精心的方式提供帮助。另一个问题,我创建的编码太复杂了吗?

package com.example.imagesonic;


import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.Toast;


public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        try{


       ImageButton ib1 = (ImageButton) findViewById(R.id.imageButton1);
       final MediaPlayer mp1 = MediaPlayer.create(this, R.raw.muzikone);

        ib1.setOnClickListener (new View.OnClickListener()  {



            @Override
            public void onClick(View v) {

                Toast.makeText(MainActivity.this, "FIRST MUSIC!", Toast.LENGTH_LONG).show();
                mp1.start();

            }    


        });


        ImageButton ib2 = (ImageButton) findViewById(R.id.imageButton2);
        final MediaPlayer mp2 = MediaPlayer.create(this, R.raw.muziktwo);

         ib2.setOnClickListener (new View.OnClickListener()  {

            @Override
            public void onClick(View v) {

                Toast.makeText(MainActivity.this, "SECOND MUSIC!", Toast.LENGTH_LONG).show();
                mp2.start();

            }    


        });



         ImageButton ib3 = (ImageButton) findViewById(R.id.imageButton3);
         final MediaPlayer mp3 = MediaPlayer.create(this, R.raw.muzikthree);

          ib3.setOnClickListener (new View.OnClickListener()  {

            @Override
            public void onClick(View v) {

                Toast.makeText(MainActivity.this, "THIRD MUSIC!", Toast.LENGTH_LONG).show();

                 mp3.start();

            }    


        });


          ImageButton ib4 = (ImageButton) findViewById(R.id.imageButton4);
          final MediaPlayer mp4 = MediaPlayer.create(this, R.raw.muzikfour);

           ib4.setOnClickListener (new View.OnClickListener()  {

            @Override
            public void onClick(View v) {

                Toast.makeText(MainActivity.this, "FOURTH MUSIC!", Toast.LENGTH_LONG).show();
                ImageButton ib4 = (ImageButton) findViewById(R.id.imageButton1);
                ib4.setImageResource(R.drawable.naomitan);  
                 mp4.start();

            }    


        });

    }catch(Exception e) {

    }
    }
}

1 个答案:

答案 0 :(得分:0)

要使您的应用程序以这样的方式工作:一旦播放一首歌曲,所有其他歌曲将停止播放,您必须使用服务并实施Android Audio manager回调,然后您可以控制您的MediaPlayer实例如果另一个AudioManger实例正在播放音乐,则停止播放音乐。

Here是Google提供的一些很好的文档,说明了实现此目的的说明。这很简单。