Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在videoview中播放youtube视频?_Android_Android Videoview_Android Video Player - Fatal编程技术网

Android 如何在videoview中播放youtube视频?

Android 如何在videoview中播放youtube视频?,android,android-videoview,android-video-player,Android,Android Videoview,Android Video Player,我使用此api代码在android videoview中播放youtube视频。它总是说我不播放。我使用多种方法打开它。我在stackoverflow.com中查找了许多有关此问题的问题,但我仍然不明白。我解决此问题的最后一个方法是。我使用以下方法: public static String getUrlVideoRTSP(String urlYoutube) { try { String gdy = "http://gdata.youtube.com/feeds/a

我使用此api代码在android videoview中播放youtube视频。它总是说我不播放。我使用多种方法打开它。我在stackoverflow.com中查找了许多有关此问题的问题,但我仍然不明白。我解决此问题的最后一个方法是。我使用以下方法:

public static String getUrlVideoRTSP(String urlYoutube) {
      try {
        String gdy = "http://gdata.youtube.com/feeds/api/videos/";
        DocumentBuilder documentBuilder = DocumentBuilderFactory
          .newInstance().newDocumentBuilder();
        String id = extractYoutubeId(urlYoutube);
        URL url = new URL(gdy+id);
        HttpURLConnection connection = (HttpURLConnection) url
          .openConnection();
        Document doc = documentBuilder.parse(connection.getInputStream());
        Element el = doc.getDocumentElement();
        NodeList list = el.getElementsByTagName("media:content");
        String cursor = urlYoutube;
        for (int i = 0; i < list.getLength(); i++) {
          Node node = list.item(i);
          if (node != null) {
            NamedNodeMap nodeMap = node.getAttributes();
            HashMap<String, String> maps = new HashMap<String, String>();
            for (int j = 0; j < nodeMap.getLength(); j++) {
              Attr att = (Attr) nodeMap.item(j);
              maps.put(att.getName(), att.getValue());
            }
            if (maps.containsKey("yt:format")) {
              String f = maps.get("yt:format");
              if (maps.containsKey("url"))
                cursor = maps.get("url");
              if (f.equals("1"))
                return cursor;
            }
          }
        }
        return cursor;
      } catch (Exception ex) {
        return urlYoutube;
      }  
    }
    public static String extractYoutubeId(String url) throws MalformedURLException {
        String query = new URL(url).getQuery();
        String[] param = query.split("&");
        String id = null;
        for (String row : param) {
          String[] param1 = row.split("=");
          if (param1[0].equals("v")) {
            id = param1[1];
          }
        }
        return id;
      }
但它仍然存在错误:无法播放此视频。我能做什么?
谢谢…

您打开的rstp url是什么?这个rtsp://v4.cache6.c.youtube.com/CiILENy73wIaGQnS-eD7W1GYdBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp ?
VideoView videoView = (VideoView) findViewById(R.id.videoView1);          
        String urlYoutube = "http://www.youtube.com/watch?v=dJhRW_vg-dI";
        String urlRtsp = getUrlVideoRTSP(urlYoutube);//Il metodo che abbiamo visto
        videoView.setVideoURI(Uri.parse(urlRtsp));
        MediaController controller = new MediaController(CaillouizleActivity.this);
        videoView.setMediaController(controller);
        videoView.start();