move onPlaybackStart and onPlaybackPause tasks to separate callback methods
This commit is contained in:
parent
d18cf41f20
commit
19a647226d
@ -1,6 +1,8 @@
|
|||||||
package de.test.antennapod.service.playback;
|
package de.test.antennapod.service.playback;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
|
import android.support.annotation.StringRes;
|
||||||
import android.test.InstrumentationTestCase;
|
import android.test.InstrumentationTestCase;
|
||||||
|
|
||||||
import junit.framework.AssertionFailedError;
|
import junit.framework.AssertionFailedError;
|
||||||
@ -113,7 +115,7 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
|
|
||||||
public void testInit() {
|
public void testInit() {
|
||||||
final Context c = getInstrumentation().getTargetContext();
|
final Context c = getInstrumentation().getTargetContext();
|
||||||
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, defaultCallback);
|
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, new DefaultPSMPCallback());
|
||||||
psmp.shutdown();
|
psmp.shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,7 +141,7 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
public void testPlayMediaObjectStreamNoStartNoPrepare() throws InterruptedException {
|
public void testPlayMediaObjectStreamNoStartNoPrepare() throws InterruptedException {
|
||||||
final Context c = getInstrumentation().getTargetContext();
|
final Context c = getInstrumentation().getTargetContext();
|
||||||
final CountDownLatch countDownLatch = new CountDownLatch(2);
|
final CountDownLatch countDownLatch = new CountDownLatch(2);
|
||||||
PlaybackServiceMediaPlayer.PSMPCallback callback = new PlaybackServiceMediaPlayer.PSMPCallback() {
|
PlaybackServiceMediaPlayer.PSMPCallback callback = new DefaultPSMPCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
||||||
try {
|
try {
|
||||||
@ -160,56 +162,6 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
assertionError = e;
|
assertionError = e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void shouldStop() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void playbackSpeedChanged(float s) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSpeedAbilityChanged() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMediaChanged(boolean reloadUI) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBufferingUpdate(int percent) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerInfo(int code, int resourceId) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerError(Object inObj, int what, int extra) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPostPlayback(Playable media, boolean ended, boolean playingNext) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Playable getNextInQueue(Playable currentMedia) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlaybackEnded(MediaType mediaType, boolean stopPlaying) {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
||||||
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, null);
|
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, null);
|
||||||
@ -227,7 +179,7 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
public void testPlayMediaObjectStreamStartNoPrepare() throws InterruptedException {
|
public void testPlayMediaObjectStreamStartNoPrepare() throws InterruptedException {
|
||||||
final Context c = getInstrumentation().getTargetContext();
|
final Context c = getInstrumentation().getTargetContext();
|
||||||
final CountDownLatch countDownLatch = new CountDownLatch(2);
|
final CountDownLatch countDownLatch = new CountDownLatch(2);
|
||||||
PlaybackServiceMediaPlayer.PSMPCallback callback = new PlaybackServiceMediaPlayer.PSMPCallback() {
|
PlaybackServiceMediaPlayer.PSMPCallback callback = new DefaultPSMPCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
||||||
try {
|
try {
|
||||||
@ -248,56 +200,6 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
assertionError = e;
|
assertionError = e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void shouldStop() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void playbackSpeedChanged(float s) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSpeedAbilityChanged() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMediaChanged(boolean reloadUI) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBufferingUpdate(int percent) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerInfo(int code, int resourceId) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerError(Object inObj, int what, int extra) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPostPlayback(Playable media, boolean ended, boolean playingNext) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Playable getNextInQueue(Playable currentMedia) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlaybackEnded(MediaType mediaType, boolean stopPlaying) {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
||||||
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, null);
|
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, null);
|
||||||
@ -316,7 +218,7 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
public void testPlayMediaObjectStreamNoStartPrepare() throws InterruptedException {
|
public void testPlayMediaObjectStreamNoStartPrepare() throws InterruptedException {
|
||||||
final Context c = getInstrumentation().getTargetContext();
|
final Context c = getInstrumentation().getTargetContext();
|
||||||
final CountDownLatch countDownLatch = new CountDownLatch(4);
|
final CountDownLatch countDownLatch = new CountDownLatch(4);
|
||||||
PlaybackServiceMediaPlayer.PSMPCallback callback = new PlaybackServiceMediaPlayer.PSMPCallback() {
|
PlaybackServiceMediaPlayer.PSMPCallback callback = new DefaultPSMPCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
||||||
try {
|
try {
|
||||||
@ -340,56 +242,6 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
assertionError = e;
|
assertionError = e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void shouldStop() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void playbackSpeedChanged(float s) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSpeedAbilityChanged() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMediaChanged(boolean reloadUI) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBufferingUpdate(int percent) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerInfo(int code, int resourceId) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerError(Object inObj, int what, int extra) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPostPlayback(Playable media, boolean ended, boolean playingNext) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Playable getNextInQueue(Playable currentMedia) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlaybackEnded(MediaType mediaType, boolean stopPlaying) {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
||||||
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, null);
|
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, null);
|
||||||
@ -406,7 +258,7 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
public void testPlayMediaObjectStreamStartPrepare() throws InterruptedException {
|
public void testPlayMediaObjectStreamStartPrepare() throws InterruptedException {
|
||||||
final Context c = getInstrumentation().getTargetContext();
|
final Context c = getInstrumentation().getTargetContext();
|
||||||
final CountDownLatch countDownLatch = new CountDownLatch(5);
|
final CountDownLatch countDownLatch = new CountDownLatch(5);
|
||||||
PlaybackServiceMediaPlayer.PSMPCallback callback = new PlaybackServiceMediaPlayer.PSMPCallback() {
|
PlaybackServiceMediaPlayer.PSMPCallback callback = new DefaultPSMPCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
||||||
try {
|
try {
|
||||||
@ -433,57 +285,6 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
assertionError = e;
|
assertionError = e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void shouldStop() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void playbackSpeedChanged(float s) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSpeedAbilityChanged() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMediaChanged(boolean reloadUI) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBufferingUpdate(int percent) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerInfo(int code, int resourceId) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerError(Object inObj, int what, int extra) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPostPlayback(Playable media, boolean ended, boolean playingNext) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Playable getNextInQueue(Playable currentMedia) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlaybackEnded(MediaType mediaType, boolean stopPlaying) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
};
|
||||||
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
||||||
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, null);
|
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, null);
|
||||||
@ -499,7 +300,7 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
public void testPlayMediaObjectLocalNoStartNoPrepare() throws InterruptedException {
|
public void testPlayMediaObjectLocalNoStartNoPrepare() throws InterruptedException {
|
||||||
final Context c = getInstrumentation().getTargetContext();
|
final Context c = getInstrumentation().getTargetContext();
|
||||||
final CountDownLatch countDownLatch = new CountDownLatch(2);
|
final CountDownLatch countDownLatch = new CountDownLatch(2);
|
||||||
PlaybackServiceMediaPlayer.PSMPCallback callback = new PlaybackServiceMediaPlayer.PSMPCallback() {
|
PlaybackServiceMediaPlayer.PSMPCallback callback = new DefaultPSMPCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
||||||
try {
|
try {
|
||||||
@ -520,57 +321,6 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
assertionError = e;
|
assertionError = e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void shouldStop() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void playbackSpeedChanged(float s) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSpeedAbilityChanged() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMediaChanged(boolean reloadUI) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBufferingUpdate(int percent) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerInfo(int code, int resourceId) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerError(Object inObj, int what, int extra) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPostPlayback(Playable media, boolean ended, boolean playingNext) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Playable getNextInQueue(Playable currentMedia) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlaybackEnded(MediaType mediaType, boolean stopPlaying) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
};
|
||||||
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
||||||
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, PLAYABLE_LOCAL_URL);
|
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, PLAYABLE_LOCAL_URL);
|
||||||
@ -587,7 +337,7 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
public void testPlayMediaObjectLocalStartNoPrepare() throws InterruptedException {
|
public void testPlayMediaObjectLocalStartNoPrepare() throws InterruptedException {
|
||||||
final Context c = getInstrumentation().getTargetContext();
|
final Context c = getInstrumentation().getTargetContext();
|
||||||
final CountDownLatch countDownLatch = new CountDownLatch(2);
|
final CountDownLatch countDownLatch = new CountDownLatch(2);
|
||||||
PlaybackServiceMediaPlayer.PSMPCallback callback = new PlaybackServiceMediaPlayer.PSMPCallback() {
|
PlaybackServiceMediaPlayer.PSMPCallback callback = new DefaultPSMPCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
||||||
try {
|
try {
|
||||||
@ -608,56 +358,6 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
assertionError = e;
|
assertionError = e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void shouldStop() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void playbackSpeedChanged(float s) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSpeedAbilityChanged() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMediaChanged(boolean reloadUI) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBufferingUpdate(int percent) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerInfo(int code, int resourceId) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerError(Object inObj, int what, int extra) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPostPlayback(Playable media, boolean ended, boolean playingNext) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Playable getNextInQueue(Playable currentMedia) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlaybackEnded(MediaType mediaType, boolean stopPlaying) {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
||||||
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, PLAYABLE_LOCAL_URL);
|
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, PLAYABLE_LOCAL_URL);
|
||||||
@ -674,7 +374,7 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
public void testPlayMediaObjectLocalNoStartPrepare() throws InterruptedException {
|
public void testPlayMediaObjectLocalNoStartPrepare() throws InterruptedException {
|
||||||
final Context c = getInstrumentation().getTargetContext();
|
final Context c = getInstrumentation().getTargetContext();
|
||||||
final CountDownLatch countDownLatch = new CountDownLatch(4);
|
final CountDownLatch countDownLatch = new CountDownLatch(4);
|
||||||
PlaybackServiceMediaPlayer.PSMPCallback callback = new PlaybackServiceMediaPlayer.PSMPCallback() {
|
PlaybackServiceMediaPlayer.PSMPCallback callback = new DefaultPSMPCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
||||||
try {
|
try {
|
||||||
@ -698,56 +398,6 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
assertionError = e;
|
assertionError = e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void shouldStop() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void playbackSpeedChanged(float s) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSpeedAbilityChanged() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMediaChanged(boolean reloadUI) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBufferingUpdate(int percent) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerInfo(int code, int resourceId) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerError(Object inObj, int what, int extra) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPostPlayback(Playable media, boolean ended, boolean playingNext) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Playable getNextInQueue(Playable currentMedia) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlaybackEnded(MediaType mediaType, boolean stopPlaying) {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
||||||
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, PLAYABLE_LOCAL_URL);
|
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, PLAYABLE_LOCAL_URL);
|
||||||
@ -763,7 +413,7 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
public void testPlayMediaObjectLocalStartPrepare() throws InterruptedException {
|
public void testPlayMediaObjectLocalStartPrepare() throws InterruptedException {
|
||||||
final Context c = getInstrumentation().getTargetContext();
|
final Context c = getInstrumentation().getTargetContext();
|
||||||
final CountDownLatch countDownLatch = new CountDownLatch(5);
|
final CountDownLatch countDownLatch = new CountDownLatch(5);
|
||||||
PlaybackServiceMediaPlayer.PSMPCallback callback = new PlaybackServiceMediaPlayer.PSMPCallback() {
|
PlaybackServiceMediaPlayer.PSMPCallback callback = new DefaultPSMPCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
||||||
try {
|
try {
|
||||||
@ -791,56 +441,6 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
countDownLatch.countDown();
|
countDownLatch.countDown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void shouldStop() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void playbackSpeedChanged(float s) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSpeedAbilityChanged() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMediaChanged(boolean reloadUI) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBufferingUpdate(int percent) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerInfo(int code, int resourceId) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerError(Object inObj, int what, int extra) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPostPlayback(Playable media, boolean ended, boolean playingNext) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Playable getNextInQueue(Playable currentMedia) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlaybackEnded(MediaType mediaType, boolean stopPlaying) {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
||||||
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, PLAYABLE_LOCAL_URL);
|
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, PLAYABLE_LOCAL_URL);
|
||||||
@ -853,68 +453,12 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
psmp.shutdown();
|
psmp.shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private final PlaybackServiceMediaPlayer.PSMPCallback defaultCallback = new PlaybackServiceMediaPlayer.PSMPCallback() {
|
|
||||||
@Override
|
|
||||||
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
|
||||||
checkPSMPInfo(newInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void shouldStop() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void playbackSpeedChanged(float s) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSpeedAbilityChanged() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMediaChanged(boolean reloadUI) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBufferingUpdate(int percent) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerInfo(int code, int resourceId) { return false; }
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerError(Object inObj, int what, int extra) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPostPlayback(Playable media, boolean ended, boolean playingNext) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Playable getNextInQueue(Playable currentMedia) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlaybackEnded(MediaType mediaType, boolean stopPlaying) {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
private void pauseTestSkeleton(final PlayerStatus initialState, final boolean stream, final boolean abandonAudioFocus, final boolean reinit, long timeoutSeconds) throws InterruptedException {
|
private void pauseTestSkeleton(final PlayerStatus initialState, final boolean stream, final boolean abandonAudioFocus, final boolean reinit, long timeoutSeconds) throws InterruptedException {
|
||||||
final Context c = getInstrumentation().getTargetContext();
|
final Context c = getInstrumentation().getTargetContext();
|
||||||
final int latchCount = (stream && reinit) ? 2 : 1;
|
final int latchCount = (stream && reinit) ? 2 : 1;
|
||||||
final CountDownLatch countDownLatch = new CountDownLatch(latchCount);
|
final CountDownLatch countDownLatch = new CountDownLatch(latchCount);
|
||||||
|
|
||||||
PlaybackServiceMediaPlayer.PSMPCallback callback = new PlaybackServiceMediaPlayer.PSMPCallback() {
|
PlaybackServiceMediaPlayer.PSMPCallback callback = new DefaultPSMPCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
||||||
checkPSMPInfo(newInfo);
|
checkPSMPInfo(newInfo);
|
||||||
@ -953,52 +497,12 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
assertionError = new AssertionFailedError("Unexpected call to shouldStop");
|
assertionError = new AssertionFailedError("Unexpected call to shouldStop");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void playbackSpeedChanged(float s) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSpeedAbilityChanged() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMediaChanged(boolean reloadUI) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBufferingUpdate(int percent) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerInfo(int code, int resourceId) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onMediaPlayerError(Object inObj, int what, int extra) {
|
public boolean onMediaPlayerError(Object inObj, int what, int extra) {
|
||||||
if (assertionError == null)
|
if (assertionError == null)
|
||||||
assertionError = new AssertionFailedError("Unexpected call to onMediaPlayerError");
|
assertionError = new AssertionFailedError("Unexpected call to onMediaPlayerError");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPostPlayback(Playable media, boolean ended, boolean playingNext) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Playable getNextInQueue(Playable currentMedia) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlaybackEnded(MediaType mediaType, boolean stopPlaying) {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
||||||
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, PLAYABLE_LOCAL_URL);
|
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, PLAYABLE_LOCAL_URL);
|
||||||
@ -1055,7 +559,7 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
(initialState == PlayerStatus.PREPARED) ? 1 : 0;
|
(initialState == PlayerStatus.PREPARED) ? 1 : 0;
|
||||||
final CountDownLatch countDownLatch = new CountDownLatch(latchCount);
|
final CountDownLatch countDownLatch = new CountDownLatch(latchCount);
|
||||||
|
|
||||||
PlaybackServiceMediaPlayer.PSMPCallback callback = new PlaybackServiceMediaPlayer.PSMPCallback() {
|
PlaybackServiceMediaPlayer.PSMPCallback callback = new DefaultPSMPCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
||||||
checkPSMPInfo(newInfo);
|
checkPSMPInfo(newInfo);
|
||||||
@ -1073,36 +577,6 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void shouldStop() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void playbackSpeedChanged(float s) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSpeedAbilityChanged() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMediaChanged(boolean reloadUI) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBufferingUpdate(int percent) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerInfo(int code, int resourceId) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onMediaPlayerError(Object inObj, int what, int extra) {
|
public boolean onMediaPlayerError(Object inObj, int what, int extra) {
|
||||||
if (assertionError == null) {
|
if (assertionError == null) {
|
||||||
@ -1110,21 +584,6 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPostPlayback(Playable media, boolean ended, boolean playingNext) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Playable getNextInQueue(Playable currentMedia) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlaybackEnded(MediaType mediaType, boolean stopPlaying) {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
||||||
if (initialState == PlayerStatus.PREPARED || initialState == PlayerStatus.PLAYING || initialState == PlayerStatus.PAUSED) {
|
if (initialState == PlayerStatus.PREPARED || initialState == PlayerStatus.PLAYING || initialState == PlayerStatus.PAUSED) {
|
||||||
@ -1158,7 +617,7 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
final Context c = getInstrumentation().getTargetContext();
|
final Context c = getInstrumentation().getTargetContext();
|
||||||
final int latchCount = 1;
|
final int latchCount = 1;
|
||||||
final CountDownLatch countDownLatch = new CountDownLatch(latchCount);
|
final CountDownLatch countDownLatch = new CountDownLatch(latchCount);
|
||||||
PlaybackServiceMediaPlayer.PSMPCallback callback = new PlaybackServiceMediaPlayer.PSMPCallback() {
|
PlaybackServiceMediaPlayer.PSMPCallback callback = new DefaultPSMPCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
||||||
checkPSMPInfo(newInfo);
|
checkPSMPInfo(newInfo);
|
||||||
@ -1172,37 +631,6 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
countDownLatch.countDown();
|
countDownLatch.countDown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void shouldStop() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void playbackSpeedChanged(float s) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSpeedAbilityChanged() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMediaChanged(boolean reloadUI) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBufferingUpdate(int percent) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerInfo(int code, int resourceId) {
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -1211,21 +639,6 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
assertionError = new AssertionFailedError("Unexpected call to onMediaPlayerError");
|
assertionError = new AssertionFailedError("Unexpected call to onMediaPlayerError");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPostPlayback(Playable media, boolean ended, boolean playingNext) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Playable getNextInQueue(Playable currentMedia) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlaybackEnded(MediaType mediaType, boolean stopPlaying) {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
||||||
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, PLAYABLE_LOCAL_URL);
|
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, PLAYABLE_LOCAL_URL);
|
||||||
@ -1273,7 +686,7 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
final Context c = getInstrumentation().getTargetContext();
|
final Context c = getInstrumentation().getTargetContext();
|
||||||
final int latchCount = 2;
|
final int latchCount = 2;
|
||||||
final CountDownLatch countDownLatch = new CountDownLatch(latchCount);
|
final CountDownLatch countDownLatch = new CountDownLatch(latchCount);
|
||||||
PlaybackServiceMediaPlayer.PSMPCallback callback = new PlaybackServiceMediaPlayer.PSMPCallback() {
|
PlaybackServiceMediaPlayer.PSMPCallback callback = new DefaultPSMPCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
public void statusChanged(LocalPSMP.PSMPInfo newInfo) {
|
||||||
checkPSMPInfo(newInfo);
|
checkPSMPInfo(newInfo);
|
||||||
@ -1289,57 +702,12 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void shouldStop() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void playbackSpeedChanged(float s) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSpeedAbilityChanged() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMediaChanged(boolean reloadUI) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBufferingUpdate(int percent) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMediaPlayerInfo(int code, int resourceId) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onMediaPlayerError(Object inObj, int what, int extra) {
|
public boolean onMediaPlayerError(Object inObj, int what, int extra) {
|
||||||
if (assertionError == null)
|
if (assertionError == null)
|
||||||
assertionError = new AssertionFailedError("Unexpected call to onMediaPlayerError");
|
assertionError = new AssertionFailedError("Unexpected call to onMediaPlayerError");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPostPlayback(Playable media, boolean ended, boolean playingNext) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Playable getNextInQueue(Playable currentMedia) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlaybackEnded(MediaType mediaType, boolean stopPlaying) {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
PlaybackServiceMediaPlayer psmp = new LocalPSMP(c, callback);
|
||||||
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, PLAYABLE_LOCAL_URL);
|
Playable p = writeTestPlayable(PLAYABLE_FILE_URL, PLAYABLE_LOCAL_URL);
|
||||||
@ -1378,4 +746,71 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
|
|||||||
super("Unexpected state change: " + status);
|
super("Unexpected state change: " + status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class DefaultPSMPCallback implements PlaybackServiceMediaPlayer.PSMPCallback {
|
||||||
|
@Override
|
||||||
|
public void statusChanged(PlaybackServiceMediaPlayer.PSMPInfo newInfo) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void shouldStop() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void playbackSpeedChanged(float s) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSpeedAbilityChanged() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBufferingUpdate(int percent) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMediaChanged(boolean reloadUI) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onMediaPlayerInfo(int code, @StringRes int resourceId) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onMediaPlayerError(Object inObj, int what, int extra) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPostPlayback(@NonNull Playable media, boolean ended, boolean playingNext) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPlaybackStart(@NonNull Playable playable, int position) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPlaybackPause(@NonNull Playable playable, int position) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Playable getNextInQueue(Playable currentMedia) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPlaybackEnded(MediaType mediaType, boolean stopPlaying) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -140,14 +140,12 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer {
|
|||||||
}
|
}
|
||||||
// set temporarily to pause in order to update list with current position
|
// set temporarily to pause in order to update list with current position
|
||||||
if (playerStatus == PlayerStatus.PLAYING) {
|
if (playerStatus == PlayerStatus.PLAYING) {
|
||||||
setPlayerStatus(PlayerStatus.PAUSED, media);
|
callback.onPlaybackPause(media, getPosition());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!media.getIdentifier().equals(playable.getIdentifier())) {
|
if (!media.getIdentifier().equals(playable.getIdentifier())) {
|
||||||
final Playable oldMedia = media;
|
final Playable oldMedia = media;
|
||||||
executor.submit(() -> callback.onPostPlayback(oldMedia, false, true));
|
executor.submit(() -> callback.onPostPlayback(oldMedia, false, true));
|
||||||
} else {
|
|
||||||
media.onPlaybackPause(context);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setPlayerStatus(PlayerStatus.INDETERMINATE, null);
|
setPlayerStatus(PlayerStatus.INDETERMINATE, null);
|
||||||
@ -204,6 +202,8 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer {
|
|||||||
audioFocusChangeListener, AudioManager.STREAM_MUSIC,
|
audioFocusChangeListener, AudioManager.STREAM_MUSIC,
|
||||||
AudioManager.AUDIOFOCUS_GAIN);
|
AudioManager.AUDIOFOCUS_GAIN);
|
||||||
if (focusGained == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
|
if (focusGained == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
|
||||||
|
Log.d(TAG, "Audiofocus successfully requested");
|
||||||
|
Log.d(TAG, "Resuming/Starting playback");
|
||||||
acquireWifiLockIfNecessary();
|
acquireWifiLockIfNecessary();
|
||||||
float speed = 1.0f;
|
float speed = 1.0f;
|
||||||
try {
|
try {
|
||||||
@ -223,10 +223,9 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer {
|
|||||||
}
|
}
|
||||||
mediaPlayer.start();
|
mediaPlayer.start();
|
||||||
|
|
||||||
|
callback.onPlaybackStart(media, INVALID_TIME);
|
||||||
setPlayerStatus(PlayerStatus.PLAYING, media);
|
setPlayerStatus(PlayerStatus.PLAYING, media);
|
||||||
pausedBecauseOfTransientAudiofocusLoss = false;
|
pausedBecauseOfTransientAudiofocusLoss = false;
|
||||||
media.onPlaybackStart();
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Log.e(TAG, "Failed to request audio focus");
|
Log.e(TAG, "Failed to request audio focus");
|
||||||
}
|
}
|
||||||
@ -254,8 +253,8 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer {
|
|||||||
if (playerStatus == PlayerStatus.PLAYING) {
|
if (playerStatus == PlayerStatus.PLAYING) {
|
||||||
Log.d(TAG, "Pausing playback.");
|
Log.d(TAG, "Pausing playback.");
|
||||||
mediaPlayer.pause();
|
mediaPlayer.pause();
|
||||||
|
callback.onPlaybackPause(media, getPosition());
|
||||||
setPlayerStatus(PlayerStatus.PAUSED, media);
|
setPlayerStatus(PlayerStatus.PAUSED, media);
|
||||||
media.onPlaybackPause(context.getApplicationContext());
|
|
||||||
|
|
||||||
if (abandonFocus) {
|
if (abandonFocus) {
|
||||||
audioManager.abandonAudioFocus(audioFocusChangeListener);
|
audioManager.abandonAudioFocus(audioFocusChangeListener);
|
||||||
@ -384,8 +383,7 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer {
|
|||||||
}
|
}
|
||||||
seekLatch = new CountDownLatch(1);
|
seekLatch = new CountDownLatch(1);
|
||||||
if (statusBeforeSeeking == PlayerStatus.PLAYING) {
|
if (statusBeforeSeeking == PlayerStatus.PLAYING) {
|
||||||
media.setPosition(getPosition());
|
callback.onPlaybackPause(media, getPosition());
|
||||||
media.onPlaybackPause(context);
|
|
||||||
}
|
}
|
||||||
mediaPlayer.seekTo(t);
|
mediaPlayer.seekTo(t);
|
||||||
try {
|
try {
|
||||||
@ -931,13 +929,12 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer {
|
|||||||
seekLatch.countDown();
|
seekLatch.countDown();
|
||||||
}
|
}
|
||||||
playerLock.lock();
|
playerLock.lock();
|
||||||
media.setPosition(getPosition());
|
|
||||||
if (playerStatus == PlayerStatus.PLAYING) {
|
if (playerStatus == PlayerStatus.PLAYING) {
|
||||||
media.onPlaybackStart();
|
callback.onPlaybackStart(media, getPosition());
|
||||||
}
|
}
|
||||||
if (playerStatus == PlayerStatus.SEEKING) {
|
if (playerStatus == PlayerStatus.SEEKING) {
|
||||||
if (statusBeforeSeeking == PlayerStatus.PLAYING) {
|
if (statusBeforeSeeking == PlayerStatus.PLAYING) {
|
||||||
media.onPlaybackStart();
|
callback.onPlaybackStart(media, getPosition());
|
||||||
}
|
}
|
||||||
setPlayerStatus(statusBeforeSeeking, media);
|
setPlayerStatus(statusBeforeSeeking, media);
|
||||||
}
|
}
|
||||||
|
@ -524,7 +524,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
|||||||
private final PlaybackServiceTaskManager.PSTMCallback taskManagerCallback = new PlaybackServiceTaskManager.PSTMCallback() {
|
private final PlaybackServiceTaskManager.PSTMCallback taskManagerCallback = new PlaybackServiceTaskManager.PSTMCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void positionSaverTick() {
|
public void positionSaverTick() {
|
||||||
saveCurrentPosition();
|
saveCurrentPosition(true, null, PlaybackServiceMediaPlayer.INVALID_TIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -576,9 +576,6 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case PAUSED:
|
case PAUSED:
|
||||||
taskManager.cancelPositionSaver();
|
|
||||||
saveCurrentPosition();
|
|
||||||
taskManager.cancelWidgetUpdater();
|
|
||||||
if ((UserPreferences.isPersistNotify() || isCasting) &&
|
if ((UserPreferences.isPersistNotify() || isCasting) &&
|
||||||
android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
||||||
// do not remove notification on pause based on user pref and whether android version supports expanded notifications
|
// do not remove notification on pause based on user pref and whether android version supports expanded notifications
|
||||||
@ -597,12 +594,6 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case PLAYING:
|
case PLAYING:
|
||||||
Log.d(TAG, "Audiofocus successfully requested");
|
|
||||||
Log.d(TAG, "Resuming/Starting playback");
|
|
||||||
|
|
||||||
taskManager.startPositionSaver();
|
|
||||||
taskManager.startWidgetUpdater();
|
|
||||||
writePlayerStatusPlaybackPreferences();
|
|
||||||
setupNotification(newInfo);
|
setupNotification(newInfo);
|
||||||
started = true;
|
started = true;
|
||||||
break;
|
break;
|
||||||
@ -677,10 +668,30 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPostPlayback(Playable media, boolean ended, boolean playingNext) {
|
public void onPostPlayback(@NonNull Playable media, boolean ended, boolean playingNext) {
|
||||||
PlaybackService.this.onPostPlayback(media, ended, playingNext);
|
PlaybackService.this.onPostPlayback(media, ended, playingNext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPlaybackStart(@NonNull Playable playable, int position) {
|
||||||
|
taskManager.startWidgetUpdater();
|
||||||
|
writePlayerStatusPlaybackPreferences();
|
||||||
|
if (position != PlaybackServiceMediaPlayer.INVALID_TIME) {
|
||||||
|
playable.setPosition(position);
|
||||||
|
}
|
||||||
|
playable.onPlaybackStart();
|
||||||
|
taskManager.startPositionSaver();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPlaybackPause(@NonNull Playable playable, int position) {
|
||||||
|
taskManager.cancelPositionSaver();
|
||||||
|
saveCurrentPosition(position == PlaybackServiceMediaPlayer.INVALID_TIME,
|
||||||
|
playable, position);
|
||||||
|
taskManager.cancelWidgetUpdater();
|
||||||
|
playable.onPlaybackPause(getApplicationContext());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Playable getNextInQueue(Playable currentMedia) {
|
public Playable getNextInQueue(Playable currentMedia) {
|
||||||
return PlaybackService.this.getNextInQueue(currentMedia);
|
return PlaybackService.this.getNextInQueue(currentMedia);
|
||||||
@ -1200,11 +1211,22 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Persists the current position and last played time of the media file.
|
* Persists the current position and last played time of the media file.
|
||||||
|
*
|
||||||
|
* @param fromMediaPlayer if true, the information is gathered from the current Media Player
|
||||||
|
* and {@param playable} and {@param position} become irrelevant.
|
||||||
|
* @param playable the playable for which the current position should be saved, unless
|
||||||
|
* {@param fromMediaPlayer} is true.
|
||||||
|
* @param position the position that should be saved, unless {@param fromMediaPlayer} is true.
|
||||||
*/
|
*/
|
||||||
private synchronized void saveCurrentPosition() {
|
private synchronized void saveCurrentPosition(boolean fromMediaPlayer, Playable playable, int position) {
|
||||||
int position = getCurrentPosition();
|
int duration;
|
||||||
int duration = getDuration();
|
if (fromMediaPlayer) {
|
||||||
final Playable playable = mediaPlayer.getPlayable();
|
position = getCurrentPosition();
|
||||||
|
duration = getDuration();
|
||||||
|
playable = mediaPlayer.getPlayable();
|
||||||
|
} else {
|
||||||
|
duration = playable.getDuration();
|
||||||
|
}
|
||||||
if (position != INVALID_TIME && duration != INVALID_TIME && playable != null) {
|
if (position != INVALID_TIME && duration != INVALID_TIME && playable != null) {
|
||||||
Log.d(TAG, "Saving current position to " + position);
|
Log.d(TAG, "Saving current position to " + position);
|
||||||
playable.saveCurrentPosition(
|
playable.saveCurrentPosition(
|
||||||
@ -1621,7 +1643,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
|||||||
PlaybackServiceMediaPlayer getMediaPlayer();
|
PlaybackServiceMediaPlayer getMediaPlayer();
|
||||||
void setIsCasting(boolean isCasting);
|
void setIsCasting(boolean isCasting);
|
||||||
void sendNotificationBroadcast(int type, int code);
|
void sendNotificationBroadcast(int type, int code);
|
||||||
void saveCurrentPosition();
|
void saveCurrentPosition(boolean fromMediaPlayer, Playable playable, int position);
|
||||||
void setupNotification(boolean connected, PlaybackServiceMediaPlayer.PSMPInfo info);
|
void setupNotification(boolean connected, PlaybackServiceMediaPlayer.PSMPInfo info);
|
||||||
MediaSessionCompat getMediaSession();
|
MediaSessionCompat getMediaSession();
|
||||||
Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter);
|
Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter);
|
||||||
@ -1655,8 +1677,8 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveCurrentPosition() {
|
public void saveCurrentPosition(boolean fromMediaPlayer, Playable playable, int position) {
|
||||||
PlaybackService.this.saveCurrentPosition();
|
PlaybackService.this.saveCurrentPosition(fromMediaPlayer, playable, position);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -301,7 +301,11 @@ public abstract class PlaybackServiceMediaPlayer {
|
|||||||
|
|
||||||
boolean onMediaPlayerError(Object inObj, int what, int extra);
|
boolean onMediaPlayerError(Object inObj, int what, int extra);
|
||||||
|
|
||||||
void onPostPlayback(Playable media, boolean ended, boolean playingNext);
|
void onPostPlayback(@NonNull Playable media, boolean ended, boolean playingNext);
|
||||||
|
|
||||||
|
void onPlaybackStart(@NonNull Playable playable, int position);
|
||||||
|
|
||||||
|
void onPlaybackPause(@NonNull Playable playable, int position);
|
||||||
|
|
||||||
Playable getNextInQueue(Playable currentMedia);
|
Playable getNextInQueue(Playable currentMedia);
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ public class PlaybackServiceFlavorHelper {
|
|||||||
// to the latest position.
|
// to the latest position.
|
||||||
PlaybackServiceMediaPlayer mediaPlayer = callback.getMediaPlayer();
|
PlaybackServiceMediaPlayer mediaPlayer = callback.getMediaPlayer();
|
||||||
if (mediaPlayer != null) {
|
if (mediaPlayer != null) {
|
||||||
callback.saveCurrentPosition();
|
callback.saveCurrentPosition(true, null, PlaybackServiceMediaPlayer.INVALID_TIME);
|
||||||
infoBeforeCastDisconnection = mediaPlayer.getPSMPInfo();
|
infoBeforeCastDisconnection = mediaPlayer.getPSMPInfo();
|
||||||
if (reason != BaseCastManager.DISCONNECT_REASON_EXPLICIT &&
|
if (reason != BaseCastManager.DISCONNECT_REASON_EXPLICIT &&
|
||||||
infoBeforeCastDisconnection.playerStatus == PlayerStatus.PLAYING) {
|
infoBeforeCastDisconnection.playerStatus == PlayerStatus.PLAYING) {
|
||||||
@ -160,7 +160,7 @@ public class PlaybackServiceFlavorHelper {
|
|||||||
// could be pause, but this way we make sure the new player will get the correct position,
|
// could be pause, but this way we make sure the new player will get the correct position,
|
||||||
// since pause runs asynchronously and we could be directing the new player to play even before
|
// since pause runs asynchronously and we could be directing the new player to play even before
|
||||||
// the old player gives us back the position.
|
// the old player gives us back the position.
|
||||||
callback.saveCurrentPosition();
|
callback.saveCurrentPosition(true, null, PlaybackServiceMediaPlayer.INVALID_TIME);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (info == null) {
|
if (info == null) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user