我正在制作一个基于广播的应用程序,我正在使用videoCore库进行广播,我正在使用下面的代码来启动rtmp会话
[_session startRtmpSessionWithURL:urlForStream
andStreamKey:streamID];urlForStream是wowza服务器的url,就像rtmp://some.tv/some/username/username/randamvalue一样,Randam值是不想每次都覆盖我的视频,所以我使用这个url,现在我的问题是VCSessionState类的状态没有改变,它没有进入启动状态,我收到的错误是streamsessio.mm类和NSRL(m_runLoop)运行;我不知道我错过了哪里,请帮我解决问题
发布于 2015-11-17 14:25:44
考虑到我创建了自己的RTMP协议库的经验,我认为您必须将URL分成两部分: tcUrl和流密钥。在您的情况下,随机值很可能是流密钥。
NSString *tcUrl;
NSString *stream;
separateRtmpUrl(urlForStream, &tcUrl, &stream);
[_session startRtmpSessionWithURL:tcUrl andStreamKey:stream];separateRtmpUrl函数的定义可以是这样的。
static void separateRtmpUrl(NSString *baseUrl, NSString **tcUrl, NSString **stream)
{
NSURL *url = [NSURL URLWithString:baseUrl];
*stream = url.pathComponents.lastObject;
*tcUrl = [NSString stringWithFormat:@"%@://%@%@", url.scheme, url.host,
[NSString pathWithComponents:
[url.pathComponents subarrayWithRange:
NSMakeRange(0, url.pathComponents.count - 1)]]];
if (url.query) {
*stream = [@[*stream , url.query] componentsJoinedByString:@"?"];
*tcUrl = [@[*tcUrl , url.query] componentsJoinedByString:@"?"];
}
}https://stackoverflow.com/questions/33749916
复制相似问题