如何在Android播放视频后停止视频播放器

时间:2013-04-30 22:00:07

标签: java android

我正在尝试从Android应用中的网站播放视频。我播放了视频,但我关注的有两件事:

  1. 当我在播放视频时旋转手机时,它会重新加载视频并从头开始。

  2. 视频结束后,似乎仍然在做某事,我无法按下后退按钮并返回上一个活动。

  3. Java文件:

    public class IntroVideo extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.intro_video);
        ActionBar actionBar = getActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
    
        try {
    
            String link = "http://northeastvision.org/vids/tube_rush.mp4";
            final VideoView video = (VideoView) findViewById(R.id.videoDisplay);
            final ProgressDialog mProgressDialog = new ProgressDialog(this);
            mProgressDialog.setMessage("Loading video Please wait...");
            mProgressDialog.setIndeterminate(true);
            mProgressDialog.setCancelable(false);
            mProgressDialog.show();
    
    
            video.setMediaController(new MediaController(IntroVideo.this));
            Uri uri = Uri.parse(link);
            video.setVideoURI(uri);
    
            video.setOnPreparedListener(new OnPreparedListener() {
    
                @Override
                public void onPrepared(MediaPlayer mp) {
    
                    video.start();
                    mProgressDialog.dismiss();
                }
                });
    
        }
        catch (Exception e) {
            Toast.makeText(this, "Error Connecting!", Toast.LENGTH_SHORT).show();
        }
        }
    

    布局

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="vertical" >
    
    <VideoView
            android:id="@+id/videoDisplay"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             />
    
    </RelativeLayout>
    

2 个答案:

答案 0 :(得分:0)

你可以做的一件事(那会为你做两件事:结束并回到上一个屏幕)将是:

video.setOnCompletionListener (new OnCompletionListener() {

        @Override
        public void onCompletion(MediaPlayer mp) {

            mp.release();
            this.finish();//kills current Activity
        }
 });

答案 1 :(得分:0)

1)防止重新加载旋转手机时将属性android:configChanges =“orientation | screenSize添加到你的Manifest.xml中

 <activity android:name="IntroVideo"
                android:configChanges="orientation|screenSize" />

2)释放与MediaPlayer相关的资源并完成活动。

 video.setOnCompletionListener (new OnCompletionListener() { 
        @Override 
         public void onCompletion(MediaPlayer mp) { 
         video.release() 
         this.finish(); 
          } 
    });

了解更多关于:

android:configChangesMediaPLayer.release():