Whenever I try to stop the media player in a different action, than I get an invalid exception of the condition "Attempting to execute seekTo in the wrong state, error (-38, 0)". Please suggest what solution?
Media Player Activity:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.media);
Thread t = new Thread()
{
public void run()
{
while (isDownloading)
{
if (Data.filenames != null && Data.filenames.size() >= (getIntent() .getExtras().getInt("index") + 1) && Data.filenames.get(getIntent().getExtras() .getInt("index")) != null)
{
try
{
mediaPlayer.setDataSource(Data.filenames.get(getIntent().getExtras().getInt("index")));
mediaPlayer.prepare();
mediaPlayer.start();
isplayed++;
new Thread(onEverySecond).start();
mediaPlayer.setOnCompletionListener(new OnCompletionListener()
{
@Override
public void onCompletion(MediaPlayer mp) {
mediaPlayer.seekTo(0);
btnplay.setImageResource(R.drawable.play);
index = 0;
}
});
boolean isPlaying = mediaPlayer.isPlaying();
if(!isPlaying)
{
mediaPlayer.pause();
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
isDownloading = false;
}
}
}t.start;
}
Second Activity From where I am trying to stop media player:
if (!(MediaPlay1.mediaPlayer == null)) {
MediaPlay1.mediaPlayer.seekTo(MediaPlay1.mediaPlayer.getCurrentPosition());
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
MediaPlay1.mediaPlayer.stop();
MediaPlay1.mediaPlayer.release();
} else {
Log.e("------", "------");
}
if (!(MediaPlay.mediaPlayer == null)) {
MediaPlay.mediaPlayer.stop();
MediaPlay.mediaPlayer.release();
} else {
Log.e("------", "------");
}
Logcat:
MediaPlayer (11694): attempt to execute seekTo in the wrong state: mPlayer = 0x2b8270, mCurrentState = 0 MediaPlayer (11694): error (-38, 0) MediaPlayer (11694): error (-38,0)
source
share