更改活动后,该应用程序停止运行。以下是我的代码

时间:2019-04-28 18:38:17

标签: java android

导入都很好,只是在活动更改时出错。

public class Audio extends AppCompatActivity implements Runnable
{

private Button startB;
private Button stopB;
private Button pauseB;
private Button videoB;
  private MediaPlayer soundplayer;
  private SeekBar soundSeek;
  private Thread soundThread;

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

    startB=(Button) findViewById(R.id.start);
    stopB=(Button) findViewById(R.id.stop);
    pauseB=(Button) findViewById(R.id.pause);
    videoB=(Button) findViewById(R.id.play);
    soundplayer=MediaPlayer.create(this.getBaseContext(),R.raw.podmeter);

    setupListeners();

    soundThread=new Thread(this);
    soundThread.start();
 }

   private void setupListeners()
  {
    startB.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            soundplayer.start();
        }
    });
    pauseB.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            soundplayer.pause();
        }
    });
    stopB.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            soundplayer.stop();
            soundplayer=MediaPlayer.create(getBaseContext(),R.raw.podmeter);
        }
    });
    soundSeek.setOnSeekBarChangeListener(new 
  SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean 
  fromUser) {
            if (fromUser)
            {
                soundplayer.seekTo(progress);
            }

        }

一切似乎都正常。编译代码或在设备上运行时没有错误。在一项活动中,我有两个名为“音频”和“视频”的按钮。当我单击音频时,应该打开此活动。但是由于某种原因它没有打开。

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

        }
    });


}

@Override
public void run() {
    int currentPosition=0;
    int soundTotal=soundplayer.getDuration();

    while(soundplayer!=null && currentPosition<soundTotal)
    {
        try {
            Thread.sleep(300);
            currentPosition=soundplayer.getCurrentPosition();
        }
        catch (InterruptedException soundException)
        {
            return;
        }
        catch (Exception otherException)
        {
            return;
        }
        soundSeek.setProgress(currentPosition);
        }
    }
}

0 个答案:

没有答案