• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            飄雪

            C++博客 首頁 新隨筆 聯系 聚合 管理
              31 Posts :: 0 Stories :: 60 Comments :: 0 Trackbacks

                我平時上班時喜歡在線聽個收音機。當然了,網頁版的在線收音機不考慮,因為總要打開一個網頁,經常一不小心就關了。以前用過龍卷風收音機,但是經常關閉程序之后進程不結束,而且它自帶的電臺地址都不公開,看著心煩。作為一個firefox的忠實用戶,自然希望用一個firefox擴展來實現收音機功能。在Firefox Add-ons網站上找了找,還真有這么一個插件,其中的收音機功能能夠滿足我的需求,但它帶了太多的私貨,有天氣預報、rss閱讀,尤其是帶了一個搜索框,還不能關掉。本來firefox已經自帶了一個搜索框,我裝的google toolbar上也有一個,再來一個搜索框,整個界面沒法看了,最終還是放棄了這個插件。
                身為一個刀客...咳,錯了,身為一個Geeker,這種情況下自然別無選擇,只好自己動手了。雖然以前并沒有做過firefox的擴展,不過我想這應該難不倒一個Geeker。
                首先自然是來到mozilla的關于擴展/插件開發的官方網站Extension development,文檔不錯,大致看了看,很簡單嘛。說起來就是用XUL定義界面,用javascript響應事件,然后用幾個配置文件把這些串起來。XUL可以現學現賣,不行咱還可以從別人的擴展抄嘛,javascript自然不在話下,雖然很久沒看過了,寫幾個簡單函數那還不是小菜。網站上有現成的Tutorials,不到半小時,一個界面雛形連帶基本的事件響應就出爐了。界面很簡單,播放、停止、音量按鈕各一個,再加一個選臺框和一個信息顯示欄。
                 接下來就是收音機功能了。思路照樣也很簡單,用javascript創建一個Media Player對象,然后用這個對象播放mms流就可以啦,核心代碼就幾行:

            var url ="";
            var wmp = new window.GeckoActiveXObject('{6BF52A52-394A-11d3-B153-00C04F79FAA6}');
            wmp.url 
            = url;

                寫完收工,馬上測試,我靠,見鬼了,GeckoActiveXObject出錯,錯誤是:uncaught exception: [Exception... "Unable to create an instance of the desired COM classCOM Error Result = 80004005"  nsresult: "0x80570039 (NS_ERROR_XPC_COM_CREATE_FAILED)" 。又仔細檢查了一遍代碼,沒錯呀,應該就是這么寫的。
                這下可真成卡門了,我迷迷糊糊覺得這應該跟權限、策略設置什么的有點關系,可是不知道從哪兒下手,google上翻了一圈,也沒找到點建設性的意見。沒辦法,又打開我裝的其他擴展,看別人是怎么搞的,其中一個跟我想要的功能類似的一個擴展,光js文件就有4萬多行,UltraEdit打開都一頓一頓的,也看了一遍,還挑出其中的代碼測了一下,都不行。在這兒就卡了一下午,只好翻別人的插件,希望能找到點頭緒。最后還真翻出來點東西,在一個插件下發現有components目錄,里面有兩個文件,npmozax.dll和nsAxSecurityPolicy.js,從文件名看起來似乎跟安全策略有關,打開看了看,沒啥特別的,一不做二不休,把整個components目錄拷到自己的目錄下,試了試,嘿嘿,行了。真是柳暗花明又一村啊,我覺得關于安全策略之類的mozilla的網站上應該會講到吧,也許是我不仔細,沒有找到,但是居然用拷貝兩個文件的方法解決了,具體原理以后有時間再看吧,先能用再說。
                最后,秀一下我純手工打造的收音機,雖然目前難看了一點,但是能用,以后有空再改得好看點
             

                今天光搞這個該死的權限就用了一天,工作進度落下一大截,明天一定好好工作。

            posted on 2009-01-08 23:54 飄雪 閱讀(2142) 評論(8)  編輯 收藏 引用

            Feedback

            # re: 自己動手寫firefox擴展(1) 2009-01-09 00:47 鬼話
            我也喜歡在線聽收音機,樓主的DIY精神很嘉,雖然花費一天時間,也很值得,期待下篇  回復  更多評論
              

            # re: 自己動手寫firefox擴展(1) 2009-01-09 09:06 飄雪
            @鬼話
            下一步打算改得好看一點,操作便利一點  回復  更多評論
              

            # re: 自己動手寫firefox擴展(1) 2009-01-09 10:37 phinecos
            沒用到XPCOM,還得努力的,呵呵  回復  更多評論
              

            # re: 自己動手寫firefox擴展(1) 2009-01-09 10:42 飄雪
            @phinecos
            這只是一個簡單插件,滿足自己的基本需求,以后說不定能用上  回復  更多評論
              

            # re: 自己動手寫firefox擴展(1) 2009-01-09 10:48 浪跡天涯
            呵 firefox就該這么折騰...有時間好好向樓主學學  回復  更多評論
              

            # re: 自己動手寫firefox擴展(1) 2009-01-09 10:58 飄雪
            @浪跡天涯
            我這也是瞎折騰,正好也了解一下firefox的擴展體系  回復  更多評論
              

            # re: 自己動手寫firefox擴展(1) 2009-01-09 11:17 飄過
            bs一下你的搜索引擎  回復  更多評論
              

            # re: 自己動手寫firefox擴展(1) 2009-01-09 11:28 飄雪
            @飄過
            啥搜索引擎?你是說我的firefox布局,是bs我的搜索引擎設置是baidu嗎?

            事情不是你想的那樣,因為我裝了google工具欄,大部分搜索都是通過google工具欄進行的。所謂左谷歌,右百度,百度只有偶爾谷歌被抽風時才用。
              回復  更多評論
              

            久久久久久国产精品免费无码| 久久婷婷国产综合精品| 94久久国产乱子伦精品免费| 狠狠综合久久综合中文88| 亚洲精品国产自在久久| 久久婷婷五月综合97色一本一本| 久久伊人精品青青草原高清| 亚洲性久久久影院| 久久成人精品视频| 久久亚洲精品无码aⅴ大香| 国内精品伊人久久久久av一坑 | 四虎影视久久久免费| 久久久一本精品99久久精品88| 久久精品亚洲男人的天堂| 蜜臀av性久久久久蜜臀aⅴ| 久久本道综合久久伊人| 国产成人精品久久免费动漫| 2021久久精品免费观看| 色欲综合久久躁天天躁| AA级片免费看视频久久| 国产日产久久高清欧美一区| 久久精品一区二区三区AV| 久久国产精品免费| 精品久久久久中文字| 91久久九九无码成人网站| 国产精品99久久久久久人| 久久香综合精品久久伊人| 久久婷婷国产综合精品| 久久午夜伦鲁片免费无码| 无遮挡粉嫩小泬久久久久久久| 一级女性全黄久久生活片免费 | 久久伊人亚洲AV无码网站| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 久久亚洲精品国产精品婷婷 | 2021久久精品免费观看| 久久久久亚洲AV无码专区网站| 国产亚州精品女人久久久久久 | 一级做a爰片久久毛片毛片| 久久综合久久综合亚洲| 国内精品久久久久影院薰衣草| 久久综合九色综合网站|