Iframe video not showing on Android Webview

I am working on an Android project (API level 8) displaying a WebView from another website that I cannot change the code for this website. I'm having problems with the video in WebView on some devices that do not support forced rendering of the GPU (in Settings β†’ Developer Options). The following codes are the codes that I read from the website.

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

and

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

On the Android side, I’ve already turned on a few options that

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

I believe that I can not use android:hardwareAccelerated="true" , since I am working on API level 8

When I turn off Force GPU rendering, an error in logcat is displayed as follows

 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 
+7
source share
1 answer

Perhaps this is a hardware acceleration issue. Try disabling it:

 @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); } } 
+1
source

All Articles