如何从Content Provider播放视频

时间:2015-02-16 10:06:35

标签: android video android-contentprovider android-videoview

我可能一直在使用错误的搜索标签,但在这里。 在我开发的应用程序中,用户可以上传图片和视频。

通过录音或图库。我目前正在尝试播放用户刚录制的视频。我在使用MediaStore.ACTION_VIDEO_CAPTURE进行意图后从Intent.getData()获取Uri。

公共

 void getCameraVideo() {
        Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
        if (takeVideoIntent.resolveActivity(ctx.getPackageManager()) != null) {
                ctx.startActivityForResult(takeVideoIntent, FETCHER_VIDEOCAMERA);
        } else {
            Toast.makeText(ctx, Language.translate("error_phone_has_no_camera_app"), Toast.LENGTH_LONG).show();
            ErrorClass.log("Tried to take video, but phone has no camera.");
        }
    }

所以我在视频中有这个内容Uri,现在我应该如何在VideoView中播放这个视频?我似乎找不到任何合适的解决方案。

我只是在我播放视频的活动中试过这个,但它只会导致黑色的VideoView。

view = new VideoView(activity);
((VideoView) view).setVideoURI(uri);
((VideoView) view).start();

我确定有人已经解决了这个问题,我似乎无法找到它。

3 个答案:

答案 0 :(得分:1)

提供代码段可以帮助我们解决您的问题,但现在就可以了。

由于您在活动中实现了此功能,因此您应该能够从布局中访问VideoView。因此我假设你应该能够做这样的事情......

String video_url = "some_url";
VideoView videoView = (VideoView)findViewById(R.id.video_view_id);
MediaController controls = new MediaController(YourActivityClassName.this);
videoView.setMediaController(controls);
videoView.setVideoURI(Uri.parse(video_url));
videoView.start();

希望这对你有所帮助。如果没有,请告诉我们,我们可以为您提供进一步的帮助。

P.S。查看android文档以获取有关videoview的更多信息: http://developer.android.com/reference/android/widget/VideoView.html

答案 1 :(得分:1)

尝试如下

view.setVideoURI(Uri.parse(path));
view.requestFocus();
view.setOnPreparedListener(new OnPreparedListener() {

        @Override
        public void onPrepared(MediaPlayer mp) {
         //start playing here
         mp.start();
        }
}

希望这会对你有所帮助。

答案 2 :(得分:0)

您可能需要调用videoView.play()来查看您的uri是否正确。