显示来自url android的视频

时间:2012-08-29 08:36:56

标签: android video android-videoview

我有这个视频:http://www.youtube.com/v/oyB5QWcPSRo?version=3&f=user_uploads&app=youtube_gdata,我需要它在我的应用程序中播放,我已经使用videoView测试失败:有错误消息“无法播放视频”

MediaController mc = new MediaController(this);
mc.setAnchorView(vidYout);
mc.setMediaPlayer(vidYout);
Log.v("TAG","URL: "+YoutubeVO.url_video);
Uri video = Uri.parse("devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8");
//Uri video = Uri.parse(YoutubeVO.url_video);
vidYout.setMediaController(mc);
vidYout.setVideoURI(video);
vidYout.requestFocus();
vidYout.start();

如果问题出在视频中,我尝试更改网址,但不是。 我也试过使用webView失败了

wvComunicado.getSettings().setLoadWithOverviewMode(true);
wvComunicado.getSettings().setUseWideViewPort(true);
wvComunicado.loadData(YoutubeVO.url_video, "text/html" , "UTF-8");

关于如何玩它的任何想法?

谢谢!

2 个答案:

答案 0 :(得分:5)

添加requestFocus()方法:

MediaController mc = new MediaController(this);
mc.setAnchorView(vidYout);
mc.setMediaPlayer(vidYout);
Log.v("TAG","URL: "+YoutubeVO.url_video);
Uri video = Uri.parse("http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8");
// Uri video = Uri.parse(YoutubeVO.url_video);
vidYout.setMediaController(mc);
vidYout.setVideoURI(video);
vidYout.requestFocus();
vidYout.start();

这对我有用:

String path = "http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8";
video.setVideoURI(Uri.parse(path));

mediaController = new MediaController(this);
mediaController.setMediaPlayer(video);
video.setMediaController(mediaController);
video.requestFocus();
video.start();

答案 1 :(得分:0)

如在Android文档中所述,您只能从各种来源(例如资源内容提供商)加载图片或视频。

如果您使用资源文件夹或SD卡中的视频文件使用其路径,并使用其内容提供商使用其uri,则您的代码将有效。

以下代码为我工作:

try
        {


    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
                LinearLayout ll = (LinearLayout) findViewById(R.id.mLinearLayout);
                ll.setVisibility(View.VISIBLE);
                getWindow().setFormat(PixelFormat.TRANSLUCENT);
                VideoView vv = new VideoView(this);
                ll.addView(vv);
                vv.setMediaController(new MediaController(this));
                vv.setVideoURI(Uri.parse(Environment.getExternalStorageDirectory() + "/Movies/story.mp4"));

                vv.setSoundEffectsEnabled(true);
                vv.requestFocus();
                vv.start();
            }
            catch (Exception e)
            {
                Toast.makeText(this, "Exception :: "+e.getMessage(), Toast.LENGTH_SHORT).show();
                e.printStackTrace();
            }

注意:您也可以使用vv.setVideoPath(String path);用于提供资源的路径。