You can only call pause() when mp is in "Started" or "Paused" state, calling pause when mp is in other states will cause mp enter "Error" state, in which you can not call setDataSource method at all.To verify this, add mp.reset() before calling mp.setDataSource, then you should be able to play the file.Make sure that mp is in the right state before call any method of mp.
pause后有resume,你这代码看起来是新老混用以前的暂停是用stop,加记录播放位置。然后再播放
你看看gallery3d的mediapalyer