@TOC
開發(fā)靈感
國內(nèi)現(xiàn)在視頻類知名網(wǎng)站主要有:愛奇藝茉继、優(yōu)酷咧叭、騰訊視頻、搜狐視頻烁竭、樂視視頻菲茬、芒果TV、Bilibili等颖变。這些網(wǎng)站都有各自的付費VIP視頻生均,我雖然很少去看這些視頻啦听想,我主要是看一些新聞類的腥刹,這些都是免費的。但是汉买,生活中很多同事衔峰、朋友都在追劇,在辦公室在學(xué)校經(jīng)常會聽到某某有沒有XX視頻的VIP賬號蛙粘?生活中其實很多人都開通了這些視頻網(wǎng)站的VIP垫卤。然而,依舊問題嚴重出牧,因為很多電影&電視劇是版權(quán)獨家的穴肘,只有某個視頻站才能觀看,那么買的其他站的VIP那不就是無效了嗎舔痕?當(dāng)然评抚,對于開發(fā)者來說,網(wǎng)上很多瀏覽器插件可以解決這個問題伯复,比如Greasy Fork插件就牛的一逼慨代,各種VIP視頻、網(wǎng)盤資源等都不在話下啸如。對于某部分人來說侍匙,上班偷偷看看手機不方便看電腦、回家路上看手機叮雳,但是手機端并沒有這些插件呀想暗。于是,筆者想設(shè)計一個APP帘不,讓手機端可以方便的查看各種視頻江滨,正式這個原因,著手開發(fā)了厌均,花了兩天時間把APP做出來了唬滑,測試能夠播放各個站點的VIP視頻。下面是APP的源碼:
功能需求設(shè)計
-
解析播放各大站點的VIP視頻是核心,對于視頻解析來說晶密,整個過程是比較復(fù)雜的擒悬,筆者查看很多相關(guān)資料,各大戰(zhàn)點都做了多層的視頻鏈接加密稻艰,還做了視頻分段處理懂牧。筆者也就懶得去做了,直接調(diào)用了其他站點的解析地址尊勿。
實現(xiàn)了6個站點的VIP視頻解析
下面是視頻解析播放的方法僧凤,在進入視頻播放也后選擇播放線路(部分播放線路可能被和諧了播放不了,可以選擇其他的線路)元扔,然后點擊右下角播放圖片按鈕會跳轉(zhuǎn)到視頻解析播放的頁面(筆者就偷懶了躯保,自己不做這部分了,調(diào)用的別人現(xiàn)成的)澎语。
視頻解析播放方式 - 界面設(shè)計優(yōu)雅整潔途事,設(shè)計APP時間腳本,各種的圖片資源都是網(wǎng)上直接找的擅羞,界面設(shè)計也用了第三方庫尸变,可以加快開發(fā)過程。下面兩個Material Design資源的網(wǎng)站减俏,大家可以去找到各種精美的界面召烂、圖標(biāo)設(shè)計等。
Material Design圖標(biāo)
Material Design綜合大站 - 為了豐富功能娃承,添加了廣告投放和APP授權(quán)功能奏夫。另外、還有加入QQ群草慧、分析APP等功能桶蛔。當(dāng)然,APP是免費給大家用的漫谷,授權(quán)碼只是給開發(fā)者有興趣的去改進而已仔雷。授權(quán)碼:1234
其他功能
代碼編寫
APP功能需求準(zhǔn)備好了,下面就要開始著手編程實現(xiàn)了舔示。
框架搭建
對于一個APP來說碟婆,框架設(shè)計占有極其重要的部分,一個APP的編程框架設(shè)計好了惕稻,以后的開發(fā)可以避免很多彎路竖共,也能節(jié)省很多的開發(fā)時間。很多程序員之所以會是程序猿就是因為在走很多彎路俺祠,浪費了大量的時間公给,導(dǎo)致經(jīng)常加班加點的工作借帘。在我看來,程序是用來設(shè)計的淌铐,不是用來干苦力的肺然。在本APP中,為了節(jié)省開發(fā)周期腿准,很多的工作都沒有做际起,比如網(wǎng)絡(luò)請求、注解吐葱、MVP街望、MVVM等。只用簡單的原生API快速完成功能弟跑,代碼中的字符串也都是寫死的灾前,沒有使用xml去配置,在企業(yè)的APP是不能這么寫的窖认。所以本APP基本是沒有框架的豫柬,整個APP的代碼文件也不超過十個告希,總代碼量不超過2000行扑浸,實在是精簡的不能再說了。
第三方庫引入
程序中使用部分第三方庫燕偶,都是行業(yè)比較成熟的喝噪,經(jīng)過市場的認證,不用擔(dān)心出什么問題指么。下面是gradle中的配置:
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0-rc02'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support:support-v4:28.0.0-rc02'
implementation 'com.github.bumptech.glide:glide:4.8.0'
implementation 'com.squareup.okhttp3:okhttp:3.11.0'
implementation 'eu.the4thfloor.volley:com.android.volley:2015.05.28'
implementation 'com.alibaba:fastjson:1.2.49'
implementation 'com.youth.banner:banner:1.4.10'
}
代碼編寫
編程過程就不說了酝惧,太簡單了,Android開發(fā)入門的人都能很清晰的看懂代碼伯诬。這里說一下晚唇,對于授權(quán)碼部分,調(diào)用了一個native層函數(shù)盗似,用C++編寫的哩陕,只是為了說明為了安全,部分重要的數(shù)據(jù)是需要放到C++中做的赫舒,不說了悍及,太簡單了。下面是所有代碼文件:
開源與總結(jié)
整個開發(fā)過程耗時2天接癌,剛好這周學(xué)校的學(xué)生軍訓(xùn)心赶,筆者一天也就兩節(jié)課,可以有大量的時間寫這個APP缺猛。筆者除了現(xiàn)在學(xué)校的課程外缨叫,還在準(zhǔn)備線上課程椭符,時間比較忙,寫這個APP花了兩天耻姥,周末又要加班準(zhǔn)備課程內(nèi)容了艰山。源代碼通過git托管到了github上,有興趣或者想二次開發(fā)的朋友可以去下載咏闪。