активность, которая воспроизводит видео и выходит из приложения, когда видео закончено - PullRequest
0 голосов
/ 04 июля 2018

В течение последних 18 месяцев я создавал простые приложения в Android Studio, и я действительно застрял, пытаясь решить эту проблему, поэтому любая помощь будет отличной

Пока мое приложение работает отлично, откройте приложение на первом занятии и нажмите кнопку воспроизведения, и второе занятие откроет и воспроизведет видео, в конце видео оно возвращается к первому занятию, но я пытаюсь выйти из приложения

думаю, что я смогу добавить что-то вроде

public void onCompletion(MediaPlayer player) {      
onStop();
onDestroy();

}






 public class PlayVideo extends Activity {

    boolean videoPlayed ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_play_video);


        View decorView = getWindow().getDecorView();
        decorView.setSystemUiVisibility(
                        View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
                        View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
                        View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
                        View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
                        View.SYSTEM_UI_FLAG_FULLSCREEN |
                        View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
        );

        videoPlayed = true;
        playvideo();
        FinishVideo();
   }

    public void playvideo() {


        VideoView videoview = (VideoView) findViewById(R.id.videoview);
        Uri uri = Uri.parse("android.resource://" + getPackageName() 
        + "/"+ R.raw.sound_2);
        videoview.setVideoURI(uri);
        videoview.start();
    }

    public void FinishVideo() {
        VideoView videoView = (VideoView) findViewById(R.id.videoview);
             videoView.setOnCompletionListener
    (newMediaPlayer.OnCompletionListener() {
            public void onCompletion(MediaPlayer player) {

                //Log.i("VideoView", "onCompletion()");
                //Intent intent = new  Intent
    (PlayVideo.this,MainActivity.class);
                //startActivity(intent);
                System.exit(0);

            }
        });


      }
  }

----------------------------------------------------------------------------

 <RelativeLayout xmlns:android=
  "http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".PlayVideo">


    <VideoView
        android:id="@+id/videoview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:layout_alignParentTop="true"
        />

 </RelativeLayout>

1 Ответ

0 голосов
/ 04 июля 2018

Вы должны finish() первое занятие при запуске второго занятия ,

startActivity(new Intent(FirstActivity.this, SecondActivity.class));
finish();

и после завершения воспроизведения видео во втором упражнении вы должны позвонить onBackPressed()

videoview.setVideoURI(uri);
videoview.start();
videoview.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    @Override
    public void onCompletion(MediaPlayer mediaPlayer) {
        onBackPressed();
    }
});

и вам не нужно вызывать FinishVideo() метод, вы можете установить setOnCompletionListener в playvideo() самом методе

...