編輯:關於Android編程
在蘋果的iOS下面,有個應用Air Video,可以在iOS下通過Wifi遠程直接播放電腦裡的視頻,而不需要把視頻復制到手機上再看。非常好用!最近用了Android的手機,想找類似的應用,找了很久都沒找到。仔細想了下AirVideo的工作原理,和優酷等視頻網站類似,在Android下面應該也可以有類似的方法實現。
今日在華為榮耀6上面終於驗證通過了一個完美的方案,趕緊放上來和有同樣需要的朋友們分享分享。
先說一下Air Video的工作原理:
1) 在Windows下面安裝Air Video Server服務器,並設置允許遠程觀看的視頻文件目錄
2) 通過蘋果的AppStore下載AirVideo客戶端,並安裝
Air Video蘋果客戶端是收費的,似乎還不便宜,當然越獄以後就不存在這個問題了
3) Air Video客戶端連接Windows的服務端,可以看到服務端各目錄的視頻文件列表,並選擇播放。其中:
MP4可以直接播放,RMVB\FLV等需要服務端實時轉換成MP4的視頻流,再傳給iOS上的客戶端
注:實時轉換,看Windows系統的CPU占用其實還是挺高的,非常不環保
蘋果裡面AirVideo客戶端播放視頻的播放器,看起來和直接播放優酷等視頻網站的播放器,看起來其實是一樣的。於是懷疑,AirVideo發送到客戶端的MP4視頻流,和WEB環境下的MP4視頻流可能是相同的,都是通過HTTP地址訪問。當然,這種說法只是猜測,全無依據。基於該想法,只要建一個WEB服務,能在手機上通過該WEB地址提供視頻流,手機上即可觀看電腦上的視頻。
具體步驟來了,折騰了幾天,自己也沒想到結果可以這麼簡單:
一)從網上下載TOMCAT並安裝,我是從這個地址下載了綠色版TOMCAT5.5,如果原來已經有TOMCAT,可以跳過這一步
http://www.rsdown.cn/down/32748.html
a) 下載後可以瘦身一下,刪除掉這幾個目錄下的內容後,整個目錄只有5Mb左右(目錄不能刪)
webapps/
server/webapps/
conf/Catalina/localhost/
b) 如果原來已經安裝了tomcat,已經有CATALINA_HOME環境變量,現在重新下載一個,需要:
- 使用文本編輯bin/startup.bat文件
- 在11行前面加上 REM,注釋掉該行內容,否則仍會用系統的CATALINA_HOME環境變量
REM if not "%CATALINA_HOME%"== "" goto gotHome
c) 到conf目錄下,采用最簡單的server配置文件
- 重命名server.xml為server-normal.xml
- 重命名server-minimal.xml為server.xml
二)TOMCAT缺省不支持URL裡面包含中文,這會導致文件名為中文的視頻不能播放,方法:
使用文本編輯server.xml,設置Connector的URIEncoding為utf-8,如:
參考地址:http://www.williamlong.info/archives/469.html
三)設置視頻文件目錄的內容,允許通過TOMCATWEB發布。方法:
使用文本編輯server.xml,設置Host及Context,我的修改後如下
這樣,可以通過http://localhost:8080/地址訪問C:\TDDOWNLOAD\目錄的視頻文件;
通過http://localhost:8080/fd/ 地址訪問C:\FDOWNLOAD\目錄的視頻文件;
四)使TOMCAT可以支持直接WEB浏覽器查看目錄下面文件的列表,查看的效果如下:
配置方法:
使用文本編輯conf/web.xml,查找listings,並設置參數為true。
五)在安卓手機上安裝UC浏覽器。相信很多人都已經使用UC,這個就不細說步驟了。
注:在同一個手機上試了UC和Chrome,發現Chrome只能下載RMVB/FLV,不能播放,但UC可以,因此,要求用UC
六) 此時,執行TOMCAT在bin目錄下的startup.bat啟動TOMCAT,並將手機和電腦連接到同一網絡;
接下來,使用UC應該已經可以查看TOMCAT發布的網頁了,UC的地址如:http://192.168.1.123:8080/,IP地址為TOMCAT所在電腦的地址
嘗試點擊其中的*.MP4文件,會出現下面的提示。選擇[在線播放],哈哈,MP4已經可在手機上直接看了
七)革命尚未成功,試一下RMVB/FLV文件,發現還是不能看的。重新回到TOMCAT的配置文件
使用文本編輯器打開bin/web.xml,在mp4的設置下面,增加rmvb和flv的mime類型。
接下來,重啟TOMCAT,重新在UC裡面嘗試點擊*.RMVB和*.FLV的文件,如果都能夠播放,說明你很運氣。如果還是不行,實在不好意思,我只能做到這些了。本人使用一款酷派8150s低端手機測試,也同樣不能看RMVB/FLV的視頻,但榮耀6就非常正常。這可能和安卓操作系統版本,或廠商的定制有關。
其他補充:
1) Windows下面的Chrome也只能支持播放MP4;如果浏覽器不能支持,但還是非常想要在手機上看RMVB/FLV,可以麻煩點,在電腦上先使用格式工廠都轉換成MP4格式
2) Air Video, 格式工廠都是使用ffmpeg, mp4creator等開源項目轉換MP4視頻流的,並且是通過命令行調用。通過手機控制電腦轉換格式為MP4,應該可以進一步研究,不過不是專業就太浪費時間了
3) 也嘗試了使用jsp文件,來做視頻文件的展示,安卓需要的HTML5非常簡單,不過看起來效果和前面配置的結果沒什麼差別。HTML5網頁嵌入視頻代碼范例如下
初步分析的結果,視頻網頁為了同時支持在IE、Chrome、Android、iOS播放視頻,需要根據HTTP請求消息頭的浏覽器類型判斷,嵌入不同的視頻播放代碼,甚至提供不同的視頻文件格式。iOS真的就只能支持MP4的播放,其他格式都不支持….
提煉為常量是從臨時變量快速提煉出靜態常量,這也是我們常用的重構手段.操作步驟:? 菜單欄: Refactor —> Extract —>
簡介項目開發中發現問題、解決問題這個過程中會出現很多問題,比如重復出現、某個問題的遺留,這些問題的本質就是設計模式。今天記錄設計模式的知識點。內容在java以及其他的面向
Android WebView In NestedScrollView 加載騰訊新聞頁面 點擊彈出層 bug 小記。目的是: CoordinatorLayou+AppBa
前言、動畫分類 如下圖所示,Android的動畫主要分為三種: 動畫XML的代碼如下—— 對動畫xml的說明如下: a