使用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))))); }