2012-06-20 26 views
7

Estoy trabajando en el proyecto de Android (API nivel 8) mostrando WebView desde otro sitio web que no puedo cambiar el código de estos sitios web. Tengo problemas con un clip de video en WebView en algunos dispositivos que no permiten la representación Forzada GPU (en la configuración -> Opciones de desarrollador). Los siguientes códigos son los códigos que he leído desde el sitio webvideo con iframe no se muestra en Android Webview

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

y

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

Por el lado de Android ya puedo activar varias opciones de configuración que son

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

creo que no se puede use android:hardwareAccelerated="true" ya que estoy trabajando en el nivel de API 8

Cuando apago la Fuerza La GPU que muestra el error en logcat se muestra como sigue

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

¿Encontró una solución? –

+0

También tengo este problema, y ​​dado que el navegador predeterminado Android 4.0 y la aplicación Chrome pueden superar esto (al menos para Youtube), debería ser una forma de hacerlo. –

Respuesta

1

Quizás sea un problema de aceleración de hardware. Intente desactivarlo:

@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); 
    } 
} 
Cuestiones relacionadas