使用的工具:
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、成都網(wǎng)站建設(shè)、額濟(jì)納網(wǎng)絡(luò)推廣、微信小程序、額濟(jì)納網(wǎng)絡(luò)營(yíng)銷、額濟(jì)納企業(yè)策劃、額濟(jì)納品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供額濟(jì)納建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
README.md文件:
框架的描述文件。
編譯語(yǔ)言。
程序在被執(zhí)行之前,需要一個(gè)專門的編譯過(guò)程,把程序編譯成為機(jī)器語(yǔ)言的文件,運(yùn)行時(shí)不需要翻譯,所以編譯型語(yǔ)言的程序執(zhí)行效率高,比如OC,C,C++。
解釋性語(yǔ)言
解釋性語(yǔ)言的程序不需要編譯,在運(yùn)行程序的時(shí)候才翻譯,每個(gè)語(yǔ)句都是執(zhí)行的時(shí)候才翻譯。
腳本語(yǔ)言。
屬于解析語(yǔ)言,必須通過(guò)解釋器解析,將其一條條的翻譯成機(jī)器可識(shí)別的指令,并按程序順序執(zhí)行。
shell解釋器
shell是一個(gè)命令行解釋器,相當(dāng)于windows的cmd,處于內(nèi)核和用戶之間,負(fù)責(zé)把用戶的指令傳遞給內(nèi)核并且把執(zhí)行結(jié)果回顯給用戶。
bash
bash是一種shell解釋器版本,shell有很多種版本,就像人,也分不同國(guó)家的人。
shell
指的是shell腳本語(yǔ)言,而不是shell解釋器。
步驟:
下載ijkPlayer,打開Demo,查看用法,一般學(xué)習(xí)第三方庫(kù),都是先查看Demo。
找到ijkPlayerMediaDemo并運(yùn)行。
打開終端,cd進(jìn)入到ijkplayer-master的目錄中。
輸入./init-ios.sh,就會(huì)執(zhí)行當(dāng)前腳本了。
執(zhí)行完腳本后,就會(huì)發(fā)現(xiàn)ijkplayer中有ffmpeg了。
打開 IJKMediaPlayer庫(kù),查看下源碼,右擊,發(fā)現(xiàn)FFMPEG中的庫(kù)都是紅的,表示不存在。
查看ijkplayer的README.md。
需要掌握的知識(shí):
前期需求規(guī)劃與信息——你需要制定出一個(gè)完整的需求文檔,功能文檔,流程圖,時(shí)序圖。
熟練掌握App發(fā)布的流程,真機(jī)調(diào)試技巧,證書,打包,上架。 App開發(fā)其實(shí)不一定適合一個(gè)人搞,太費(fèi)勁,除非是一個(gè)單機(jī)版的小應(yīng)用,或者利用現(xiàn)成的app開發(fā)簡(jiǎn)單的第三方應(yīng)用,否則還是讓一個(gè)團(tuán)隊(duì)來(lái)完成各自擅長(zhǎng)的領(lǐng)域。
交互設(shè)計(jì)、UI設(shè)計(jì)——設(shè)計(jì)出基本且完善的原型圖和app基礎(chǔ)的交互設(shè)計(jì)效果,之后再根據(jù)這些設(shè)計(jì)出完整的UI界面并學(xué)會(huì)切圖,一些需要做自適應(yīng)的素材圖片需要做點(diǎn)9patch。
安卓開發(fā):在直播系統(tǒng)開發(fā)中,安卓的開發(fā)環(huán)境是在AndroidStudio軟件上進(jìn)行開發(fā),AndroidStudio軟件在Windows和Mac系統(tǒng)上都可以安裝使用,而安卓的開發(fā)語(yǔ)言是使用Java進(jìn)行開發(fā)。
iOS開發(fā):在直播系統(tǒng)開發(fā)中iOS的開發(fā)環(huán)境是使用Xcode軟件進(jìn)行開發(fā),而Xcode這個(gè)軟件官方僅支持在Mac上進(jìn)行安裝和開發(fā),iOS的開發(fā)語(yǔ)言我們是使用Objective-C語(yǔ)言進(jìn)行開發(fā)。
首先從main.m文件的main函數(shù)開始執(zhí)行的。
int main(int argc, char * argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
//1、principalClassName:應(yīng)用程序?qū)ο蟮念惷║IApplication或其子類)
//2、delegateClassName:應(yīng)用程序delegate的類名。(任何接受了UIApplicationDelegate的類)
UIApplicationMain根據(jù)上述兩個(gè)類名創(chuàng)建應(yīng)用程序?qū)嵗?、?yīng)用程序代理實(shí)例。然后建立事件循環(huán)(runloop),檢測(cè)程序的各種事件(程序開始啟動(dòng),接收到觸摸等等)
在執(zhí)行UIApplicationMain函數(shù)時(shí)做了跳轉(zhuǎn),轉(zhuǎn)到了AppDelete中。應(yīng)用程序代理,主要檢測(cè)應(yīng)用程序的狀態(tài)并做出相應(yīng)的處理。應(yīng)用程序的狀態(tài)有很多,比如:程序啟動(dòng)、進(jìn)入活躍狀態(tài)、進(jìn)到后臺(tái)、內(nèi)存警告、收到遠(yuǎn)程消息等等。任何接受了UIApplicationDelegate協(xié)議的對(duì)象都可以成為應(yīng)用程序代理。一旦應(yīng)用程序的某種狀態(tài)觸發(fā),就會(huì)執(zhí)行相應(yīng)的代理方法。UIApplicationDelegate是一個(gè)OC的協(xié)議。里面聲明了一堆方法,這些方法都與應(yīng)用程序運(yùn)行狀態(tài)有關(guān),它們由應(yīng)用程序代理實(shí)現(xiàn)。UIApplication對(duì)象負(fù)責(zé)調(diào)用。
application:didFinishLaunchingWithOptions:告訴delegate程序啟動(dòng)即將完成,程序準(zhǔn)備要運(yùn)行。(delegate實(shí)現(xiàn)這個(gè)方法時(shí),要?jiǎng)?chuàng)建window對(duì)象,將程序內(nèi)容通過(guò)window呈現(xiàn)給用戶。),在該方法中為我們應(yīng)用程序創(chuàng)建window等必要的界面
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {