【发布时间】:2014-09-21 15:04:56
【问题描述】:
我需要在 SWIFT 中创建一个实时流媒体应用程序
使用 AVFoundation 框架(AVPLayer 和 AVPlayeritem)尝试了多种方法,但没有成功
这只是音频,所以我不想以 webview 的方式来做。
提前致谢
【问题讨论】:
标签: xcode swift streaming xcode6 avplayer
我需要在 SWIFT 中创建一个实时流媒体应用程序
使用 AVFoundation 框架(AVPLayer 和 AVPlayeritem)尝试了多种方法,但没有成功
这只是音频,所以我不想以 webview 的方式来做。
提前致谢
【问题讨论】:
标签: xcode swift streaming xcode6 avplayer
您可以尝试利用 VideoCore 库将这些框架包装到一个完整的流包中。有了这个包,您可以轻松地开始发布。考虑以下几点(从他们的示例项目中复制):
启动连接(Obj-C):
VCSimpleSession *sess = [[VCSimpleSession alloc] initWithVideoSize:CGSizeMake(width, height) frameRate:frameRate bitrate:bitrate] useInterfaceOrientation:YES];
sess.delegate = self;
启动连接(Swift):
var sess:VCSimpleSession = VCSimpleSession(videoSize: CGSize(width: width, height: height), frameRate: frameRate, bitrate: bitRate, useInterfaceOrientation: false)
sess.delegate = self;
利用事件处理程序(Obj-C):
- (void) connectionStatusChanged:(VCSessionState) state{
if(state==VCSessionStateStarting){
// connecting to destination host
}
else if(state==VCSessionStateStarted){
// connected, streaming has begun
}
// ... etc
}
利用事件处理程序(Swift):
func connectionStatusChanged(sessionState: VCSessionState) {
switch session.rtmpSessionState {
case .Starting:
// initiating connection
case .Started:
// connected
default:
// connect
}
}
或者,您可以使用付费 SDK 获得支持,例如 Wowza's GoCoder SDK。更多选择和稳定的基础设施。
谢谢
马特
【讨论】: