当前位置: 首页 > 知识库问答 >
问题:

使用VideoView播放高质量Youtube视频

欧阳飞
2023-03-14
    null

共有1个答案

慕高格
2023-03-14
    protected String[] extractLinks(String result) {
    //The title of the downloaded file
    String title = "bla bla bla";
    // An array of strings that will hold the links (in case of error, it will hold 1 string)
    String[] temper = new String[1];

    try{
        // Extract the "url_encoded_fmt_stream_map" attr from the flash object
        Pattern p = Pattern.compile("url_encoded_fmt_stream_map(.*?);");          
        Matcher m = p.matcher(result);
        List<String> matches = new ArrayList<String>();
        while(m.find()){
            matches.add(m.group().replace("url_encoded_fmt_stream_map=", "").replace(";", ""));                   
        }
        String[] streamMap = null;
        List<String> links = new ArrayList<String>();

        if(matches.get(0) != null &&  matches.get(0) != ""){
            // Split the "url_encoded_fmt_stream_map" into an array of strings that hold the link values
            streamMap = matches.get(0).split("%2C");
            for (int i = 0; i < streamMap.length; i++){
                String url = "";
                String sig = "";

                //Using regex, we will get the video url.
                Pattern p2 = Pattern.compile("url%3D(.*?)%26");       
                Matcher m2 = p2.matcher(streamMap[i]);
                List<String> matches2 = new ArrayList<String>();
                while(m2.find()){
                    // We don't need the "url=...&" part.
                    matches2.add(m2.group().substring(6, m2.group().length() - 3));
                }                     
                url = matches2.get(0);   

                //Using regex again, we will get the video signature.               
                p2 = Pattern.compile("sig%3D(.*?)%26");       
                m2 = p2.matcher(streamMap[i]);
                matches2 = new ArrayList<String>();
                while(m2.find()){
                // We don't need the "sig=...&" part.               
                    matches2.add(m2.group().substring(6, m2.group().length() - 3));
                }                     
                sig = matches2.get(0);   

                //Now lets add a link to our list. Link = url + sig + title.
                links.add(URLDecoder.decode(URLDecoder.decode(url + "&signature=", "UTF-8") + sig + "%26title%3D" + URLDecoder.decode(title, "UTF-8"), "UTF-8"));
            }
        }
        else{
        links.add("No download Links");
        }
        //Now lets make temper point to a array that holds the list items (aka links).
        temper = links.toArray(new String[links.size()]);
    }
    catch(Exception ex){
    temper[0] = ex.getMessage();
    }
    // That's it! temper has direct download links from youtube!
    return temper;
}
 类似资料:
  • 我正在开发一个应用程序,在其中我需要播放YouTube视频,我尝试使用webView和videoView,我四处搜索了很多,我实际上找到了一些解决方案,但它们似乎不适合我的应用需要: 所以我首先想知道,在应用程序中播放YouTube视频的最佳方式(方法)。我应该使用WebView并尝试使视频适合视图和额外的,或者我应该尝试VideoView(我猜这有点复杂,因为能够播放视频我必须从Youtube获

  • 本文向大家介绍Android原生视频播放VideoView的使用,包括了Android原生视频播放VideoView的使用的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android原生视频播放VideoView的具体代码,供大家参考,具体内容如下 布局文件activity_video.xml 对应的Avtivity:VideoActivity.java 以上就是本文的全部内容,希

  • 我收到这个错误“无法加载现代控件UI。升级到Android YouTube API的最新版本。”我使用了youtubePlayer。addFullscreenControlFlag(YouTubePlayer.FULLSCREEN\u FLAG\u CONTROL\u SYSTEM\u UI) 但仍然得到同样的错误也我去无法播放一些YouTube视频使用YouTubeAndroid Player

  • 有人可以帮助使用这个代码来播放嵌入网站的youtube视频吗?我试过各种方法,包括硬件加速=True。 webview显示了youtube页面和缩略图,但点击它们时什么也不会发生。 在某些硬件加速的设备上,它只播放声音,但不播放视频。谢谢大家!

  • 是否可以从webview播放youtube视频,就像我从浏览器访问youtube网站时视频开始播放时一样,它在全屏播放视频。 以下是我到目前为止的代码:

  • 我想在android应用程序中播放谷歌驱动器托管的视频。我可以通过视频的私人url在网络浏览器中播放视频。 我想知道我可以使用android youtube api来播放这个视频吗? 如果是,可以给出任何例子… 或建议任何其他方式 谢谢