2012-06-20 87 views
7

我正在從其他網站上顯示WebView的Android項目(API級別8)上工作,我無法更改這些網站的代碼。我在WebView中的某些設備上無法強制GPU渲染(在設置 - >開發人員選項中)中遇到問題。下面的代碼是我從網站帶有iframe的視頻不會顯示在Android Webview上

<center><iframe width=\"500\" height=\"315\" src=\"http:\/\/www.youtube.com\/embed\/bf7wpubnyIE\" frameborder=\"0\" allowfullscreen><\/iframe><\/center> <br \/> 

<center> <iframe frameborder=\"0\" width=\"480\" height=\"323\" src=\"http:\/\/www.dailymotion.com\/embed\/video\/xrmnk1\"><\/iframe> <\/center><br \/> 

在Android方面我已經使一些設置,這是

webview.setWebChromeClient(new WebChromeClient()); 
webview.setWebViewClient(new WebViewClient()); 
webview.getSettings().setJavaScriptEnabled(true); 
webview.getSettings().setPluginsEnabled(true); 

讀碼我相信我能不使用android:hardwareAccelerated="true"因爲我在API級別8上工作

當我關閉Force在logcat上渲染錯誤的GPU如下所示:

06-20 14:04:24.455: W/webview(28201): at android.webkit.WebView.checkThread(WebView.java:9468) 
06-20 14:04:24.455: W/webview(28201): at android.webkit.WebView.loadDataWithBaseURL(WebView.java:2186) 
06-20 14:04:24.455: W/webview(28201): at com.tss.one.MainDetail$1.run(MainDetail.java:144) 
06-20 14:04:24.455: W/webview(28201): at java.lang.Thread.run(Thread.java:856) 
06-20 14:04:24.533: V/PhoneStatusBar(10977): setLightsOn(true) 
06-20 14:04:24.697: I/ActivityManager(10909): Displayed com.tss.one/.MainDetail: +614ms 
06-20 14:04:27.197: D/libEGL(28201): loaded /system/lib/egl/libGLES_android.so 
06-20 14:04:27.205: D/libEGL(28201): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so 
06-20 14:04:27.221: D/libEGL(28201): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so 
06-20 14:04:27.229: D/libEGL(28201): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so 
06-20 14:04:27.729: E/Web Console(28201): Unsafe JavaScript attempt to access frame with URL about:blank from frame with URL http://www.youtube.com/embed/bf7wpubnyIE. Domains, protocols and ports must match. 
06-20 14:04:27.729: E/Web Console(28201): at null:1 
06-20 14:04:27.838: E/libEGL(28201): call to OpenGL ES API with no current context (logged once per thread) 
06-20 14:04:27.838: D/ShaderProgram(28201): couldn't load the vertex shader! 
06-20 14:04:27.838: D/ShaderProgram(28201): couldn't load the vertex shader! 
06-20 14:04:27.838: D/ShaderProgram(28201): couldn't load the vertex shader! 
06-20 14:04:27.838: D/ShaderProgram(28201): couldn't load the vertex shader! 
06-20 14:04:27.838: D/ShaderProgram(28201): couldn't load the vertex shader! 
06-20 14:04:28.213: D/dalvikvm(28201): GC_CONCURRENT freed 3468K, 17% free 20475K/24519K, paused 3ms+2ms 
06-20 14:04:29.783: E/Web Console(28201): Uncaught Error: INDEX_SIZE_ERR: DOM Exception 1 at http://static1.dmcdn.net/js/gen/widget/pack/player.js.v91ec0434953824904:1 
06-20 14:04:29.791: D/MediaPlayer(28201): Couldn't open file on client side, trying server side 
06-20 14:04:29.791: I/AwesomePlayer(10888): setDataSource_l('http://www.dailymotion.com/cdn/H264-512x384/video/xrmnk1.mp4?auth=1340348666-9f8ec9001ccce92feec18d9419b07065&helper=0') 
06-20 14:04:29.791: V/ChromiumHTTPDataSource(10888): connect on behalf of uid 10124 
06-20 14:04:29.791: I/ChromiumHTTPDataSource(10888): connect to http://www.dailymotion.com/cdn/H264-512x384/video/xrmnk1.mp4?auth=1340348666-9f8ec9001ccce92feec18d9419b07065&helper=0 @0 
06-20 14:04:33.291: I/SampleTable(10888): There are reordered frames present. 
06-20 14:04:33.299: I/OMXCodec(10888): [OMX.TI.DUCATI1.VIDEO.DECODER] AVC profile = 66 (Baseline), level = 30 
06-20 14:04:33.299: I/OMXCodec(10888): [OMX.TI.DUCATI1.VIDEO.DECODER] video dimensions are 512 x 344 
06-20 14:04:33.299: I/OMXCodec(10888): [OMX.TI.DUCATI1.VIDEO.DECODER] Crop rect is 512 x 344 @ (0, 0) 
06-20 14:04:34.432: I/OMXCodec(10888): [OMX.TI.DUCATI1.VIDEO.DECODER] video dimensions are 640 x 448 
06-20 14:04:34.432: I/OMXCodec(10888): [OMX.TI.DUCATI1.VIDEO.DECODER] Crop rect is 512 x 344 @ (0, 0) 
06-20 14:04:34.604: I/OMXCodec(10888): [OMX.TI.DUCATI1.VIDEO.DECODER] video dimensions are 640 x 448 
06-20 14:04:34.604: I/OMXCodec(10888): [OMX.TI.DUCATI1.VIDEO.DECODER] Crop rect is 512 x 344 @ (32, 24) 
06-20 14:04:34.612: W/SoftAAC(10888): Sample rate was 44100 Hz, but now is 22050 Hz 
06-20 14:04:39.666: I/NuCachedSource2(10888): ERROR_END_OF_STREAM 
+0

您是否找到了解決方案? –

+0

我也有這個問題,並且由於Android 4.0默認的瀏覽器和Chrome應用程序可以克服這一點(至少對於Youtube),它應該是一種方法。 –

回答

1

也許是硬件加速問題。嘗試禁用它:

@TargetApi(11) 
private void disableHardwareAcceleration() { 
    if(getCustomApp().isHarwareAccelerateDisable() && android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) { 
     Log.e(TAG, "disable HardwareAcceleration"); 
     webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
    } 
} 
相關問題