2010-08-30 1 views
0

Я использую по умолчанию Android Media Player в Activity, пытаясь воспроизвести пару видеофайлов. Однако у меня есть проблема с программированием, что я хочу. Желаемый результат программы будет следующим:Android Media Player Threading/Concurrency

  • Видеофайл воспроизводится
  • После этого появится диалоговое окно, предлагающее пользователю что-то
  • пауза 5 секунд происходит
  • Следующий видео показан
  • и так далее

Как я могу программировать это? В настоящее время я использую следующую парадигму:

  • У меня есть способ, который устанавливает плеер для файла, например. playVideo(int) Итак, я передаю ему первый файл.
  • Когда игрок подготовлен, он будет запущен в onPrepared(MediaPlayer).
  • Когда видео завершено, слушатель onCompletion(MediaPlayer) медиаплеера отображает диалог пользователю, вызывая showDialog().
  • Пользователь принимает диалоговое окно. Перед вызовом dismiss() в диалоговом окне объект игрока запускается для следующего файла, вызывая playVideo(int).

Это работает, но он чувствует себя немного причудливым и не чистым. И это, конечно, очень процедурно. Проблемы:

  • , что я не могу понять, как вставить паузу после отклонения диалога.
  • , что я, возможно, необходимо изменить порядок представления диалогов и видео, и это не так уж легко теперь

Кто-нибудь есть идея?

ответ

0

Для паузы вы можете использовать AlarmManager, чтобы запланировать будильник через пять секунд. Это запустит намерение, и это намерение может вызвать playVideo(int).

+0

Спасибо, однако я делаю все в пределах одной активности сейчас. Новое намерение означало бы запуск новой деятельности, верно? Итак, подведение итогов: это означает, что мне нужно будет показывать только одно видео для запуска активности, в 'onCompletion' видео показывается диалоговое окно, а при запуске' release() 'запускает новый (с задержкой)) Намерение. Это то, о чем вы думали? – slhck