我可能一直在使用错误的搜索标签,但在这里。 在我开发的应用程序中,用户可以上传图片和视频。
通过录音或图库。我目前正在尝试播放用户刚录制的视频。我在使用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();
我确定有人已经解决了这个问题,我似乎无法找到它。
答案 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是否正确。