2012-07-03 42 views
4

我做了大量的研究,試圖找出爲什麼HTML5視頻無法在我的應用程序中正確播放。爲了更具體地說,頁面加載正常,你可以看到視頻播放器的初始控件,但是當你在這裏播放視頻中的聲音時,卻看不到任何東西。Android的HTML5視頻播放,但不可見

我使用網頁視圖來顯示它並使用一些在線鏈接進行測試,如:

這裏是我的WebView代碼:

String _location = "http://broken-links.com/tests/video/"; 
WebView wv = (WebView) findViewById(R.id.dsWebView); 
wv.setWebChromeClient(new WebChromeClient()); //chromeClient());   
wv.setWebViewClient(new HelloWebViewClient()); 
WebSettings webSettings = wv.getSettings(); 
webSettings.setJavaScriptEnabled(true); 
webSettings.setJavaScriptCanOpenWindowsAutomatically(true); 
webSettings.setBuiltInZoomControls(true); 
webSettings.setSupportZoom(true); 
webSettings.setUseWideViewPort(true); 
webSettings.setPluginsEnabled(true); 
webSettings.setPluginState(PluginState.ON); 
webSettings.setDomStorageEnabled(true); 
webSettings.setAllowFileAccess(true); 
wv.setInitialScale(50); 
wv.loadUrl(_location); 


private class HelloWebViewClient extends WebViewClient 
{ 
    public boolean shouldOverrideUrlLoading(WebView view, String url) 
    { 
     view.loadUrl(url); 
     return true;//false; 
    } 
} 

我也改變了我的項目,這是它的Android 4.0及以上,並在我的清單文件中設置android:hardwareAccelerated =「true」。

還要補充一點,我在我的htc one x和chrome beta瀏覽器的默認瀏覽器中都測試了這兩個鏈接,並且它在兩者上都完美播放。這只是我的WebView不工作:(。

基本上,我試圖找出什麼我缺少獲取視頻到我的網頁視圖中正常播放。

感謝提前任何幫助,

消防

+0

確定視頻ISN 't編碼了某種無法識別的編解碼器? – TheZ

+0

但這些鏈接在手機上的默認瀏覽器工作。它只是webview這給問題:( – firefistace

+0

任何其他想法?:(我仍然卡住 – firefistace

回答

1

終於來了!我想通了,我的問題,這是我的意圖過濾器在我的清單文件。如果我張貼有人可能會一直能夠發現問題快,比較遺憾的一點。

<manifest> 
    <uses-sdk android:minSdkVersion="7" 
     android:targetSdkVersion="14" /> 
    <supports-screens android:resizeable="true" 
       android:smallScreens="true" 
       android:normalScreens="true" 
       android:largeScreens="true" 
       android:anyDensity="true"/> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" />   
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 


<application android:icon="@drawable/icon" 
      android:label="@string/app_name" 
      android:hardwareAccelerated="true"> 
    <activity android:name=".Main" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <intent-filter 
      android:icon="@drawable/icon" 
      android:label="Test File" 
      android:priority="1">    
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:scheme="http" android:host="*" 
       android:pathPattern=".*\\.test"/>    
     </intent-filter> 
     <intent-filter 
      android:icon="@drawable/icon" 
      android:label="Test File" 
      android:priority="1">    
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:scheme="https" android:host="*" 
       android:pathPattern=".*\\.test"/> 
     </intent-filter>    
     <intent-filter 
      android:icon="@drawable/icon" 
      android:label="Test File" 
      android:priority="1">    
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:scheme="content" android:host="*" 
       android:pathPattern=".*\\.test"/> 
     </intent-filter>    
     <intent-filter 
      android:icon="@drawable/icon" 
      android:label="Test File" 
      android:priority="1">    
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:scheme="file" android:host="*" 
       android:pathPattern=".*\\.test"/> 
     </intent-filter>        
    </activity> 
    <activity android:name="myWebView" 
       android:configChanges="keyboardHidden|orientation"   
    ></activity> 
</application> 

我必須刪除我添加的意圖過濾器,以便用任何帶有「.test」文件啓動我的應用程序。 基本上除去這一部分,它開始工作:

 <intent-filter 
      android:icon="@drawable/icon" 
      android:label="Test File" 
      android:priority="1">    
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:scheme="http" android:host="*" 
       android:pathPattern=".*\\.test"/>    
     </intent-filter> 
     <intent-filter 
      android:icon="@drawable/icon" 
      android:label="Test File" 
      android:priority="1">    
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:scheme="https" android:host="*" 
       android:pathPattern=".*\\.test"/> 
     </intent-filter>    
     <intent-filter 
      android:icon="@drawable/icon" 
      android:label="Test File" 
      android:priority="1">    
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:scheme="content" android:host="*" 
       android:pathPattern=".*\\.test"/> 
     </intent-filter>    
     <intent-filter 
      android:icon="@drawable/icon" 
      android:label="Test File" 
      android:priority="1">    
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:scheme="file" android:host="*" 
       android:pathPattern=".*\\.test"/> 
     </intent-filter> 

現在我的下一個問題是如何從一個。測試文件來啓動我的應用程序,如果它導致我的HTML5到不行。 (我想我可以刪除HTTP過濾器,但我想將點擊下載並打開我的。測試文件網頁中的鏈接。

+0

你有沒有想過爲什麼去除意圖過濾器解決了這個問題?我不明白爲什麼這會相關(我正在處理類似的問題,只有我沒有像你有過的任何意圖過濾器)。 – orcaman

2

試試這個

wv.setLayerType(View.LAYER_TYPE_HARDWARE, null);