一:想从0开始首页需要RTMP服务器吧
请看去年写的这篇文章 30分钟跑直播 客户端(iOS)+服务端(nginx--rtmp-module)
二:从哪开始呢~啥都不管 我第一步先从建立链接开始吧
- (void)connectToServer:(NSString *)host port:(UInt32)port {
if (port <= 0) {
//RTMP默认端口,1935
port = 1935;
}
//CFNetwork 接口是基于 C 的,下面的接口用于创建一对 socket stream,一个用于读取,一个用于写入:
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
//建立socket链接
CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)(host), port, &readStream, &writeStream);
//引用
_inputStream = (__bridge_transfer NSInputStream *)(writeStream);
_outputStream = (__bridge_transfer NSOutputStream *)(readStream);
_inputStream.delegate = self;
_outputStream.delegate = self;
[_outputStream scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
[_inputStream scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
[_inputStream open];
[_outputStream open];
}
- (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode {
switch (eventCode) {
case NSStreamEventNone: {
return;
}
case NSStreamEventOpenCompleted: {
if (_inputStream == aStream ) {
NSLog(@"连接成功");
}
break;
}
case NSStreamEventHasBytesAvailable: {
NSLog(@"有字节可读");
break;
}
case NSStreamEventHasSpaceAvailable: {
NSLog(@"可以发送字节");
break;
}
case NSStreamEventErrorOccurred: {
NSLog(@"连接出现错误");
break;
}
case NSStreamEventEndEncountered: {
NSLog(@"连接结束");
break;
}
}
}