3

我有这个视频: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();

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

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

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

谢谢!

4

2 回答 2

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();
于 2012-08-29T08:42:34.063 回答
0

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

如果您使用资源文件夹或 sdcard 中的视频文件(使用它们的路径)以及您的内容提供商使用它们的 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); 用于提供资源的路径。

于 2012-08-29T10:26:51.210 回答