我正在开发一个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驱动器的视频流?
发布于 2015-11-10 08:08:20
因为我也在尝试,我可以自己找到解决办法。
1:确保视频网址为https://drive.google.com/file/d/VIDEO-ID/preview“
2:我从上面的网址下载网页内容,并直接获得视频网址:
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
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解码成正常使用的函数
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。
https://stackoverflow.com/questions/29596614
复制相似问题