首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google的Android视频

Google的Android视频
EN

Stack Overflow用户
提问于 2015-04-13 01:25:41
回答 1查看 13.5K关注 0票数 4

我正在开发一个Android应用程序,需要从Google驱动视频,视频链接是这样的: https:// docs.google.com/file/d/-ID

我不能得到rtsp,所以它不能在视频视图中运行视频,而且它不会以mp4或3GP结尾.所以我不能那样做:

意图=新意图(Intent.ACTION_VIEW);intent.setDataAndType(Uri.parse("https:// docs.google.com/file/d/-ID--“)、”视频/MP4“);view.getContext().startActivity(意图);

我能够使用以下代码在webView中运行该视频:

webview.getSettings().setJavaScriptEnabled(true);webview.getSettings().setPluginState(WebSettings.PluginState.ON);webview.loadUrl("https:// docs.google.com/file/d/-ID--“); Webview.setWebChromeClient(新WebChromeClient());

但这段视频不能全屏播放,不能暂停,不能滞后.

那我该怎么办?是否有来自Google驱动器的视频流?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-10 08:08:20

因为我也在尝试,我可以自己找到解决办法。

1:确保视频网址为https://drive.google.com/file/d/VIDEO-ID/preview

2:我从上面的网址下载网页内容,并直接获得视频网址:

代码语言:javascript
复制
public String downloadUrl(String myurl) throws IOException {
        InputStream is = null;
        try {
            URL url = new URL(myurl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setReadTimeout(10000);
            conn.setConnectTimeout(15000);
            conn.setRequestMethod("GET");
            conn.setDoInput(true);
            conn.connect();
            is = conn.getInputStream();
            String contentAsString = readIt(is);
            return contentAsString;
        } finally {
            if (is != null) {
                is.close();
            }
        }
    }

//从流输出获取直接视频url

代码语言:javascript
复制
public String readIt(InputStream stream) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(stream, "UTF-8"));
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = reader.readLine()) != null) {
            if (line.contains("fmt_stream_map")) {
                sb.append(line + "\n");
                break;
            }
        }
        reader.close();
        String result = decode(sb.toString());
        String[] url = result.split("\\|");
        return url[1]; 
    }

//我们需要一个将url解码成正常使用的函数

代码语言:javascript
复制
public String decode(String in) {
        String working = in;
        int index;
        index = working.indexOf("\\u");
        while (index > -1) {
            int length = working.length();
            if (index > (length - 6)) break;
            int numStart = index + 2;
            int numFinish = numStart + 4;
            String substring = working.substring(numStart, numFinish);
            int number = Integer.parseInt(substring, 16);
            String stringStart = working.substring(0, index);
            String stringEnd = working.substring(numFinish);
            working = stringStart + ((char) number) + stringEnd;
            index = working.indexOf("\\u");
        }
        return working;
    }

在我使用了这三个函数之后,我现在可以得到一个由readtIt(InputStream stream)作为字符串返回的直接视频url,并且我可以使用它来解析到VideoView。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29596614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档