1. 程式人生 > >cocos2d-x視訊控制元件VideoPlayer的使用者操作欄進度條去除

cocos2d-x視訊控制元件VideoPlayer的使用者操作欄進度條去除

cocos目前出了新的視訊播放器控制元件,僅支援ios和android平臺,不支援window平臺。專案打算使用一段視屏片頭,所以使用該視訊控制元件來播放片頭。

目前遇到兩個問題:
(1)視訊控制元件移除有問題,會報異常。
(2)視訊控制元件有使用者操作欄,使用者點選螢幕會停止視訊播放。

對於第一個問題,主要是移除控制元件時衝突引起的,目前簡單處理是做一個延時處理,先stop視訊播放,然後一個Action移除自身,如下:
    local function onComplete()
            video:stop()
            video:runAction(
                cc.Sequence:create
( cc.CallFunc:create(callback), cc.RemoveSelf:create() ) ) end
第二個問題處理起來比較麻煩,做法是去除控制元件實現中的使用者點選和使用者操作欄。

在android版本里視訊會有一個點選螢幕暫停和恢復的功能,這個是在java層實現的,直接註釋掉點選的響應,就可以遮蔽使用者的操作。
Cocos2dxVideoView.java 201  

    @Override
    public
boolean onTouchEvent(MotionEvent event) { if((event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP) { if (isPlaying()) { //pause(); } else if(mCurrentState == STATE_PAUSED){ //resume(); } } return
true; }
在ios版本里視訊會有一個操作欄,這個oc程式碼裡的視訊控制元件有個樣式,更改controlStyle 這個屬性,即可隱藏進度條,另外修改userInteractionEnabled 屬性,讓視訊不響應點選事件。
    UIVideoPlayer-ios.mm

    self.moviePlayer.allowsAirPlay = false;
    self.moviePlayer.controlStyle = MPMovieControlStyleNone;//  MPMovieControlStyleEmbedded;
    self.moviePlayer.view.userInteractionEnabled = false;   //true;
除了上述問題,該視訊控制元件目前只能遮蓋在使用者顯示層的上層,對於某些比如嵌入播放之類操作,依然有很多問題,希望cocos能後續繼續完善。