2015-10-05 129 views
0

我一直在修改示例视频播放器代码;示例代码从节目资源目录播放视频。我将视频复制到手机的/ storage/emulated/0/DCIM /目录并添加三行:从android手机存储在videoView中打开视频的代码

String videoName1 = Environment.getExternalStorageDirectory()。getPath()+“/ DCIM/steprock”;

Uri videoUri = Uri.parse(videoName1);

videoView.setVideoURI(videoUri);

取代:

videoView.setVideoURI(Uri.parse( “android.resource://” + getPackageName()+ “/” + R.raw.steprock));

此更改导致找不到文件错误。该视频位于手机存储DCIM目录中。我也尝试将.mp4添加到视频名称。

在调试模式下的URI似乎是正确的值:/存储/模拟/ 0/DCIM/steprock

谁能当场码错误?部分列表如下:

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

    final VideoView videoView = (VideoView) findViewById(R.id.video_view); 
    String videoName1 = Environment.getExternalStorageDirectory().getPath()+"/DCIM/steprock"; 
    Uri videoUri = Uri.parse(videoName1); 
    videoView.setVideoURI(videoUri); 
    //videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.steprock)); 

回答

1

我发现错误,忘记添加下面的读取权限清单:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission> 
<application ... 
0

这是从视频中描述视频的路径播放视频的代码。

// Video path. 
path = Environment.getExternalStorageDirectory().getPath()+"/DCIM/steprock.mp4"; 
videoView = (VideoView) findViewById(R.id.video_view); 
final MediaController mediaController = new MediaController(this); 

mediaController.setAnchorView(videoView); 

Uri uri = Uri.parse(path); 

videoView.setMediaController(mediaController); 
videoView.setVideoURI(uri); 
videoView.requestFocus(); 
videoView.start();