Начало активности после завершения воспроизведения видео - PullRequest
2 голосов
/ 06 сентября 2011

В моем приложении для Android я пытаюсь просто вернуться к своей основной активности после завершения воспроизведения моего видео. Я перепробовал много обходных путей, но не могу найти способ вызвать StartActivity из видео onCompletionListener - я получаю сообщение об ошибке «не могу сделать статическую ссылку на нестатический метод startActivity (Intent) из типа Activity».

Я попытался получить контекст из Activity, который предшествовал videoView, и передать его в intent / startActivity. Это позволило приложению скомпилироваться, но затем я получил исключение времени выполнения.

Вот код в его нынешнем виде, который получает ошибку «не могу сделать статическую ссылку» - любая помощь будет принята!

public class Videoscreen extends Activity{

public static VideoView myVideoView;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.videoplay);
    myVideoView = (VideoView) findViewById(R.id.main_videoview);
    System.out.println("playing video oncreate");
    playVideo();
}
public static void playVideo(){

    // video finish listener
    myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

        @Override
        public void onCompletion(MediaPlayer vmp) {
            Intent intent = new Intent();
            intent.setClass(Videoscreen.this, Game.class);
            Videoscreen.startActivity(intent);
        }
    }); 

    String low_word = SpellingView.get_low_word();
    Uri bubblesUri = Uri.parse("android.resource://org.lalloinc.ilovetrucks/raw/"+ low_word + "_vid");
    myVideoView.setVideoURI(bubblesUri);
    myVideoView.start();

}

}

Ответы [ 2 ]

0 голосов
/ 24 июля 2014

Если вы запустили Видео-Активность из Активности, к которой вы хотели бы вернуться позже, достаточно выполнить вызов Finish () в конце видео.

Повторный запуск основной Активности создаетне обязательно требуется стек действий.

0 голосов
/ 06 сентября 2011

Если вы знаете время видео, то вы пытаетесь:

String uri1 = "android.resource://" + getPackageName() + "/" + R.raw.race3;
        vd.setVideoURI(Uri.parse(uri1)); 
        vd.start();

new Thread() {
             public void run() {
                     try{

                             sleep(50000);
                     } catch (Exception e) {

                     }
                   Intent intent = new Intent(Video.this, Another.class);
                   startActivity(intent);
                   finish();
             }
     }.start();

, если вы не знаете время, тогда вы получаете время как:

int vtime = vd.getDuration();

И затемво сне потока вы просто помещаете это целое число.

...