La vidéo avec iframe ne s'affiche pas sur Android Webview

Je travaille sur un projet Android (niveau API 8) affichant WebView partir d'un autre site Web que je ne peux pas modifier le code de ce site. J'ai des problèmes avec un clip vidéo dans WebView sur certains périphériques qui n'autorisent pas le rendu Force GPU (dans les paramètres -> Options de développeur). Les codes suivants sont les codes que j'ai lu sur le site

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

et

  • Comment obtenir une image de profil Facebook de l'utilisateur dans Facebook SDK Android
  • Connectez l'iPhone à l'AP Soft Wifi Direct Soft
  • Lecture de vidéo sur TextureView
  • Conversion d'image en vidéo avec effet de transition
  • Comment envoyer des requêtes d'application à des amis via Facebook Android SDK
  • Lecture de FLV / HTTP dans une application Android
  •  <center> <iframe frameborder=\"0\" width=\"480\" height=\"323\" src=\"http:\/\/www.dailymotion.com\/embed\/video\/xrmnk1\"><\/iframe> <\/center><br \/> 

    Sur le côté Android, j'ai déjà activé plusieurs paramètres qui sont

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

    Je crois que je ne peux pas utiliser android:hardwareAccelerated="true" puisque je travaille sur le niveau API 8

    Lorsque je ferme le mode Force GPU, l'erreur sur logcat s'affiche comme suit

     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 

    One Solution collect form web for “La vidéo avec iframe ne s'affiche pas sur Android Webview”

    C'est peut-être un problème d'accélération matérielle. Essayez de le désactiver:

     @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); } } 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.