2012-06-20 13 views
7

Sto lavorando su progetto Android (livello API 8) che visualizza WebView da un altro sito Web che non posso modificare il codice di questo sito Web. Ho problemi con il video clip in WebView su alcuni dispositivi che non abilitano il rendering Force GPU (nelle impostazioni -> Opzioni sviluppatore). I seguenti codici sono i codici che ho letto dal sito webvideo con iframe non visualizzato su Android Webview

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

e

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

Sul lato Android Ho già effettuato diverse impostazioni che sono

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

credo che non posso utilizzare android:hardwareAccelerated="true" poiché sto lavorando al livello API 8

Quando spengo la Forza GPU che mostra l'errore su logcat viene mostrato come segue

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

Hai trovato una soluzione? –

+0

Ho anche questo problema, e dal momento che Android 4.0 browser e Chrome app in grado di superare questo (almeno per Youtube), dovrebbe essere un modo per fare. –

risposta

1

Forse è un problema di accelerazione hardware. Prova a disabilitarla:

@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); 
    } 
} 
Problemi correlati