2011-08-26 41 views
1

我需要在webView的自定義對話框中顯示。 無論如何,我可以加載YouTube網站,並導航trought視頻,但是當我想播放一些視頻,當我點擊播放什麼也沒有發生。視頻只是像選擇的那樣獲得橙色閃光,但不會開始加載和播放。有什麼問題?Youtube視頻不能開始在webView中玩Android

我在網上找到了教程,並試圖修改它。這裏是代碼:

dialog = new Dialog(this); 
    dialog.setContentView(R.layout.dialog); 

    pd = (ProgressBar) dialog.findViewById(R.id.web_view_progress_bar); 

    webview = (WebView) dialog.findViewById(R.id.web_view); 

    webview.getSettings().setPluginState(PluginState.ON); 
    webview.getSettings().setJavaScriptEnabled(true); 

    webview.setWebChromeClient(new WebChromeClient() { 
     public void onProgressChanged(WebView view, int progress) { 
      if (progress < 100 && pd.getVisibility() == ProgressBar.GONE) { 
       pd.setVisibility(ProgressBar.VISIBLE); 
      } 
      pd.setProgress(progress); 
      if (progress == 100) { 
       pd.setVisibility(ProgressBar.GONE); 
      } 
     } 
    }); 

    webview.setWebViewClient(new YoutubeWebViewClient()); 
    //shouldOverrideUrlLoading(webview, this.getUrl()); 
    webview.loadUrl(this.getUrl()); 

    dialog.show(); 

} 


@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK && webview.canGoBack()) { 
     webview.goBack(); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 


private class YoutubeWebViewClient extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 
} 

幫助?

UPDATE:

我已經試過這在其他的方式做,但同樣的問題......

我試着去嵌入YouTube HTML5播放器在web視圖。我只會在沒有YouTube視頻的情況下回到場上。在webView的右上角是YouTube的標誌,這就是它的全部。不要在android x86平臺上安裝Android手機,測試應用程序。那是問題嗎?

幫助:)不約實現的方式照顧,我只需要這個工作^^

+0

你有沒有更新你的手機在你測試的Flash播放器?..可能是因爲你無法播放視頻。 – dhuma1981

回答

0

我不知道爲什麼,但webviewclient類原因導致的問題,我們可以在默認瀏覽器中運行它刪除webviewclient類simly加載的YouTube的網址,你將能夠運行它在2.1 2.1只是使用意圖和通過解析方法打開它通過YouTube應用程序

startActivity(新意圖(Intent.ACTION_VIEW,Uri.parse(String.format( 「http://www.youtube.com/v/%s」)))); }

+0

即時製作電視應用程序,而youtube就像一個小部件。它的android 2.2。當我開始YouTube時,我需要它在某種對話框中顯示,因爲視頻流在背景中播放,我不想用意圖開始新的活動。 – Veljko

+0

當我們從默認web瀏覽器通過webviewclient類控制它不支持動態內容,如彈出窗口,在這裏你不必實際做一個新的活動,你只需要調用已經安裝的youtube播放器,默認是通過使用您稱爲默認播放器.yes的意圖,但爲了在某種類型的dialouge中顯示它,您需要創建帶有佈局的js dialouge,然後您將調用youtube embeded鏈接。 – aditya

0

這是一種在android webview中的bug,據我發現直到現在,對我來說,什麼工作,只是在manifest.after中添加Hardware Accleration權限,嵌入到我的webview中的視頻開始播放。

+0

硬件加速權限在2.3或更低版本的apis上不起作用。什麼是你的android:minSdkVersion? 所以我使用「」 –

相關問題