这是使用MediaPlayer的正确方法吗?
public class MainActivity extends AppCompatActivity{
MediaPlayer sound1, sound2, sound3, sound4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Sound MediaPlayers
sound1= MediaPlayer.create(this, R.raw.sound1);
sound2= MediaPlayer.create(this, R.raw.sound2);
sound3= MediaPlayer.create(this, R.raw.sound3);
sound4= MediaPlayer.create(this, R.raw.sound4);
}
//sound onClick's
public void sound1(View view){
sound1.start();
}
public void sound2(View view){
sound2.start();
}
public void sound3(View view){
sound3.start();
}
public void sound4(View view){
sound4.start();
}
}我必须清理MediaPlayer,但我不知道如何才能做到。我知道我必须使用sound1.release(),但是如果我写:
public void sound1(View view){
sound1.start();
sound1.release();
}请举个例子吧。
发布于 2017-03-02 10:18:45
这将为您做好准备。
public class MainActivity extends AppCompatActivity{
MediaPlayer mediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//sound onClick's
public void sound1(View view){
cleanUpMediaPlayer();
mediaPlayer = MediaPlayer.create(this, R.raw.sound1);
mediaPlayer.start();
}
public void sound2(View view){
cleanUpMediaPlayer();
mediaPlayer = MediaPlayer.create(this, R.raw.sound2);
mediaPlayer.start();
}
public void sound3(View view){
cleanUpMediaPlayer();
mediaPlayer = MediaPlayer.create(this, R.raw.sound3);
mediaPlayer.start();
}
public void sound4(View view){
cleanUpMediaPlayer();
mediaPlayer = MediaPlayer.create(this, R.raw.sound4);
mediaPlayer.start();
}
public void cleanUpMediaPlayer(){
if(mediaPlayer != null) {
if(mediaPlayer.isPlaying()) {
mediaPlayer.stop();
}
mediaPlayer.release();
}
}
}https://stackoverflow.com/questions/42539030
复制相似问题