1. 程式人生 > >Unity3d 播放高質量視頻解決方案

Unity3d 播放高質量視頻解決方案

bsp 比較 可能 video 提升 and 沒有 文章 由於

1.

Unity3d 播放高質量視頻解決方案~

最近在折騰一個視頻遊戲.真的是一個視頻遊戲,遊戲主背景是個大視頻.可能切換三四個視頻,而且需要無縫切換.

平臺是安卓,蕊片是rockclip.找了各式各樣的插件.

  1. movietexture,只能播放OGG和OVG,而且質量比較低.如果要轉成高質量的視頻,文件尺寸比較大. 放棄,繼續找.
  2. easymovietexture, 某些機子上黑滴~兼容性不好,繼續找.
  3. avipro 額,是這個名字麽,最後發現只能在IOS上使用.繼續找.
  4. Vuforia video playback (下方使用vvp代替)高通的SDK裏自帶一個video playback.拿了出來,改了改能用.

但是有些問題, 在這裏順便扯一下給後面有需要的同學:

  1. 播放SD卡上的視頻巨卡.是機器問題麽?(倒沒有在手機上試過,有試過的同學麻煩告知我.)我看了一下Log,出血的地方.其實不是真的報錯.why? =.=
  2. vvp底層是使用mediaplayer進行播放.原理大概是在一個subface上播放,然後畫在一張texture上,在unity3d裏使用這張texture.
    1. 如果是使用streamasset目錄下的視頻,playertype會等於3,即使用awsomeplayer
    2. 如果在sd卡上的視頻,playertype==7則使用FFPlayer. 使用FFplayer的時候會巨卡而且很慢.

      由於使用了jmi, 我不太熟,沒有具體調試瓶頸在哪裏. 在vuforia論壇上問, 理所當然的沒有人鳥. 我最後下載了android的源代碼,想抽時間看看,最後還是沒折騰成. 知道的同學告訴我一聲哈.

  3. 播放方式.我一開始兩個vvp來播放6個視頻, a播放1,b播放2,a播放3,以此類推. 後來直接就閃退了..omg.我在安卓上直接使用mediaplayer是不會出現這個問題的.

    所以我推論是內存側露了~ 後來改成6個vvp播放6個視頻.由於是需要多次進這個場景播放不同的6個視頻, 看來閃退也只是時間問題.

    我又在vuforia論壇上問, 又理所當然的沒有人鳥. (PS:我在vurofria論壇上見到一個貨刷了一屏的問題.....)

  4. 卡咯~ 東西加多了,CD沒有上去,但是還是卡了.各方面.VVP也是一方向. 後面的解決方案就不卡鳥.

最後的解決方案:

使用 Unity3d 4.2版本. 該版本可以在eclipse裏設置u3d的subfaceview為透明. 從而與原生的元素一起顯示.

嗯.以上方案我也是想到,然後GG出來的結果.

感謝前人的載樹,不然這個項目我要栽了=.= 鐵定是個各種不安定因素的東西.

我在eclipse裏設置subfaceview透明,這個很容易做到.然後在view下加了個videoview. 生成jar後丟到u3d裏. (額,這個大家應該都會.如果不會請留言我再把代碼丟上來)

videoview裏可以加載各種視頻, 質量高, 不閃退, 還能播放SD卡上的視頻, 性能也有提升. 性能提供了300%還穩定.

如果是需要小區域使用視頻的同學,完全用代碼控制視頻的位置. 當然這是我的假定.真正實施應該還有其他問題.

OLE, 第一次寫博客園的文章隨意寫到這兒. c u.

PS: 這兒的編輯器真不好用,而且沒有u3d的分類 =.=

測試工程下載地址:http://download.csdn.net/detail/netfly53541314/9541212

註: 這個測試工程裏只有安卓的示例. IOS也能做到,詳情請GG.

Unity3d 播放高質量視頻解決方案