按钮onClickListener无法在Android中播放声音

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按钮onClickListener无法在Android中播放声音相关的知识,希望对你有一定的参考价值。

我试图设置我的按钮,点击时播放一首歌,但没有任何反应,没有错误,没有强制退出。当我单击渲染中的按钮时,它只是按下。

public class Shows extends AppCompatActivity {
    RadioButton radRent1, radRent2, radWicked, radHamilton, radPhantom;
    Button btnRent, btnWicked, btnHamilton, btnPhantom;
    MediaPlayer mpRent1,mpRent2, mpWicked, mpHamilton, mpPhantom;
    int playing;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shows);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(Shows.this, ItemListActivity.class));
            }
        });
        playing = 0;
        mpRent1 = new MediaPlayer();
        mpRent1 = MediaPlayer.create(this, R.raw.seasons_of_love);
        mpRent2 = new MediaPlayer();
        mpRent2 = MediaPlayer.create(this, R.raw.seasons_of_love);
        btnRent = (Button)findViewById(R.id.btnRent);
        btnRent.setOnClickListener(bRent);
    }
    Button.OnClickListener bRent = new Button.OnClickListener() {
        @Override
        public void onClick(View v) {
            switch(playing){
                case 0:
                    mpRent1.start();
                    playing = 1;
                    btnRent.setText("Pause Selected Song");
                    break;
                case 1:
                    mpRent1.pause();
                    playing = 0;
                    btnRent.setText("Play Selected Song");
                    break;
            }
        }
    };

}

任何人都可以看到错误在哪里?

答案

您需要打开View的ID

或者在bRent上使用set onClickListener

`

 bRent.setOnClickListener(new View.OnClickListener() {                                                                
 @Override
 public void onClick(View view){                                              
 //put your logic here                                                       
 }`
另一答案

以这种方式设定行动

 playbutton.setOnClickListener(this);
 pausebutton.setOnClickListener(this);

然后实现这一点

  implements View.OnClickListener

而不是覆盖

  @Override
public void onClick(View view) {
    switch(view.getId()) {
        case R.id.play:
            //Play voicefile

            break;
        case R.id.pause:
            //Stop MediaPlayer

            break;
    }
}

以上是关于按钮onClickListener无法在Android中播放声音的主要内容,如果未能解决你的问题,请参考以下文章

OnClickListener无法解析为某种类型

为 EditText 的 Drawable 权限设置 onClickListener [重复]

OnClickListener() 用于动态数量的按钮

如何在主要活动中使用按钮 onclicklistener 进行回收视图项目

如何在同一个 onclicklistener 中连接多个按钮?

我可以为多个按钮创建自定义 onClickListener [重复]