Commit c4bf83dd by tonihei Committed by Oliver Woodman

Support stop() in FakeExoPlayer and release media properly.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=168209817
parent c1810575
...@@ -69,8 +69,8 @@ public class FakeSimpleExoPlayer extends SimpleExoPlayer { ...@@ -69,8 +69,8 @@ public class FakeSimpleExoPlayer extends SimpleExoPlayer {
return player; return player;
} }
private class FakeExoPlayer implements ExoPlayer, MediaSource.Listener, MediaPeriod.Callback, private static class FakeExoPlayer implements ExoPlayer, MediaSource.Listener,
Runnable { MediaPeriod.Callback, Runnable {
private final Renderer[] renderers; private final Renderer[] renderers;
private final TrackSelector trackSelector; private final TrackSelector trackSelector;
...@@ -201,12 +201,20 @@ public class FakeSimpleExoPlayer extends SimpleExoPlayer { ...@@ -201,12 +201,20 @@ public class FakeSimpleExoPlayer extends SimpleExoPlayer {
@Override @Override
public void stop() { public void stop() {
throw new UnsupportedOperationException(); playbackHandler.post(new Runnable() {
@Override
public void run () {
playbackHandler.removeCallbacksAndMessages(null);
releaseMedia();
changePlaybackState(Player.STATE_IDLE);
}
});
} }
@Override @Override
public void release() { public void release() {
playbackThread.quit(); stop();
playbackThread.quitSafely();
} }
@Override @Override
...@@ -536,6 +544,17 @@ public class FakeSimpleExoPlayer extends SimpleExoPlayer { ...@@ -536,6 +544,17 @@ public class FakeSimpleExoPlayer extends SimpleExoPlayer {
}); });
} }
private void releaseMedia() {
if (mediaSource != null) {
if (mediaPeriod != null) {
mediaSource.releasePeriod(mediaPeriod);
mediaPeriod = null;
}
mediaSource.releaseSource();
mediaSource = null;
}
}
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment