Я использую класс Android MediaPlayer и пытаюсь написать контрольный пример, который проверяет, что вызывается метод onCompletion.
Я использую его для воспроизведения следующего трека после того, как предыдущий закончен.
Когда я запускаю приложение с помощью эмулятора (2.1 или 4.0), вызывается метод onCompletion, и начинается воспроизведение следующей дорожки, но в тестовом примере это не так.
Вот упрощенный код:
public class MediaPlayerControllerTest extends AndroidTestCase implements OnCompletionListener {
public void testContinuePlayNextTrack() {
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setOnCompletionListener(this);
try {
mediaPlayer.setDataSource("/mnt/sdcard/5749/01.mp3");
mediaPlayer.prepare();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mediaPlayer.start();
}
@Override
public void onCompletion(MediaPlayer mp) {
System.out.println("ON COMPLETION!!!!!");
}
}
Приведенный выше код обычно является частью класса MediPlayerController, который используется в приложении и тесте, поэтому это один и тот же класс. Я разбил проблему до нескольких строк кода выше.
Это стоило мне много часов. Надеюсь, у кого-то есть решение!
Большое спасибо !!!