亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    Android使WebView支持HTML5 Video全屏播放的方法分享(圖)

    1)需要在AndroidManifest.xml文件中聲明需要使用HardwareAccelerate, 可以細(xì)化到Activity級(jí)別,如果不需要的View可以聲明不要用加速,但是需要在代碼中做,具體如下:

    a. 如果要聲明整個(gè)應(yīng)用都要加速:

             < application   ... android:hardwareAccelerated ="true">

    b. 如果要在Activity中聲明,則:

                    <activity   ... android:hardwareAccelerated="true" >,   還可以更細(xì)化到Window, getWindow.setFlags(  WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);                                     WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,

    c. 如果application或者activity都申明了要硬件加速,但是為了某些原因(比如省電?),一些View不需要硬件加速的話,

    view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

    2)可以說挺奇怪的是,需要在AndroidManifest.xml文件中用上<use-sdk></use-sdk>標(biāo)簽,而且如果是空的還不行,必須寫上targetSDK或者minSDK,但是我試驗(yàn)過,不管寫版本是多少都沒有關(guān)系。。。理論上說,Android應(yīng)該是從3.0( API Level 11)開始可以對(duì)2D渲染加速,但是我把targetSDK設(shè)置為5都可以使用的,但是這個(gè)標(biāo)簽不寫還不行。

    一般來說,上面的操作做了,就可以使用video標(biāo)簽播放視屏了,如果要支持全屏,還需要做一點(diǎn)操作:

    1)給webview一個(gè)WebChromeClient對(duì)象,這個(gè)WebChromeClient對(duì)象需要實(shí)現(xiàn)onShowCustomView和onHideCustomView方法,下面是一個(gè)實(shí)現(xiàn)例子:

        @Override                 public void onShowCustomView(View   view, CustomViewCallback callback) {                        if (myCallback != null)   {                              myCallback.onCustomViewHidden();                              myCallback = null ;                              return;                       }                                               long id   = Thread.currentThread().getId();                       WrtLog. v("WidgetChromeClient", "rong   debug in showCustomView Ex: " + id);                                              ViewGroup parent = (ViewGroup) mWebView.getParent();                       String s = parent.getClass().getName();                       WrtLog. v("WidgetChromeClient", "rong   debug Ex: " + s);                       parent.removeView( mWebView);                       parent.addView(view);                        myView =   view;                        myCallback =   callback;                        chromeClient = this ;                }                 private View myView = null;                 private CustomViewCallback myCallback = null;                                                 public void onHideCustomView()   {                                               long id   = Thread.currentThread().getId();                       WrtLog. v("WidgetChromeClient", "rong   debug in hideCustom Ex: " + id);                                                                      if (myView != null)   {                                                           if (myCallback != null)   {                                     myCallback.onCustomViewHidden();                                     myCallback = null ;                             }                                                          ViewGroup parent = (ViewGroup) myView.getParent();                             parent.removeView( myView);                             parent.addView( mWebView);                             myView = null;                       }                 }

    好吧,這個(gè)寫法和網(wǎng)上很多寫法不一樣,網(wǎng)上大部分的例子都是onShowCustomView方法接收到的view是一個(gè)VideoView對(duì)象,而這里是一個(gè)找不到的HTML5VideoFullScreen的VideoSurfaceView子類,而且這個(gè)子類還是一個(gè)private的子類,在外面根本沒有辦法訪問到,android.jar中也沒有HTML5VideoFullScreen這個(gè)類。如果想要在application中訪問到這個(gè)類,那么需要把<android-SDK-path>/platforms/<android-version>/data/layoutlib.jar這個(gè)包加到buildpath中,而且從android-14,也就是android4.0以后才這樣,也就是說,網(wǎng)上說的那個(gè)方法在android3.0時(shí)代是可以用的,android4.0以后就不行了,我用的是android4.0.3。

    其實(shí)不管是什么版本,這個(gè)段代碼的大概意思就是,在onShowCustomView方法中,將獲取到的view放到當(dāng)前Activity的最上方,在onHideCustomView中,將之前的view隱藏或者刪除,將原來被覆蓋的webview放回來,并結(jié)束播放,否在會(huì)報(bào)MediaPlayer IllegalStatusException, 而且還是Native method,根本沒法調(diào)試了。

    可以下載下來,用eclipse導(dǎo)入工程,把樣例視頻放到sdcard根部目錄下,從系統(tǒng)角度看就是/mnt/sdcard即可。

    效果如圖:

    全屏前:

    Android使WebView支持HTML5 Video全屏播放的方法分享(圖)


    全屏后:

    Android使WebView支持HTML5 Video全屏播放的方法分享(圖)

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)