【问题标题】:How to implement next and previous button with this code?如何使用此代码实现下一个和上一个按钮?
【发布时间】:2018-10-03 02:45:51
【问题描述】:

我的代码有一个开关实现来实现所需的输出。现在我需要这个实现也有下一个和上一个按钮。但我不知道简单的解决方案,这是入门。这是我的代码:

   private MediaPlayer clipSetup(int i){
    switch (i){
        case 1:
            mediaPlayer = MediaPlayer.create(this, R.raw.al01);
            mediaPlayer.start(); 
            break;
        case 2:
            mediaPlayer = MediaPlayer.create(this, R.raw.al02);
            mediaPlayer.start();    
            break;
        case 3:
            mediaPlayer = MediaPlayer.create(this, R.raw.al02);
            mediaPlayer.start();
            break;
        }
        return mediaPlayer;
     }

现在查看这段代码,我想要实现 OnClick 按钮。

【问题讨论】:

    标签: android onclick switch-statement android-mediaplayer


    【解决方案1】:

    希望这会对您有所帮助。

    int current=0;
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn_back:
                current++;
                break;
            case R.id.btn_next:
                if(current<=0)
                    current=2;
                else
                current--;
                break;
        }
        clipSetup(current%3+1);
    }
    

    【讨论】:

      【解决方案2】:

      如果您需要实现遥控按钮,请使用下面的代码。

              int keycode = event.getKeyCode();
      
              if(event.getAction() != KeyEvent.ACTION_DOWN){
                  return true;
              }
      
                  switch (keycode){
                      case KeyEvent.KEYCODE_DPAD_LEFT :
                          if(videoType.equals(GENERAL)){
                              if(event.getAction() == KeyEvent.ACTION_DOWN){
                                  rewindSurfacePlayer();
                              }
                          }
                          break;
                      case KeyEvent.KEYCODE_DPAD_RIGHT:
                          if(videoType.equals(GENERAL)){
                              if(event.getAction() == KeyEvent.ACTION_DOWN){
                                  fastForwardSurfacePlayer();
                              }
                          }
                          break;
                      case KeyEvent.KEYCODE_DPAD_UP:
                          if(videoType.equals(GENERAL)){
                              if(event.getAction() == KeyEvent.ACTION_DOWN){
                                  showSurfaceControls();
                              }
                          }
                          break;
                      case KeyEvent.KEYCODE_DPAD_DOWN:
                          if(videoType.equals(GENERAL)){
                              if(event.getAction() == KeyEvent.ACTION_DOWN){
                                  if(!vidPaused){
                                      pauseSurfacePlayer();
                                  }else {
                                      playSurfacePlayer();
                                  }
                              }
                          }
                          break;
                      case KeyEvent.KEYCODE_PROG_RED://rewind
                          if(videoType.equals(GENERAL)){
                              if(event.getAction() == KeyEvent.ACTION_DOWN){
                                  rewindSurfacePlayer();
                              }
                          }
                          break;
                      case KeyEvent.KEYCODE_PROG_GREEN://forward
                          if(videoType.equals(GENERAL)){
                              if(event.getAction() == KeyEvent.ACTION_DOWN){
                                  fastForwardSurfacePlayer();
                              }
                          }
                          break;
                      case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
                          if(videoType.equals(GENERAL)){
                              if(event.getAction() == KeyEvent.ACTION_DOWN){
                                  if(!vidPaused){
                                      pauseSurfacePlayer();
                                  }else {
                                      playSurfacePlayer();
                                  }
                              }
                          }
                          break;
                      case KeyEvent.KEYCODE_MEDIA_STOP:
                          stopVideo();
                          break;
                      case 23://play/pause
                          if(videoType.equals(GENERAL)){
                              if(event.getAction() == KeyEvent.ACTION_DOWN){
                                  if(!vidPaused){
                                      pauseSurfacePlayer();
                                  }else {
                                      playSurfacePlayer();
                                  }
                              }
                          }
                          break;
                      case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
                          if(videoType.equals(GENERAL)){
                              if(event.getAction() == KeyEvent.ACTION_DOWN){
                                  fastForwardSurfacePlayer();
                              }
                          }
                          break;
                      case KeyEvent.KEYCODE_MEDIA_REWIND:
                          if(videoType.equals(GENERAL)){
                              if(event.getAction() == KeyEvent.ACTION_DOWN){
                                  rewindSurfacePlayer();
                              }
                          }
                          break;
                      case KeyEvent.KEYCODE_MEDIA_PAUSE:
                          if(event.getAction() == KeyEvent.ACTION_DOWN){
                              pauseSurfacePlayer();
                          }
                          break;
                      case KeyEvent.KEYCODE_MEDIA_PLAY:
                          if(event.getAction() == KeyEvent.ACTION_DOWN){
                              playSurfacePlayer();
                          }
                          break;
                  }
      

      这需要在 dispatchKeyEvent 方法上进行。你也可以在那里做后退按钮的把手。无需使用 onBackPressed 方法。如果您已经在使用 onBackPressed 并想使用 dispatchKeyEvent,请删除您的 onBackPressed 方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多