有没有办法从我的活动中播放流媒体YouTube视频?

时间:2011-11-04 16:22:47

标签: android youtube streaming video-streaming android-videoview

在我的Android应用中的某个地方,我想播放YouTube视频, 在我的活动中,在一个小视图中。 我正在尝试使用 VideoView 执行此操作,但到目前为止没有运气..

我写了一个简单的活动,到目前为止这是我的代码:

public class MainView extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    VideoView videoView = (VideoView) findViewById(R.id.VideoView);
    MediaController mediaController = new MediaController(this);
    mediaController.setAnchorView(videoView);
    /*working good but IT'S NOT youtube*/ //Uri video = Uri.parse("http://commonsware.com/misc/test2.3gp"); 
    /*NOT WORKING*/ //Uri video = Uri.parse("http://www.youtube.com/watch?v=hLQl3WQQoQ0&ob=av2e");
    /*NOT WORKING (RTSP)*/ //Uri video = U-ri.parse("http://m.youtube.com/watch?gl=IL&hl=en&client=mv-google&feature=grec_mobile&v=6WHRxXY67UA");
    /*NOT WORKING (RTSP)*/Uri video = Uri.parse("http://m.youtube.com/watch?gl=IL&hl=en&client=mv-google&v=wWub_aXPCVg");
    videoView.setMediaController(mediaController);
    videoView.setVideoURI(video);
    videoView.start();
   }
}

有可能吗? 有没有其他SDK组件可以做到这一点? 任何想法?

谢谢, Amitos80

3 个答案:

答案 0 :(得分:0)

如果您知道要查看的视频,可以使用其中的网址创建一个Intent并使用它来启动Youtube应用。您可以查看此SO Post了解更多详情。

答案 1 :(得分:0)

谷歌将在未来几个月内发布针对YouTube的Android组件,希望到2012年底。

我在此期间正在做的是使用带有loadData()的WebView,并按照YoUTube API页面上的说明传入IFrame。 Iframe非常有限(大多数参数甚至都不起作用,比如controls = 0),所以如果你需要更多的灵活性,比如控制视图,那么使用JavaScript API,然后将JavaScript嵌入你传递给loadData的HTMl中。

我尝试过媒体控制器并且无法使其工作,即使YouTube在自己的应用中使用它。

另一件我尝试过的事情。是使用谷歌搜索apis。您可以指定一个YouTube视频,它会为您提供缩略图,视频等的URL。这样您就可以访问原始文件(www.youtube.com/...../..../myfile.3gp而不是呼叫网页。然后,这些可以在MediaController中加载。

答案 2 :(得分:0)

您只需在videoview中使用youtube rtsp链接:

    String myurl="rtsp://v4.cache4.c.youtube.com/CjYLENy73wIaLQk_ezfHQ9mvqRMYDSANFEIJbXYtZ29vZ2xlSARSBXdhdGNoYN-__7O28NSPUAw=/0/0/0/video.3gp";     

        Uri video = Uri.parse(myurl);
        mVideoView = new VideoView(this);           
        mVideoView.setVideoURI(video);
        myMediaController = new MediaController(this);

它对我来说很简单。