I am trying to use ExoPlayer
, as opposed to MediaPlayer
and I can't seem to figure it out...
MediaPlayer
has .start()
/ .pause()
commands... and I can just seekTo(1287)
and it automatically starts playing...
How do I do this with ExoPlayer
? I have tried to do seekTo(1287)
but it doesn't start playing after... I have also added .setPlayWhenReady(true)
after that, and still no luck...
I am able to .stop()
... but I can't get it to start playing again after that unless I .prepare()
again... but I don't think I should have to do that between every pause and play.
I am using my own controls and methods opposed to MediaController
like in the ExoPlayer Demo... I can't quite see how the controls are implemented...
Any suggestions anyone?
Edit:
OK, I figured out pause and start...
.setPlayWhenReady(true) // start
.setPlayWhenReady(false) // pause
But I'm still having problems with the tracking... .seekTo
works intermittently... sometimes it works... but other times I get this error:
E/AudioTrack: AudioTrack::set : Exit
(and it only gets to the buffer state... doesn't quite get to "ready"...
The official example of the
PlayerControl
in the ExoPlayer source code do exactly what you asked:If you are experiencing strange behaviors during the seek operation, it may be due to you particular stream/file type. I can suggest you to take a look at the base implementation of the ExoPlayer and, eventually, report any issue on Github.
Here's how the example code does it for Exoplayer 2:
starts playback, (
false
stops)To seek, they use
So it seems you need to
prepare
after theseekTo
.