全平臺網頁播放器兼容H5與Flash還帶播放列表

許久不發文了,2018年第一篇文章,寫點乾貨——關於網頁播放器的問題。嗯,實際上我是在52破解首發的,當作新人貼。
目前來講,網頁播放器很多,隨便找找都能找到一大堆,然而好用的就那麼幾個,好比ckplayer什麼的。2017年末,本身想給這個小博客增長視頻播放功能,以前也發過幾篇關於typecho視頻播放器的帖子,奈何都是別人的成果,總想本身搞一個,而且同時支持PC+移動端+播放列表的功能,要想完成仍是要費一番功夫的,巧的是當時逛谷歌的時候真的讓我找到了一個這樣的播放器,固然也是付費的!接下來的工做想必都能猜到O(∩_∩)O哈哈~html

先放出實驗對象——Flash HTML5 Web Video Player我以爲一個正常的公司不會起一個這麼直白的名字 -_-|| 還賣39美圓!實際賣的是一個十幾兆的小軟件,自定義後可自動生成swf格式的播放器,只要在網頁上引用就能夠實現播放功能了。官方提供試用版,可是播放視頻會在左上角帶有一個官網地址的標記,很是煩人,詳細見下圖。Flash HTML5 Web Video Player我要作的就是去掉這個連接,可是,個人作法不是破解註冊軟件自己,而是從生成的swf文件入手。很天然地想到對swf文件逆向,這確實可行,用AS3 Sorcerer的確能夠拿到swf的源碼,而且源碼看上去還很正常,AS3 Sorcerer在不少地方均可如下載到,我嘗試了其餘的逆向工具,無奈都失敗了,有些工具逆向出來的部分AS文件是空白的。逆向後會發如今全部文件架最外層有一個主文件,打開這個AS3文件真的算是大開眼界,代碼很是工整,很容易就找到了咱們要找的地方:html5

private function InitWatermark():void
       {
           var _local_1:*;
           var _local_2:TextFormat;
           var _local_3:*;
           if (cfgObject.demo)
           {
               _local_1 = new TextField();
               _local_1.multiline = true;
               _local_1.wordWrap = false;
               _local_1.selectable = false;
               _local_1.htmlText = "<a ><font face='Arial,Verdana'>http://www.magichtml.com</font></a>";
               _local_1.autoSize = TextFieldAutoSize.LEFT;
               _local_2 = new TextFormat();
               _local_2.align = TextFormatAlign.CENTER;
               _local_1.setTextFormat(_local_2);
               _local_1.x = 8;
               _local_1.y = 8;
               _local_3 = new Sprite();
               _local_3.graphics.beginFill(0xFFFFFF);
               _local_3.graphics.drawRoundRect(0, 0, (_local_1.width + 8), (_local_1.height + 8), 8, 8);
               _local_3.graphics.endFill();
               _local_3.x = 4;
               _local_3.y = 4;
               _local_3.alpha = 1;
               watermarkMC = new MovieClip();
               watermarkMC.addChild(_local_3);
               watermarkMC.addChild(_local_1);
               this.addChild(watermarkMC);
               watermarkMC.x = 8;
               watermarkMC.y = 8;
           };
       }

問題就集中在那個if判斷裏,本想着只要不進入if裏就能夠,修改後再編譯成swf就行。可是,事情並無那麼簡單,本身嘗試了不少次,雖然調用Flash SDK下的mxmlc確實能夠不報錯生成swf文件,可是徹底不能用,瀏覽器調用後只會顯示一塊黑色區域。PS:後來發現,那個公司最成功的一款產品是swf加密軟件,估計在生成swf文件過程當中也加密了。
出現這種狀況對我來說基本無解了,由於徹底不知道問題在哪。後來在使用另外一款軟件ActionScriptViewer後發現,該款軟件能夠在不破壞swf文件的前提下直接編輯swf裏的常量!看到但願了\(^o^)/~
返回以前的源碼,發如今if裏的判斷實際就是調用了常量demo,這個值實際是軟件本身加上去的,跟第一張圖右側播放器的相關設置在一塊兒(相似xml文件)放在主文件開頭出,至關於一個全局常量。因此只要一開始設置播放器時給一個false常量而後把if判斷指向這個常量就行了。我這裏用到的是randomPlay。只要在ActionScriptViewer裏將demo換成randomPlay就完成了。以後保存就好,瀏覽器再調用swf就正常了。至此,結束。至於調用的視頻,swf播放器會調用一個同名的xml文件,裏面指明瞭視頻地址和縮略圖。web

我把本身修改好的播放器文件放出來:https://files.cnblogs.com/files/liuke-note/player.zip 至於使用方法,很簡單看看裏面的html文件就懂了瀏覽器

相關文章
相關標籤/搜索