使用webview播放YouTube视频的问题
问题描述:
我有这段代码,当在模拟器上运行时打印日志消息在shouldOverrideUrlLoading方法,当我点击视频像 06-04 08:53:24.295:VERBOSE/url(502 ):vnd.youtube:aEb80IUiLog?vndapp=youtube_mobile & vndclient = MV-谷歌& vndel =轮廓使用webview播放YouTube视频的问题
但是当我测试这对我的HTC Desire,日志信息犯规露面,因此无法播放视频。我在这里错过了什么。设备原生android浏览器播放所有youtube视频。
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class Test extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try{
WebView web=(WebView) findViewById(R.id.webkitWebView1);
// web.getSettings().setBuiltInZoomControls(true);
web.getSettings().setJavaScriptEnabled (true);
// web.getSettings().setJavaScriptCanOpenWindowsAutomatically (false);
// web.getSettings().setPluginsEnabled (true);
// web.getSettings().setSupportMultipleWindows (false);
// web.getSettings().setSupportZoom (false);
// web.setVerticalScrollBarEnabled (false);
// web.setHorizontalScrollBarEnabled (false);
// web.getSettings(). setAppCacheEnabled(true);
// web.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
web.loadUrl("http://www.youtube.com/cg225");
web.setWebViewClient(new WebViewClient()
{
@ Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
Log.v("url",url);
// YouTube video link
if (url.startsWith("vnd.youtube:"))
{
int n = url.indexOf("?");
if (n > 0)
{
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("http://www.youtube.com/v/%s", url.substring("vnd.youtube:".length(),n)))));
}
return (true);
}
return (false);
}
});
}catch(Exception e){
e.printStackTrace();
}
}
}
答
我不知道为什么,但webviewclient类原因导致的问题,我们可以在默认浏览器 运行它删除webviewclient类和simly加载YouTube上的网址,您将能够运行它2.2 for 2.1只是使用意图和通过解析方法打开它通过youtube应用程序
startActivity(新意图(Intent.ACTION_VIEW,Uri.parse(String.format(“http://www.youtube.com/v/% s“,url.substring(”vnd.youtube:“。length(),n))))); }