重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
【阐光直播系统】建议:如果自己建视频直播系统的话,首先你要有相关的技术经验或者能组建相关的团队。而且要有充足的资金和时间,因为在这个过程中可能会遇到各种问题。但是现在互联网公司很多都有开发好的直播系统软件,直接做一些UI界面方面的改动,就可以直接使用。而且要想获得好的人气的话,还需要有不同的平台,网站、手机app,如果你用到一些专门的行业可能还需要一些特殊的功能。因此如果全部自己开发的话,性价比不是很高。
创新互联公司服务项目包括龙城网站建设、龙城网站制作、龙城网页制作以及龙城网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,龙城网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到龙城省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通讯等技术,每一个技术都够你学几年的。
首先从main.m文件的main函数开始执行的。
int main(int argc, char * argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
//1、principalClassName:应用程序对象的类名(UIApplication或其子类)
//2、delegateClassName:应用程序delegate的类名。(任何接受了UIApplicationDelegate的类)
UIApplicationMain根据上述两个类名创建应用程序实例、应用程序代理实例。然后建立事件循环(runloop),检测程序的各种事件(程序开始启动,接收到触摸等等)
在执行UIApplicationMain函数时做了跳转,转到了AppDelete中。应用程序代理,主要检测应用程序的状态并做出相应的处理。应用程序的状态有很多,比如:程序启动、进入活跃状态、进到后台、内存警告、收到远程消息等等。任何接受了UIApplicationDelegate协议的对象都可以成为应用程序代理。一旦应用程序的某种状态触发,就会执行相应的代理方法。UIApplicationDelegate是一个OC的协议。里面声明了一堆方法,这些方法都与应用程序运行状态有关,它们由应用程序代理实现。UIApplication对象负责调用。
application:didFinishLaunchingWithOptions:告诉delegate程序启动即将完成,程序准备要运行。(delegate实现这个方法时,要创建window对象,将程序内容通过window呈现给用户。),在该方法中为我们应用程序创建window等必要的界面
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];//初始化window
self.window.backgroundColor = [UIColor grayColor];//设置window的背景色
[self.window makeKeyAndVisible];//把window设置为主视图
[self.window setRootViewController:[[UIViewController alloc] init]];//设置window的根视图控制器
return YES;
}
applicationWillResignActive:程序即将结束活跃状态,(例如:突然来电话,短信,下来菜单栏等)就会执行该方法,一般在该方法中做一些必要信息的存储,和一些暂停动作。例如,游戏正在进行时,要暂停游戏
- (void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"*****%s",__func__);//__func__打印方法名
}
applicationDidEnterBackground:程序已经进入后台,如果程序长期在后台呆着,有可能会退出,所以在该方法中要进行一些重要数据的持久化。(按Home键)
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"*****%s",__func__);
}
applicationWillEnterForeground:程序即将进入前台,一般式在程序由后台进入该程序的时候执行该方法
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"*****%s",__func__);
}
applicationDidBecomeActive:告诉delegate应用程序已经进入活跃状态(重新执行被暂停的任务),程序启动或者由后台进入前台都会执行该方法
- (void)applicationDidBecomeActive:(UIApplication *)application
{
NSLog(@"*****%s",__func__);
}
applicationWillTerminate:即将退出时执行该方法
- (void)applicationWillTerminate:(UIApplication *)application{
NSLog(@"*****%s",__func__);
}
使用的工具:
README.md文件:
框架的描述文件。
编译语言。
程序在被执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要翻译,所以编译型语言的程序执行效率高,比如OC,C,C++。
解释性语言
解释性语言的程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才翻译。
脚本语言。
属于解析语言,必须通过解释器解析,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。
shell解释器
shell是一个命令行解释器,相当于windows的cmd,处于内核和用户之间,负责把用户的指令传递给内核并且把执行结果回显给用户。
bash
bash是一种shell解释器版本,shell有很多种版本,就像人,也分不同国家的人。
shell
指的是shell脚本语言,而不是shell解释器。
步骤:
下载ijkPlayer,打开Demo,查看用法,一般学习第三方库,都是先查看Demo。
找到ijkPlayerMediaDemo并运行。
打开终端,cd进入到ijkplayer-master的目录中。
输入./init-ios.sh,就会执行当前脚本了。
执行完脚本后,就会发现ijkplayer中有ffmpeg了。
打开 IJKMediaPlayer库,查看下源码,右击,发现FFMPEG中的库都是红的,表示不存在。
查看ijkplayer的README.md。
需要掌握的知识:
前期需求规划与信息——你需要制定出一个完整的需求文档,功能文档,流程图,时序图。
熟练掌握App发布的流程,真机调试技巧,证书,打包,上架。 App开发其实不一定适合一个人搞,太费劲,除非是一个单机版的小应用,或者利用现成的app开发简单的第三方应用,否则还是让一个团队来完成各自擅长的领域。
交互设计、UI设计——设计出基本且完善的原型图和app基础的交互设计效果,之后再根据这些设计出完整的UI界面并学会切图,一些需要做自适应的素材图片需要做点9patch。