2015-06-11 133 views
0

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

这里是我的代码:

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

在主要活动

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); 
} 
} 

希望这会有所帮助

相关问题