WCS предоставляет SDK для разработки клиентских приложений на платформе iOS
1. Для теста используем:
2. Откройте веб-приложение Two Way Streaming. Нажмите Connect, затем Publish. Скопируйте идентификатор потока:
3. Запустите приложение для трансляции потока на iPhone. Введите URL WCS-сервера и имя опубликованного потока, нажмите "Play". Начнется воспроизведение потока с сервера:
Ниже описана последовательность вызовов при использовании примера Player
1. Установка соединения с сервером.
Flashphoner.createSession(); code
FPWCSApi2SessionOptions *options = [[FPWCSApi2SessionOptions alloc] init]; options.urlServer = _connectUrl.text; options.appKey = @"defaultApp"; NSError *error; FPWCSApi2Session *session = [FPWCSApi2 createSession:options error:&error]; |
2. Получение от сервера события, подтверждающего успешное соединение.
ConnectionStatusEvent ESTABLISHED code
[session on:kFPWCSSessionStatusEstablished callback:^(FPWCSApi2Session *rSession){ [self changeConnectionStatus:[rSession getStatus]]; [self onConnected:rSession]; }]; |
3. Запуск воспроизведения потока.
session.createStream(); code
- (FPWCSApi2Stream *)playStream { FPWCSApi2Session *session = [FPWCSApi2 getSessions][0]; FPWCSApi2StreamOptions *options = [[FPWCSApi2StreamOptions alloc] init]; options.name = _remoteStreamName.text; options.display = _remoteDisplay; NSError *error; FPWCSApi2Stream *stream = [session createStream:options error:nil]; if (!stream) { ... return nil; } |
4. Получение от сервера события, подтверждающего успешное воспроизведение потока.
StreamStatusEvent, статус PLAYING code
[stream on:kFPWCSStreamStatusPlaying callback:^(FPWCSApi2Stream *rStream){ [self changeStreamStatus:rStream]; [self onPlaying:rStream]; }]; |
5. Прием аудио-видео потока по WebRTC
6. Остановка воспроизведения потока.
session.disconnect(); code
if ([button.titleLabel.text isEqualToString:@"STOP"]) { if ([FPWCSApi2 getSessions].count) { FPWCSApi2Session *session = [FPWCSApi2 getSessions][0]; NSLog(@"Disconnect session with server %@", [session getServerUrl]); [session disconnect]; } else { NSLog(@"Nothing to disconnect"); [self onDisconnected]; } ... } |
7. Получение от сервера события, подтверждающего остановку воспроизведения потока.
ConnectionStatusEvent DISCONNECTED code
[session on:kFPWCSSessionStatusDisconnected callback:^(FPWCSApi2Session *rSession){ [self changeConnectionStatus:[rSession getStatus]]; [self onDisconnected]; }]; |