在Android设备上播放视频

时间:2015-06-11 01:12:02

标签: android video android-videoview

我搜索了每个资源的每个地方,我几乎尝试了所有的东西,但由于某种原因我的Android设备不想在应用程序上播放视频。我尝试将格式更改为3gp和mp4,当我启动应用程序时,它只是说视频无法播放。视频在我的手机中我不知道路径是错误还是别的!

这是我的代码:

  protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        VideoView vid = (VideoView) findViewById(R.id.video);
        vid.setVideoPath("/Phone/Movies/INSTA_Segment_0_x264.mp4");
        vid.setMediaController(new MediaController(this));
        vid.start();
        vid.requestFocus();
    }

1 个答案:

答案 0 :(得分:1)

主要活动

package com.yournameproject;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.res.Configuration;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnPreparedListener;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.widget.MediaController;
import android.widget.VideoView;

public class yournameclass extends Activity {

private VideoView myVideoView;
private int position = 0;
private ProgressDialog progressDialog;
private MediaController mediaControls;

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // set the main layout of the activity
    setContentView(R.layout.activity_main);

    //set the media controller buttons
    if (mediaControls == null) {
        mediaControls = new MediaController(yournameclass.this);
    }

    //initialize the VideoView
    myVideoView = (VideoView) findViewById(R.id.video_view);

    // create a progress bar while the video file is loading
    progressDialog = new ProgressDialog(AndroidVideoViewExample.this);
    // set a title for the progress bar
    progressDialog.setTitle("Android Video View Example");
    // set a message for the progress bar
    progressDialog.setMessage("Loading...");
    //set the progress bar not cancelable on users' touch
    progressDialog.setCancelable(false);
    // show the progress bar
    progressDialog.show();

    try {
        //set the media controller in the VideoView
        myVideoView.setMediaController(mediaControls);

        //set the uri of the video to be played
        myVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.kitkat));

    } catch (Exception e) {
        Log.e("Error", e.getMessage());
        e.printStackTrace();
    }

    myVideoView.requestFocus();
    //we also set an setOnPreparedListener in order to know when the video file is ready for playback
    myVideoView.setOnPreparedListener(new OnPreparedListener() {

        public void onPrepared(MediaPlayer mediaPlayer) {
            // close the progress bar and play the video
            progressDialog.dismiss();
            //if we have a position on savedInstanceState, the video playback should start from here
            myVideoView.seekTo(position);
            if (position == 0) {
                myVideoView.start();
            } else {
                //if we come from a resumed activity, video playback will be paused
                myVideoView.pause();
            }
        }
    });

}

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    super.onSaveInstanceState(savedInstanceState);
    //we use onSaveInstanceState in order to store the video playback position for orientation change
    savedInstanceState.putInt("Position", myVideoView.getCurrentPosition());
    myVideoView.pause();
}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    //we use onRestoreInstanceState in order to play the video playback from the stored position 
    position = savedInstanceState.getInt("Position");
    myVideoView.seekTo(position);
}
}

希望这有用

相关问题