E/MediaPlayer: 状态64开始调用,使用MediaPlayer时mPlayer(0xaf149260)

E/MediaPlayer: start called in state 64, mPlayer(0xaf149260) when using MediaPlayer

我一直在尝试使用播放和停止按钮播放和停止 mp3 文件,但它一直出现此错误:

E/MediaPlayer: start called in state 64, mPlayer(0xaf149260)
E/MediaPlayer: error (-38, 0)
E/MediaPlayer: Error (-38,0)

这是我目前得到的代码:

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        final MediaPlayer mainSongMP = MediaPlayer.create(this, R.raw.main_copy);

        Button playButton = (Button) this.findViewById(R.id.playButton);
        Button stopButton = (Button) this.findViewById(R.id.stopButton);

        playButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v){
                mainSongMP.start();
            }
        });

        stopButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mainSongMP.stop();
            }
        });

    }
}

请参考MediaPlayer状态图:

调用stop后,无法再次直接进入Started状态。您需要重新准备 MediaPlayer,或者释放它并重新开始。

就这么用

playButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
                    mainSongMP.start();
                }
            });
    
stopButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
                    mainSongMP.pause();
                }
            });