我正在尝试编写一个简单的Android MediaPlayer代码。我在停止播放歌曲并重新启动时遇到问题。在每个按钮单击。否则,如果我不停止曲目,则在每个按钮中单击该歌曲不播放,等待歌曲停止。
我的要求是,在每个按钮中点击歌曲应该从头开始。
mycode的:
package com.example.musicexample;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Button;
public class MainActivity extends ActionBarActivity {
Button btnPlay;
MediaPlayer mPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnPlay = (Button) findViewById(R.id.btnPlay);
mPlayer = MediaPlayer.create(getApplicationContext(), R.raw.a);
btnPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if(mPlayer.isPlaying()){
mPlayer.stop();
mPlayer.reset();
}
mPlayer.start();
}
});
} }
在上面的代码中,歌曲播放一次,它不会再播放。
所以请仔细阅读,请让我知道,如果正在播放歌曲,我怎么能停止曲目,然后从头开始重启。
答案 0 :(得分:1)
你可以试试这个:
MediaPlayer m1 = null;
play1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopPlaying();
m1=MediaPlayer.create(MainActivity.this, R.raw.a);
m1.start();
}
});
private void stopPlaying() {
if (mp1 != null) {
m1.stop();
m1.release();
m1 = null;
}
答案 1 :(得分:0)
一旦处于Stopped状态,在调用prepare()或prepareAsync()将MediaPlayer对象再次设置为Prepared状态之前,无法开始播放。
http://developer.android.com/reference/android/media/MediaPlayer.html
答案 2 :(得分:0)
您正在调用reset()
方法,该方法将MediaPlayer
返回到其未初始化状态。
将MediaPlayer重置为未初始化状态。
您必须再次设置MediaPlayer
的来源才能播放。