2011年9月13日 星期二

Grab Pro 與 Flash Player 11 RC 衝突之 Solution

J研是一個找 midi 鈴聲的好地方,依我至今的了解,它應該是 ACG midi 鈴聲資料庫最大的網站,不過就是太大,如果沒太多的欲求,我也不太想去那裡被淹沒(沒計畫性的前往,它也是食時的怪物),不過正好最近突然很想聽「ドラマチック」(大振的 OP1)、「インモラリスト」(堀江由衣) 的 midi 效果,就稍微去勘查。

找歌並不難,只不過要帶一點土產回來就遇到重重問題!

Grab Pro 與 Flash Player 11 RC 發生衝突!!

接下來就記錄一下重重難關:
  1. 相較於 Grab Pro 如果要動刀的話,還是找 RC 的 Flash Player 11 比較 OK,畢竟之前的 Flash Player 10.3 我用起來並沒啥問題,RC 或多或少還是有些問題的也不一定,只好先 downgrade 回 10.3,但是它給我一個囧到不行的回答:
    對不起,您已經有更新的版本!

    我的天之前上 11 beta 後,我也曾經 downgrade 回到 10.3 過啊!?
    而且我把電腦裡所有的 Flash Player 相關元件都移除(Active X x86, x64; Plug-in x86, x64),結果它還是跟我說一樣的話,真不知道 RC 到底在哪裡烙了印,把 11 提為正室,到 Registry 去胡亂搜索也找不出相關線索,只好放棄動 Flash Player 11 RC。
  2. 一開始在我還沒開 Grab Pro 出來前,Flash Player 其實也曾經出問題,沒辦法播放,重裝一次之後才 OK,這點就讓我不禁懷疑 Flash Player 11 RC 跟J研其實也不太 match 的想法。
    在這之間我發現 x64 的 Flash Player 在播放上似乎沒有問題,但在 x86(Active X & Plug-in 皆有) 上就會有問題,而所謂的問題就是:J研的 player 的播放鍵 render 不完整,因此當然是不能用的,也無法自動播放。

    其實如果可以的話我倒想把戰場搬到 x64(IE9 x64, Nightly 9.0a1) 上,至少那個部分的 Flash Player 應該不成問題,但我們的 Grab Pro 大哥它只是個 x86 的 IE9 才能用的 Active X,也就是說我一定要在 IE9 x86 上來解決這個問題。
  3. 但轉念一想,Orbit Downloader 提供截取影音的工具並不只有 Grab Pro ── 這一個 Active X 的插件,還有 Grab++ 這個玩意,它就不用完全 base on browser。

    不過事情也沒這麼順利,用 Grab ++ 來監控 IE 的活動後,它確實發現那個關鍵的 object.mp3,連檔案大小也正確的偵測出;但直接下載卻只有 587 Byte 的索引 padding or error message 之類的東西吧!?檔案大小完全對不起來...

    依我的猜測,這應該就是J研用來防堵被下載工具直接載到它的原始檔案的方式,如果只是單純詢問其檔案大小,server 會確實告訴你它確實的大小(maybe 是方便 debug 的設計),假如你真正要下載時,它會去判斷說是否為J研專用的 player,如果是的話,它才會允許下載。
  4. 繞了一大圈後,終究要回到該面對的戰場 ── IE9 x86 + Grab Pro
    其實當 Grab++ 失敗後,我基本上已經不抱多大的希望了,早已做好撤退的準備,去找一臺還停留在 Flash Player 10.3 的電腦去測試 or 乾脆等 11 的正式版發行在去試了。不過身為一個理工人(? 是劍士吧?),要輸也不能把背後面對敵人!

    重新檢視過這個 Grab Pro Active X 後,我發現除了它本身外,每次啟用時,必然會詢問使用者要不一併啟用 Octh Class 的物件,這傢伙做啥用我一點也不知,之前都是你都這樣問了那就啟動來用,maybe 是什麼相關的 library,既然現在都用不了,把你關掉會如何?那就來試試。

    只開 Grab Pro 而不用 Octh Class 的情形,就是上頭的 Grab Pro toolbar 存在,但 Flash Player 11 RC render 不完全,這個就有意思!
    反過來只開 Octh Class 而不開 Grab Pro,Flash Player 11 RC 居然可以運作,這個正點!


    因此我根據這個狀況做一個假設,Grab Pro 是前端的圖形界面,而 Octh Class 則是負責流量監控、分析;而 Grab Pro 會與 Flash Player 11 RC 衝突,而 Octh Class 卻不會。所以說其實我們是有能力收集到 object.mp3,但問題是要如何把它取出來
  5. 再來就是我的實驗:首先只開啟 Octh Class,讓它在J研 Player 成功播放的情況下做檔案搜集(也不必然都一定都 OK,不行時要多試幾次 F5 or Ctrl + F5),之後開啟 Grab Pro,如果它的可下載 queue 裡有 object.mp3 那表示你成功了!
    如果失敗的話,請關閉 Grab Pro 只留下 Octh Class 重 load 頁面,如果怎麼 load 都無法讓 Flash Player 正常運作請開新頁籤,甚至重開 IE,多試幾次應該會成功,我自己試出來的結果都是開啟 Grab Pro 的第一次都不成功,一定要重新做過第二次才會出現 object.mp3,一但出來後下載的檔案就沒問題,因為它是提取J研 player 所吃的東西。
  6. 附註一點,跑上面流程前,最好先啟動 Grab++,我記得成功的情形下,Grab++ 我都有開啟,在 Grab++ 未開啟的情形下,好像沒成功過,或許是 Grab++ 與 Octh Class 有一定程度的連動性。
總而言之,這是一個半調子的 solution,因為我沒有要大量搜集這些 midi,所以還可以這樣撐著,如果有大量需求的人,還是找著穩定的系統(x86 OS + x86 Browser + Flash Player 10.3 + Grab Pro)
其實我也應該去找一下要如何 downgrade 回 10.3,but 因為我太懶了,所以不想再試了!想說 RC 都出來了,正式版應該也等不了多久,所以‧‧‧

期待 Flash Player 11 or 新版 Grab Pro 能讓這個問題消弭於無形 :P