如您所见,我遇到了麻烦。我正在尝试创建两个同时带有暂停,播放,前进和后退按钮的搜索栏。我观看了有关如何制作一个YouTube视频的视频,现在我正在尝试制作第二个视频。我尝试复制和粘贴相同的代码,但是我感觉自己做错了什么。第一个onClick中的变量“ view”出现了一些错误(第二个错误)。我在程序中实现了第一个onClick。谁能告诉我该怎么办?
package net.androidbootcamp.shepherdschurchapp;
import android.media.MediaPlayer;
import android.os.Handler;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.SeekBar;
public class Listen extends AppCompatActivity implements
View.OnClickListener {
private Button btnPlay, btnBack, btnFor, btnPlay2, btnBack2,
btnFor2;
private SeekBar seekBar, seekBar2;
private MediaPlayer mediaPlayer, mediaPlayer2;
private Runnable runnable;
private Handler handler, handler2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listen);
//SHOW ICON LAUNCHER
ActionBar actionBar = getSupportActionBar();
actionBar.setLogo(R.mipmap.ic_launcher);
actionBar.setDisplayUseLogoEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
//
btnPlay = findViewById(R.id.btnPlay);
btnBack = findViewById(R.id.btnBack);
btnFor = findViewById(R.id.btnFor);
btnPlay2 = findViewById(R.id.btnPlay2);
btnBack2 = findViewById(R.id.btnBack2);
btnFor2 = findViewById(R.id.btnFor2);
handler = new Handler();
handler2 = new Handler();
seekBar = findViewById(R.id.seekbar);
seekBar2 = findViewById(R.id.seekbar2);
mediaPlayer = MediaPlayer.create(this, R.raw.part1);
mediaPlayer2 = MediaPlayer.create(this, R.raw.part2);
btnFor.setOnClickListener(this);
btnBack.setOnClickListener(this);
btnPlay.setOnClickListener(this);
mediaPlayer2.setOnPreparedListener(new
MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
seekBar2.setMax(mediaPlayer2.getDuration());
mediaPlayer2.start();
changeSeekbar();
}
});
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
seekBar.setMax(mediaPlayer.getDuration());
mediaPlayer.start();
changeSeekbar();
}
});
seekBar2.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if(fromUser){
mediaPlayer.seekTo(progress);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
private void changeSeekbar() {
seekBar.setProgress(mediaPlayer2.getCurrentPosition());
if(mediaPlayer2.isPlaying()){
runnable = new Runnable() {
@Override
public void run() {
changeSeekbar();
}
};
handler2.postDelayed(runnable, 1000);
}
}
public void onClick(View view) {
switch(view.getId()) {
case R.id.btnPlay:
if(mediaPlayer2.isPlaying()){
mediaPlayer.pause();
btnPlay2.setText(">");
} else {
mediaPlayer2.start();
btnPlay2.setText("||");
changeSeekbar();
}
break;
case R.id.btnFor2:
mediaPlayer2.seekTo(mediaPlayer.getCurrentPosition()+5000);
break;
case R.id.btnBack2:
mediaPlayer2.seekTo(mediaPlayer.getCurrentPosition()-5000);
}
}
seekBar.setOnSeekBarChangeListener(new
SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
if(fromUser){
mediaPlayer.seekTo(progress);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}
private void changeSeekbar() {
seekBar.setProgress(mediaPlayer.getCurrentPosition());
if(mediaPlayer.isPlaying()){
runnable = new Runnable() {
@Override
public void run() {
changeSeekbar();
}
};
handler.postDelayed(runnable, 1000);
}
}
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.btnPlay:
if(mediaPlayer.isPlaying()){
mediaPlayer.pause();
btnPlay.setText(">");
} else {
mediaPlayer.start();
btnPlay.setText("||");
changeSeekbar();
}
break;
case R.id.btnFor:
mediaPlayer.seekTo(mediaPlayer.getCurrentPosition()+5000);
break;
case R.id.btnBack:
mediaPlayer.seekTo(mediaPlayer.getCurrentPosition()-5000);
}
}
}