iOS SDK Specification

Contents

PlayRTC SDK Overview

Overview

PlayRTC SDK는 iOS기반의 단말기에서 SKT PlayRTC 플랫폼 서비스과 연동하여 WebRTC 기반의 P2P 서비스를 구현할 수 있도록 제공되는 SDK이며. PlayRTC SDK의 주요 기능으로는 다음과 같습니다.

  • 채널링서버와의채널링기능제공
  • 시그널서버와의시그널링기능제공
  • 미디어스트리밍을위한 P2P 설정및통신기능제공
  • P2P 데이터교환을위한설정및통신기능제공
  • P2P를서비스구현을지원하기위한부가기능

SDK Specification – PlayRTCFactory

 

header : PlayRTCFactory.h

PlayRTC 인터페이스 내부 구현 객체를 생성하여 반환하는 Factory Class로 PlayRTC 인터페이스를 반환합니다.

 


newInstance:(PlayRTCSettings*)settings observer:(id<PlayRTCObserver>)observer

PlayRTC 인터페이스 내부 구현 개체를 생성하고 PlayRTC 인터페이스를 반환합니다.

v2.2.5 버전 제거

Prototype

+ (PlayRTC*)newInstance:(PlayRTCSettings*)settings observer:(id<PlayRTCObserver>)observer

Parameters

 Argumant Name  Data Type  Description
settings PlayRTCSettings PlayRTCSetting 개체.PlayRTCSettings* settings = [[PlayRTCSettings alloc] init];

이하 서비스 설정.

 observer id<PlayRTCObserver> PlayRTC 인터페이스를 구현한 내부 개체의 이벤트를 접달받기 위한 리스너인터페이스의 구현 개체

 

Return

PlayRTC*, PlayRTC 인터페이스를 반환합니다.

 


createConfig – new 2.2.0

PlayRTC SDK 설정 정보를 정의하는 PlayRTConfig 개체를 생성하여 반환합니다.

version 2.2.0

Prototype

+ (PlayRTCConfig*)createConfig

Parameters

없음

 

Return

PlayRTCConfig*, PlayRTCConfig 인터페이스를 반환합니다.

 


createPlayRTC:(PlayRTCConfig*)config observer:(id<PlayRTCObserver>)observer – new 2.2.0

PlayRTC 인터페이스 내부 구현 개체를 생성하고 PlayRTC 인터페이스를 반환합니다.

version 2.2.0

 

Prototype

+ (PlayRTC*)createPlayRTC:(PlayRTCConfig*)config observer:(id<PlayRTCObserver>)observer

Parameters

 Argumant Name  Data Type  Description
config PlayRTCConfig PlayRTCConfig 개체.PlayRTCConfig* config = [[PlayRTCFactory createConfig];

이하 서비스 설정.

 observer id<PlayRTCObserver> PlayRTC 인터페이스를 구현한 내부 개체의 이벤트를 접달받기 위한 리스너인터페이스의 구현 개체

Return

PlayRTC*, PlayRTC 인터페이스를 반환합니다.

 


 

PlayRTC

PlayRTC SDK의 대표인터페이스 Class로 SDK 내부의 구현 개체는 PlayRTCConfig(v1.1.0이하 PlayRTCSettings)  설정 정보로 WebRTC서비스를 위한 내부개체 초기화를 수행하고 PlayRTC 플랫폼 서비스에 연결하여 채널 및 시스널링을 수행하여 단말간 P2P 연결을 수립합니다. PlayRTC는 P2P 연결을위한 전반적인 기능을제공하기 위해 인터페이스가 정의되어 있으며 내부의 주요 이벤트를 전달받기위해서는 PlayRTCObserver 인터페이스 구현 개체가 필요합니다.

 



1. PlayRTC 개체 생성

PlayRTCFactory의 인스턴스 생성  메소드(createPlayRTC)로 내부 구현 개체를 생성합니다. 이때  서비스 환경 설정을 위한PlayRTCConfig()개체와이벤트를 전달받기 위한PlayRTCObserver 인터페이스 구현 Class를 전달 받습니다.

2. PlayRTC 플랫폼 서비스 채널 입장

PlayRTC 플랫폼 채널 Service에 새로운 채널을 생성하거나, 기존의 채널에 입장하여 P2P연결 수립을 수행합니다. PlayRTC 플랫폼 채널 Service는 channelId, token를 필요로 하며 이 값은 채널 생성 또는 채널 입장 과정에서 내부적으로 전달 받습니다. channelId의 경우 채널 생성 시에 생성되어 전달 받으며, 상대방 사용자는 이값을 전달 받아 채널에 입장을 합니다.

3. 로컬미디어스트림 출력

채널 서버에 연결 되면 SDK는 로컬 영상/음성 스트림을 제어를 위한 개체를 생성하여 PlayRTCObserver의 onAddLocalStream 을 통해 PlayRTCMedia인터페이스를 전달하며, 전달 받은 PlayRTCMedia에 영상 출력 뷰의 렌더러를 전달하여 영상을 출력하도록 해야 합니다.

 

4. 상대방과의 연결수락 과정진행

PlayRTCSetting의 channel.ring을 true로 설정하면 상호간에 연결수락 과정을 진행하며, PlayRTCObserver를통해서 상대방으로부터 연결수락을 받은경우와상대방으로부터의 연결 수락 의사를 수신한 경우등  두개의상황을처리해야합니다.

 

5. 연결수립 후 원격미디어스트림 출력

P2P연결 수립 후 상대방의 영상/음성 스트림을 제어를 위한 개체를 생성하여 PlayRTCObserver의 onAddRemoteStream을 통해 PlayRTCMedia인터페이스를 전달하며, 전달 받은 PlayRTCMedia에 영상 출력 뷰의 렌더러를 전달하여 영상을 출력하도록 해야 합니다.

6. 데이터 통신을 위한 PlayRTCData 인터페이스

상대방과 P2P가 연결 되면 데이터 스트림 통신을 위한 개체를 생성하고 PlayRTCObserver의 onAddDataStream인터페이스를 통해 전달받습니다. 데이터 스트림 객체의 상태와 오류 정보 및 데이터 수신을 처리 하기 위한 PlayRTCDataObserver 인터페이스 구현체를 등록하고, 데이터 송신 시 에는 메소드 인자로 playRTCSendDataObserver인터페이스 구현체를 전달해야 합니다.

 

7. PlayRTC의 상태 변경 정보와 오류 정보 처리

PlayRTC의 주요상태 변화와 오류 정보를 전달 받아 처리합니다.

 

8. 상대방과의연결종료처리

채널에서퇴장하거나채널을종료하여상대방과의연결을종료하도록합니다.


num PlayRTCStatus

  • PlayRTC 객체의 중요 상태 정의
  • header: PlayRTCDefine.h
 Name  Description
PlayRTCStatusNone PlayRTC 초기 상태.
PlayRTCStatusInitialize PlayRTC 라이브러리를 사용하기위한 초기화 및 설정상태
PlayRTCStatusChannelStart 채널 서비스에 채널 연결 준비(open) 단계
PlayRTCStatusChannelConnect 채널 서비스에 채널 연결(connect) 단계
PlayRTCStatusLocalMedia 로컬 영상 스트림을 얻기 위한 로컬미디어 생성
PlayRTCStatusChanneling 채널 서비스에 채널 입장, Channeling
PlayRTCStatusRing 상호간에 연결을 승인하거나 상대방의 연결 승인을 받는 상태
PlayRTCStatusPeerCreation P2P연결을 수행하는 내부 Connection 개체 생성
PlayRTCStatusSignaling 시그널 메타 데이터 교환
PlayRTCStatusPeerConnecting 상대방과의 P2P 연결을 수립하기 위해 연결을 시도하는 상태
PlayRTCStatusPeerDataChannel 상대방과의 P2P 연결 수립 완료 후 상대방의 데이터 통신을 위한 DataChannel 생성
PlayRTCStatusPeerMedia 상대방과의 P2P 연결 수립 완료 후 상대방의 영상/음성 스트림을 얻기 위한 미디어 스트림 생성
PlayRTCStatusPeerSuccess 상대방과의 P2P 연결 수립 성공
PlayRTCStatusPeerConnected 상대방과의 P2P 연결 상태. 네트워크 상태에 따라 disconnect와connect 이벤트가 여러번 일어날 수 있습니다.
PlayRTCStatusPeerDisconnected 상대방과의 P2P 연결 단절. 상태네트워크 상태에 따라 disconnect와connect 이벤트가 여러번 일어날 수 있습니다.
PlayRTCStatusPeerClosed P2P 연결이 명시적으로 종료한 상태
PlayRTCStatusUserCommand 채널 서비스를 통해서 사용자정의 데이터를 교환
PlayRTCStatusChannelDisconnected 채널 서비스 연결 종료
PlayRTCStatusClosed PlayRTC 종료
PlayRTCStatusNetworkConnected Network Connectivity Status connected 상태
PlayRTCStatusNetworkDisconnected etwork Connectivity Status disconnected 상태

 


 

enum PlayRTCCode

  • PlayRTC 객체의 오류 정의
  • header: PlayRTCDefine.h
Name Description
PlayRTCCodeNone PlayRTC 초기 상태. 오류 없음
PlayRTCCodeMissingParameter 필수 Parameter가 없음
PlayRTCCodeInvalidParameter 질못된 Parameter를 사용
PlayRTCCodeVersionUnsupported SDK 버전 지원하지 않음
PlayRTCCodeMediaUnsupported 단말기의 영상/음성 장치 미지원 또는 로컬미디어 생성 시 오류발생
PlayRTCCodeConnectionFail 채널/시그널 서비스에 연결 실패
PlayRTCCodeDisconnectFail 채널/시그널 서비스 연결 종료 시 오류
PlayRTCCodeSendRequestFail  채널/시그널 서비스에 데이터 전송 시 오류 발생
PlayRTCCodeMessageSyntax 채널/시그널 서비스 전문 오류 발생
PlayRTCCodeProjectIdInvalid 채널 서비스의 ProjectID 인증 실패
PlayRTCCodeTokenInvalid 채널/시그널 서비스의 사용자 Token 인증 실패
PlayRTCCodeChannelIdInvalid 채널 서비스의 채널 ID 인증실패
PlayRTCCodeServiceError 채널/시그널 서비스 오류
PlayRTCCodeMaxCount Peer 접속 인원 허용 초과
PlayRTCCodePeerIdInvalid 채널/시그널 서비스에서 사용자 아이디 인증 실패
PlayRTCCodePeerIdAlready 채널/시그널 서비스에 동일한 사용자 아이디가 등록 되어 있음
PlayRTCCodePeerInternalError P2P 연결 개체 내부 오류
PlayRTCCodePeerConnectionFail P2P 연결 실패
PlayRTCCodeSdpCreationFail P2P 연결을 위한 Session Description 생성 실패
PlayRTCCodeSdpRegistrationFail P2P 연결을 위한 Session Description 등록 실패
PlayRTCCodeDataChannelCreationFail P2P 데이터 통신을 위한 DataChannel 생성 실패
PlayRTCCodeNotConnect 채널 연결 개체가 없거나 채널에 연결되어 있지 않음
PlayRTCCodeConnectAlready 이미 채널 서비스에 연결한 상태


 

enum PlayRTCWhiteBalance

  • PlayRTC Camera WhiteBalance 정의
  • header: PlayRTCDefine.h
  • new 2.2.9
Name Description
PlayRTCWhiteBalanceAuto WhiteBalance 자동 설정
PlayRTCWhiteBalanceIncandescent WhiteBalance 백열등빛
PlayRTCWhiteBalanceFluoreScent WhiteBalance 형광등빛
PlayRTCWhiteBalanceDayLight WhiteBalance 햇빛/일광
PlayRTCWhiteBalanceCloudyDayLight WhiteBalance 흐린빛/구름 or 플래쉬
PlayRTCWhiteBalanceTwiLi WhiteBalance 저녁빛 아침이나 일몰 1~2시간전
PlayRTCWhiteBalanceShade WhiteBalance 그늘/그림자


getSettings

PlayRTC 서비스설정정보객체를반환합니다.

Prototype

</pre>
- (PlayRTCSettings*) getSettings
<pre>

 

Parameters

없음



Return

PlayRTCSettings*, PlayRTCSettings개체를 반환합니다. 
header : PlayRTCSettings.h

getPeerId

채널에 입장한 경우 채널에서 부여 받은 User의아이디를 반환합니다.

 

Prototype

- (NSString*) getPeerId

 

Parameters

없음



Return

NSString*, 채널에입장하여부여받은 User의아이디를반환합니다.

getChannelId

채널의아이디를반환합니다.

 

Prototype

- (NSString*) getChannelId

 

Paraeters

없음



Return

NSString*, 채널의아이디를반환합니다.

getLocalMedia

메소드 호출 시점에서 로컬미디어 스트림 개체가 생성되어 있다면 생성되어 있는 스트림객체의 인터페이스를 반환합니다.

생성 전이라면 nil.

 

Prototype

- (PlayRTCMedia*) getLocalMedia

 

Parameters

없음



Return

PlayRTCMedia*, 로컬미디어스트림객체의인터페이스를반환합니다. 생성전이라면 nil.
header: PlayRTCMedia.h

getRemoteMedia

메소드 호출 시점에서 상대방(peerId) 미디어 스트림 개체가 생성되어 있다면 생성되어 있는 스트림개체의 인터페이스를 반환합니다.

생성전이라면 nil.

 

Prototype

- (PlayRTCMedia*) getRemoteMedia:(NSString*) peerId

 

Parameters

 Argumenet Name  Data Type  Description
 peerId  NSString*  PlayRTC 플랫폼 채널 서비스의 User 아이디



Return

PlayRTCMedia, 로컬미디어스트림객체의인터페이스를반환합니다. 생성전이라면 nil.
header : PlayRTCMedia.h

getData

메소드 호출 시점에서 상대방(peerId) 데이터스트림 객체가 생성되어 있다면 생성되어 있는 스트림객체의인 터페이스를반환합니다.

생성전이라면 nil.

 

Prototype

- (PlayRTCData*) getData:(NSString*) peerId

 

Parameters

 Argumenet Name  Data Type  Description
 peerId  NSString*  PlayRTC 플랫폼 채널 서비스의 User 아이디



Return

PlayRTCData, 상대방과의 데이터스트림 개체의 인터페이스를 반환합니다. 생성전이라면 nil.
header : PlayRTCData.h

createChannel

SKT PlayRTC 플랫폼의 채널서비스에 새로운 채널을 생성하고 서비스 관련 설정정보를 받아채널에 입장하여 상대방과의 상호식별 및 P2P연결을 위한 데이터교환을 수행하여 P2P연결이 수립 되도록 합니다.  SDK 설정에서상호연결 시도 전 수락과정(ring)을 설정하였다면 상호식별 직 후 연결 의사를 묻는 과정이수행되고 수락과정을 생략하도록 설정했다면 바로 시그널링을 진행하여 P2P 연결을시도합니다.

PlayRTC SDK는 Service Helper  개체의  createChannel 인터페이스를 호출합니다.

채널 생성 시 채널서비스에 전달하는 데이터는 다음과같고, 채널 또는 Peer 관련 조회 시 응답데이터에 포함되서 받을 수 있습니다. 필요 시 채널 또는 Peer 항목에 데이터를추가합니다.

  • channel : NSDictionary, 채널에 대한 부가 정보
    • channelName NSString*, 채널에 대한 NickName
  • peer :NSDictionary, peer(사용자)에 대한 부가 정보
    • uid NSString*, User에 대한 ID로  User에 대한 ID로 application에서 사용하는 사용자 아이디
    • userName NSString*, User에 대한 Nickname

 

Prototype

- (void) createChannel:(NSDictionary*) parameters

 

Parameters

 Argumenet Name  Data Type  Description
 parameters  NSDictionary*  채널및사용자관련부가정보를전달하는경우에데이터를정의



Return

없음

 

관련이벤트

  • PlayRTCObserver::onConnectChannel : PlayRTC 플랫폼 채널 서비스에 채널을 생성 한후 채널 아이디를 전달

 

오류

  • PlayRTCObserver::onError
  • PlayRTC code
    • PlayRTCStatusChannelCreate : 채널 생성 후 입장
    • PlayRTCCodeConnectionFail : 채널 생성 실패 시
    • PlayRTCCodeSendRequestFail : 채널 생성 요청을 보내지 못함, 통신 오류

 


 

connectChannel

SKT PlayRTC 플랫폼의 채널서비스에 생성되어 있는 채널에 입장하여 서비스관련 설정정보를 받아 상대방과의 상호식별 및 P2P연결을 위한데이터 교환을 수행하여  P2P연결이 수립되도록 합니다.  SDK 설정에서 상호연결시도 전 수락과정(ring)을 설정하였다면 상호 식별 직후 연결의사를 묻는 과정이 수행되고수락과정을 생략하도록 설정했다면 바로 시그널링을 진행하여 P2P연결을시도합니다.

PlayRTC SDK는 Service Helper 객체의 connectChannel 인터페이스를 호출합니다.

채널입장 시 채널서비스에 전달하는 데이터는다음과 같고, Peer  관련 조회 시 응답 데이터에 포함되서 받을 수 있습니다. 필요시 채널 또는 Peer 항목에 데이터를 추가합니다.

  • peer :NSDictionary, peer(사용자)에 대한 부가 정보
    • uid String, User에 대한 ID로  User에 대한 ID로 application에서 사용하는 사용자 아이디
    • userName String, User에 대한 Nickname

 

Prototype

- (void) connectChannel:(NSString*) channelId
             parameters:(NSDictionary*) parameters

 

Parameters

 Argumenet Name  Data Type  Description
 channelId  NSString*  PlayRTC 플랫폼서비스에 생성 되어있는 채널의 아이디
 parameters  NSDictionary*  채널및사용자관련부가정보를전달하는경우에데이터를정의



Return

없음

 

관련이벤트

  • PlayRTCObserver::onConnectChannel : PlayRTC 플랫폼 채널 서비스에 입장한 후 채널 아이디를 전달

 

오류

  • PlayRTCObserver.onError
  • PlayRTC Code
    • PlayRTCStatusChannelConnect
    • PlayRTCCodeConnectionFail : 채널 생성 실패 시
    • PlayRTCCodeSendRequestFail : 채널 생성 요청을 보내지 못함, 통신 오류

 

Exception

  • RequiredConfigMissingException : PlayRTCSetting.android의 android Application Conext 객체가 없음

 


userCommand

SKT PlayRTC 플랫폼의 채널 서비스를 이용하여 Application에서 정의한 custom-command를 상대방에게 전달 합니다. PlayRTC SDK는 custom-command를 가공 처리없이 상대방에게 by-Pass 합니다.

custom-command를 전송하면 상대방은 IPlayRTCEvent 인터페이스의 onCommand 메소드로 데이터를 수신 받는다.

 

Prototype

- (void)userCommand:(NSString*)peerId
               data:(NSString*)data

 

Parameters

 Argumenet Name  Data Type  Description
 peerId  String  PlayRTC 플랫폼 채널 서비스의 User 아이디
 data  String  서비스 정의 Command 문자열

 

Return

없음

 

관련이벤트

  •  PlayRTCObserver.onUserCommand : 상대방이 application에서 정의한 Command를 수신했을 때 호출

 

오류

  • PlayRTCObserver.onError
    • PlayRTCStatus.UserCommand : : 채널 생성 후 입장
    • PlayRTCCode.SendRequestFail : 데이터를 보내지 못함, 통신 오류

 


accept

SKT PlayRTC 플랫폼의 채널서비스에 연결이 되면 PlayRTC SDK는 서비스 설정에서 ring(연결수락과정)을 확인후  TRUE이면  나중에 연결된 PlayRTC SDK는먼저 입장한 사용자에게 연결의사를 묻는 요청을 전송하며, 상대방은 PlayRTCObserver를 통해 통보 받게됩니다. 이때 연결 수락 의사를 accept메소드를 호출하여 상대에게 전달합니다.

 

Prototype

- (void) accept:(NSString*) peerId

 

Parameters

 Argumenet Name  Data Type  Description
 peerId  NSString*  PlayRTC 플랫폼 채널 서비스의 User 아이디

 

Return

없음

 

관련이벤트

  •  PlayRTCObserver::onAccept : 연결요청을수락하면상대방이수락의사를받음

 

오류

  • PlayRTCObserver.onError
  • PlayRTC Code
    • PlayRTCStatusRingAccept : accept 처리 단계, offer/answer 공통
    • PlayRTCCodeSendRequestFail : 데이터를 보내지 못함, 통신 오류

 


 

reject

SKT PlayRTC 플랫폼의 채널서비스에 연결이 되면 PlayRTC SDK는 서비스 설정에서 ring(연결수락과정)을 확인후  TRUE이면  나중에 연결된 PlayRTC SDK는연결 의사를 묻는 요청을 전송하며, 상대방은 PlayRTCObserver를통해 통보 받게 됩니다. 이때 연결 수락 거부 의사를 reject메소드를호출하여상대에게 전달합니다.

 

Prototype

- (void) reject:(NSString*) peerId

 

Parameters

 Argumenet Name  Data Type  Description
 peerId  NSString*  PlayRTC 플랫폼 채널 서비스의 User 아이디

 

Return

없음

 

관련이벤트

  •  PlayRTCObserver.onReject : 연결요청을 거절하면 상대방이 거절 의사를 받음

 

오류

  • PlayRTCObserver.onError
  • PlayRTC Code
    • PlayRTCStatusRingReject : reject 처리 단계, offer/answer 공통
    • PlayRTCCodeSendRequestFail : 데이터를 보내지 못함, 통신 오류

 


 

disconnectChannel

채널에서 퇴장합니다. disconnectChannel을 호출하면 SDK는 Service Helper의 disconnectChannel 인터페이스를 호출하여 채널 퇴장을 요청하게 되며, 채널서비스는 해당 사용자의 채널 연결을 종료하고, 채널에 있는 사용자에게 해당 사용자의 채널 퇴장을 알리게 됩니다. 해당 사용자의 채널퇴장 시 PlayRTC SDK개체는 P2P연결을종료하고 P2P 관련 리소스를 해제한 후 채널 연결을 종료합니다.

 

Prototype

- (void) disconnectChannel:(NSString*) peerId

 

Parameters

 Argumenet Name  Data Type  Description
 peerId  NSString*  채널을퇴장하는 PlayRTC 플랫폼채널서비스의 User 아이디, nil 을넘기면자신의아이디를사용

Return

없음

 

관련이벤트

  •   PlayRTCObserver::onDisconnectChannel: 자신이 채널에서 퇴장할 때 호출 받음
  •   PlayRTCObserver::onOtherDisconnectChannel: 다른 사용자가 채널에서 퇴장할 때 호출 받음

 

오류

  • PlayRTCObserver.onError
  • PlayRTC Code
    • PlayRTCStatusChannelDisconnected : Peer 연결 해제 상태
    • PlayRTCCodeNotConnect: 채널에 연결이 안되어 있음
    • PlayRTCCodeDisconnectFail: 채널 연결 종료시 오루 발생
    • PlayRTCCodeSendRequestFail : 요청을 보내지 못함, 통신 오류

 


 

deleteChannel

PlayRTC 플랫폼서비스에 생성되어 있는 채널을 종료합니다. deleteChannel을호출하면 SDK는 Service Helper의 deleteChannel 인터페이스를 호출하며 채널서비스가는 채널에 있는 모든사용자에게 채널종료를 통보하고 모든연결을종료하게됩니다. 채널종료시 PlayRTC SDK객체는모든 P2P연결을종료하고 P2P관련 리소스를 해제한 후 채널연결을 종료합니다.

 

Prototype

- (void) deleteChannel

 

Parameters

없음

 

Return

없음

 

관련이벤트

  •   PlayRTCObserver::onDisconnectChannel:  채널이종료될때호출받음

 

오류

  • PlayRTCObserver.onError
  • PlayRTC Code
    • PlayRTCStatusChannelDisconnected: Peer 연결 해제 상태
    • PlayRTCCodeNotConnect: 채널에 연결이 안되어 있음
    • PlayRTCCodeDisconnectFail: 채널 연결 종료시 오루 발생
    • PlayRTCCodeSendRequestFail : 요청을 보내지 못함, 통신 오류

 


 

getChannelList

PlayRTC 플랫폼채널서비스에생성되어있는채널목록을조회합니다.

 

Prototype

- (BOOL) getChannelList:(id<PlayRTCServiceHelperListener>) listener

 

Parameters

 Argumenet Name  Data Type  Description
 listener  id<PlayRTCServiceHelperListener>  응답을 받기 위한 리스너PlayRTCServiceHelperListener.h

 

Return

BOOL,  서비스 호출 실패 시 FALSE

 

관련이벤트

  • PlayRTCServiceHelperListener::onServiceHelperResponse :  조회 성공 시 데이터를 전달 받음
  • PlayRTCServiceHelperListener::onServiceHelperFail:  조회 실패 시 실패 데이터를 받음

 


 

getChannel

PlayRTC 플랫폼채널서비스에생성되어있는 채널정보를 조회합니다.

 

Prototype

- (BOOL) getChannel:(NSString*) channelId
           listener:(id<PlayRTCServiceHelperListener>) listener

 

Parameters

 Argumenet Name  Data Type  Description
 channelId  NSString*  채널아이디
 listener  id<PlayRTCServiceHelperListener>  응답을 받기 위한 리스너PlayRTCServiceHelperListener.h

 

Return

BOOL,  서비스 호출 실패 시 FALSE

 

관련이벤트

  •  PlayRTCServiceHelperListener::onServiceHelperResponse :  조회 성공 시 데이터를 전달 받음
  •  PlayRTCServiceHelperListener::onServiceHelperFail:  조회 실패 시 실패 데이터를 받음

 


 

searchChannelByName – new 2.2.1

PlayRTC 채널서비스에 생성되어 있는 채널 정보를 채널 이름으로 조회합니다.

Prototype

-(BOOL) searchChannelByName(NSString*)channelName 
                   listener:(id<PlayRTCServiceHelperListener>)listener

Parameters

 Argumenet Name  Data Type  Description
 channelName  NSString  채널이름
 listener  id<PlayRTCServiceHelperListener> 응답을 받기 위한 리스너PlayRTCServiceHelperListener.h

Return

BOOL,  서비스 호출 실패 시 false

관련이벤트

  •  PlayRTCServiceHelperListener::onServiceHelperResponse :  조회 성공 시 데이터를 전달 받음
  •  PlayRTCServiceHelperListener::onServiceHelperFail:  조회 실패 시 실패 데이터를 받음

searchChannelById – new 2.2.1

PlayRTC 채널서비스에 생성되어 있는 채널 정보를 채널 아이디로 조회합니다.

Prototype

-(BOOL) searchChannelById(NSString*)channelId 
                    listener:(id<PlayRTCServiceHelperListener>) listener

Parameters

 Argumenet Name  Data Type  Description
 channelName  NSString 채널 아이디
 listener  id<PlayRTCServiceHelperListener> 응답을 받기 위한 리스너PlayRTCServiceHelperListener.h

Return

BOOL,  서비스 호출 실패 시 false

관련이벤트

  •  PlayRTCServiceHelperListener::onServiceHelperResponse :  조회 성공 시 데이터를 전달 받음
  •  PlayRTCServiceHelperListener::onServiceHelperFail:  조회 실패 시 실패 데이터를 받음

 


getPeerList

PlayRTC 플랫폼채널서비스에  입장한 User 정보목록을조회합니다.

 

Prototype

- (BOOL) getPeerList:(NSString*) channelId
            listener:(id<PlayRTCServiceHelperListener> listener

 

Parameters

 Argumenet Name  Data Type  Description
 channelId  NSString*  채널아이디
 listener  id<PlayRTCServiceHelperListener>  응답을 받기 위한 리스너PlayRTCServiceHelperListener.h

 

Return

BOOL,  서비스 호출 실패 시 FALSE

 

관련이벤트

  • PlayRTCServiceHelperListener::onServiceHelperResponse :  조회 성공 시 데이터를 전달 받음
  •  PlayRTCServiceHelperListener::onServiceHelperFail:  조회 실패 시 실패 데이터를 받음

 


getPeer

PlayRTC 플랫폼채널서비스에입장한특정 User 정보를조회합니다.

 

Prototype

- (BOOL) getPeer:(NSString*) channelId
          peerId:(NSString*) peerId
        listener:(id<PlayRTCServiceHelperListener>) listener

 

Parameters

 Argumenet Name  Data Type  Description
 channelId  NSString*  채널아이디
 peerId  NSString*  채널에입장한 User의아이디
 listener  id<PlayRTCServiceHelperListener>  응답을 받기 위한 리스너PlayRTCServiceHelperListener.h

 

Return

BOOL,  서비스 호출 실패 시 FALSE

 

관련이벤트

  • PlayRTCServiceHelperListener::onServiceHelperResponse :  조회 성공 시 데이터를 전달 받음
  •  PlayRTCServiceHelperListener::onServiceHelperFail:  조회 실패 시 실패 데이터를 받음

 

 

 


enableAudioSession

AVAudioSession 제어 기능을 활성화 시키는 인터페이스

외부에서 직접 AVAudioSession 제어를 할 경우에는 활성화 시키지 않습니다.

이 기능을 활성화 시키면 이어을 감지하여 이어폰 모드와 EAR 스피커 출력 모드에 맞게 출력이 됩니다.

외부 스피커로 소리를 출력히게 하려면 setLoudspeakerEnable를 호출하세요.

Prototype

- (BOOL) enableAudioSession 

Parameters

없음

 

Return

BOOL,  서비스 호출 실패 시 FALSE

관련이벤트

 


setLoundspeakerEnable

소리출력 스피커를 지정합니다.

Prototype

- (BOOL) setLoudspeakerEnable:(BOOL) enable

Parameters

 Argumenet Name  Data Type  Description
 enable  BOOL

TRUE 지정 외부 Speaker 소리가 출력되고, FALSE EAR-Speaker 출력. 기본은 EAR-Speaker

Return

BOOL,  서비스 호출 실패 시 FALSE

관련이벤트

 


getLoundspeakerStatus – new 2.2.5

음성 Speaker 출력 Loud-Speaker 사용하도록 지정했는지 여부를 반환합니다.

Prototype

- (BOOL) getLoudspeakerStatus

Parameters

없음

Return

BOOL, Loud-Speaker 사용 여부

관련이벤트


switchCamera

P2P연결 /후면 카메라를 전환합니다.

Prototype

- (BOOL) switchCamera

Parameters

없음

 

Return

BOOL,  서비스 호출 실패 시 FALSE

관련이벤트

 


startStatsReport – new 2.2.1

version 2.2.1

PlayRTC SDK P2P 상태를 조회를 시작하는 인터페이스

P2P 상태를 전달 받기 위해 PlayRTCReportObserver인터페이스를 구현하여 전달해야 합니다.

Prototype

-(void) startStatsReport:(long)interval observer:(id<PlayRTCReportObserver>)observer

Parameters

 Argumenet Name  Data Type  Description
 interval  long P2P 상태를 조회하는 주기를 지정, default 1000(10초),  msec
 observer  PlayRTCReportObserver P2P 상태를 전달 받기 위한 리스너 이터페이스

Return

없음


stopStatsReport – new 2.2.1

version 2.2.1

PlayRTC SDK P2P 상태를 조회를 중지하는 인터페이스

Prototype

-(void) stopStatsReport

Parameters

없음

Return

없음


isUsedBackCamera – new 2.2.5

version 2.2.5

후반 카메라 사용 여부를 반환하는  인터페이스

Prototype

-(void) isUsedBackCamera

Parameters

없음

Return

BOOL


switchBackCameraFlashOn – new 2.2.5

version 2.2.5

후반 카메라 플래쉬를 On/Off 하는  인터페이스

Prototype

-(void) switchBackCameraFlashOn:(BOOL)on

Parameters

 Argumenet Name  Data Type  Description
 on  BOOL

TRUE 지정  후방 카메라 플래쉬가 껴진다. 후방 카메라 사용시에만 동작

Return

BOOL


isBackCameraFlashOn – new 2.2.5

version 2.2.5

후반 카메라 플래쉬가 켜져 있는지 여부를 반환하는  인터페이스

Prototype

-(void) isBackCameraFlashOn

Parameters

없음

Return

BOOL


setCameraRotation – new 2.2.8

카메라 영상의 추가 회전 각도를 지정하는 인터페이스

각도를 지정하면 현재의 카메라 회전각도에 지정한 각도를 더해 회전처리합니다.

시계 방향 회전 0, 90, 180, 270 도

Prototype

-(void) setCameraRotation:(int)degree

Parameters

 Argumenet Name  Data Type  Description
 degree  int  추가 회전각도, 0, 90, 180, 270

Return

boolean

getCameraRotation – new 2.2.8

카메라 영상의 추가 회전 각도를 반환합니다.

Prototype

-(int)getCameraRotation

Parameters

없음

Return

int , 0, 90, 180, 270

 


getCameraZoomRange – new 2.2.9

현재 사용중인 카메라의 Zoom Leval 지정 범위값을 반환합니다.

min, max 값이 1.0 이면 zoom 지원 않함.

Prototype

-(ValueRange*)getCameraZoomRange

Parameters

없음

Return

ValueRange


getCurrentCameraZoom – new 2.2.9

현재 사용중인 카메라의 Zoom Leval 값을 반환합니다.

Prototype

-(float*)getCurrentCameraZoom

Parameters

없음

Return

float,


setCameraZoom – new 2.2.9

현재 사용중인 카메라의 Zoom Leval 지정하는 인터페이스

Zoom Leval max보다 크게 지정할 없다.

Prototype

-(BOOL) setCameraZoom:(float)zoomLevel

Parameters

 Argumenet Name  Data Type  Description
 zoomLevel  float

Zoom 설정 . min <= zoomLevel >= max

Return

BOOL , 실행여부

getCameraWhiteBalance – new 2.2.9

현재 사용중인 카메라의 WhiteBalance를 반환합니다.

Prototype

-(PlayRTCWhiteBalnace)getCameraWhiteBalnace

Parameters

없음

Return

PlayRTCWhiteBalance, PlayRTCDefine.h


setCameraWhiteBalance – new 2.2.9

현재 사용중인 카메라의 WhiteBalance 지정하는 인터페이스

Prototype

-(BOOL) setCameraWhiteBalance:(PlayRTCWhiteBalance)whitebalance

Parameters

 Argumenet Name  Data Type  Description
whitebalance
PlayRTCWhiteBalance
whitebalance,
PlayRTCDefine.h

Return

BOOL , 실행여부

getCameraExposureCompensationRange  – new 2.2.9

현재 사용중인 카메라의 노출 보정값 설정 범위를  반환합니다.

min, max 값이 0.0 이면  지원 않함.

Prototype

-(ValueRange*)getCameraExposureCompensationRange

Parameters

없음

Return

ValueRange


getCameraExposureCompensation  – new 2.2.9

현재 사용중인 카메라의 노출 보정값을  반환합니다.

Prototype

-(float)getCameraExposureCompensation

Parameters

없음

Return

float,


setCameraExposureCompensation – new 2.2.9

현재 사용중인 카메라의 노출 보정값을 지정하는 인터페이스

exposureCompensation max보다 크게 지정할 없다.

Prototype

-(BOOL) setCameraExposureCompensation:(float)exposureCompensation

Parameters

 Argumenet Name  Data Type  Description

exposureCompensation

 float

min <= exposureCompensation >= max

getCameraExposureCompensationRange으로 확인

Return

BOOL , 실행여부 


 ValueRange – new 2.2.9

header :ValueRange.h

PlayRTC P2P 상태를 정의한 Class.

 

create – new 2.2.9

ValueRange 인스턴스를 생성하여 반환한다.

Prototype

+(ValueRange*) create:(const NSNumber*)min max:(const NSNumber*)max

Parameters

Argument Name Data Type Description
min NSNumber* 최소값
max NSNumber* 최대값

 

Return

ValueRange*


 minValue – new 2.2.9

minimum value 반환한다.

 

Prototype

-(NSNumber*) minValue

Parameters

없음

Return

NSNumber*

 maxValue – new 2.2.9

maximum value 반환한다.

Prototype

-(NSNumber*) maxValue

Parameters

없음

Return

NSNumber*


 PlayRTCStatsReport – new 2.2.1

header :PlayRTCReport.h

PlayRTC에서 사용하는 min ~ max 값의 범위를 가지는 Range 관련 Class.

getLocalCandidate

자신의 ICE 서버 연결상태를   반환한다.

Prototype

-(NSStirng*) getLocalCandidate

Parameters

없음

Return

NSString, ICE 서버 연결상태
  - host : 로컬네트워크사용.
  - srflx : STUN 에서 얻은 Public IP 사용.
  - relayed :TURN Relay 사용


getRemoteCandidate

상대방의 ICE 서버 연결상태를   반환한다.

Prototype

-(NSString*) getRemoteCandidate

Parameters

없음

Return

NSString, ICE 서버 연결상태
  - host : 로컬네트워크사용.
  - srflx : STUN 에서 얻은 Public IP 사용.
  - relayed :TURN Relay 사용

getLocalFrameWidth

상대방에게 전송하는 영상의 해상도 가로 크기를 반환한다.

 

Prototype

-(int) getLocalFrameWidth

Parameters

없음

Return

int, 영상의  가로 해상도 크기

getLocalFrameHeight

상대방에게 전송하는 영상의 해상도 세로 크기를 반환한다.

Prototype

-(int) getLocalFrameHeight

Parameters

없음

Return

int, 영상의 세로 해상도 크기

getRemoteFrameWidth

상대방 수신  영상의 해상도 가로 크기를 반환한다.

Prototype

-(int) getRemoteFrameWidth

Parameters

없음

Return

int, 영상의 가로 해상도 크기

getRemoteFrameHeight

상대방 수신  영상의 해상도 세로 크기를 반환한다.

Prototype

-(int) getRemoteFrameHeight

Parameters

없음

Return

int, 영상의 세로 해상도 크기


getLocalFrameRate

상대방에게 전송하는 영상의 Bit-Rate를 반환한다.

Prototype

-(int) getLocalFrameRate

Parameters

없음

Return

int, 영상의 Bit-Rate


getRemoteFrameRate

상대방 수신  영상의 Bit-Rate 반환한다.

Prototype

-(int) getRemoteFrameRate

Parameters

없음

Return

int, 영상의 Bit-Rate


getAvailableSendBandWidth

상대방에게 전송할 수 있는 네트워크 대역폭을 반환한다.

Prototype

-(int) getAvailableSendBandWidth

Parameters

없음

Return

int, 네트워크 대역폭 Bit-Rate, Kbps


getAvailableReceiveBandWidth

상대방으로부터 수신할 수 있는 네트워크 대역폭을 반환한다.

Prototype

-(int) getAvailableReceiveBandWidth

Parameters

없음

Return

int, 네트워크 대역폭 Bit-Rate, Kbps


getRtt

자신의 Rount Trip Time 반환한다.

Prototype

-(int) getRtt

Parameters

없음

Return

int,  msec


getRttRating

RTT값을기반으로 네트워크 상태를 5등급으로 분류하여 RttRating 를 반환한다.

Prototype

-(RatingValue*) getRttRating

Parameters

없음

Return

RatingValue

 5등급 분류.

1 : 사용자가 매우 만족함,  0 ~ 199

2 : 사용자가 대부분 만족함, 200 ~ 299

3 : 사용자가 대체로 만족함, 300 ~ 399

4 : 사용자가 불만족함 , 400 ~ 400

5 : 사용자가 매우 불만족함, 500 이상


getFractionRating

Packet Loss 값을 기반으로 상대방의 영상 전송 상태를 5등급으로 분류하여 RttRating 를 반환한다.

Prototype

-(RatingValue*) getFractionRating

Parameters

없음

Return

RatingValue

 5등급 분류. Audio + Video

1 : 사용자가 매우 만족함,  0 ~ 40

2 : 사용자가 대부분 만족함, 41 ~ 55

3 : 사용자가 대체로 만족함, 56~ 70

4 : 사용자가 불만족함 , 71~ 90

5 : 사용자가 매우 불만족함, 90 이상


 

getLocalAudioFractionLost

Packet Loss 값을 기반으로 자신의 음성 전송 상태를 5등급으로 분류하여 RttRating 를 반환한다.

Prototype

-(RatingValue*) getLocalAudioFractionLost

Parameters

없음

Return

RatingValue

 5등급 분류. Audio Only

1 : 사용자가 매우 만족함,  0 ~ 50

2 : 사용자가 대부분 만족함, 51 ~ 150

3 : 사용자가 대체로 만족함, 151~ 200

4 : 사용자가 불만족함 , 201~ 250

5 : 사용자가 매우 불만족함, 151 이상


getLocalVideoFractionLost

Packet Loss 값을 기반으로 자신의 영상 전송 상태를 5등급으로 분류하여 RttRating 를 반환한다.

Prototype

-(RatingValue*) getLocalVideoFractionLost

Parameters

없음

Return

RatingValue

 5등급 분류. Audio + Video

1 : 사용자가 매우 만족함,  0 ~ 40

2 : 사용자가 대부분 만족함, 41 ~ 55

3 : 사용자가 대체로 만족함, 56~ 70

4 : 사용자가 불만족함 , 71~ 90

5 : 사용자가 매우 불만족함, 90 이상


getRemoteAudioFractionLost

Packet Loss 값을 기반으로 상대방의 음성 전송 상태를 5등급으로 분류하여 RttRating 를 반환한다.

Prototype

-(RatingValue*) getRemoteAudioFractionLost

Parameters

없음

Return

RatingValue

 5등급 분류. Audio Only

1 : 사용자가 매우 만족함,  0 ~ 50

2 : 사용자가 대부분 만족함, 51 ~ 150

3 : 사용자가 대체로 만족함, 151~ 200

4 : 사용자가 불만족함 , 201~ 250

5 : 사용자가 매우 불만족함, 151 이상


getRemoteVideoFractionLost

Packet Loss 값을 기반으로 상대방의 영상 전송 상태를 5등급으로 분류하여 RttRating 를 반환한다.

Prototype

-(RatingValue*) getRemoteVideoFractionLost

Parameters

없음

Return

RatingValue

 5등급 분류. Audio + Video

1 : 사용자가 매우 만족함,  0 ~ 40

2 : 사용자가 대부분 만족함, 41 ~ 55

3 : 사용자가 대체로 만족함, 56~ 70

4 : 사용자가 불만족함 , 71~ 90

5 : 사용자가 매우 불만족함, 90 이상


getLocalVideoCodec – new v2.2.5

로컬 Video Codec 이름을 반환한다.

Prototype

- (NSString*)getLocalVideoCodec

Parameters

없음

Return

NSString*, "VP8" , "VP9", "H264" 


getLocalAudioCodec – new v2.2.5

로컬 Audio Codec 이름을 반환한다.

Prototype

-(NSString*)getLocalAudioCodec

Parameters

없음

Return

NSString*, "ISAC", "opus" 


RatingValue – new 2.2.1

Header : PlayRTCStatReport.h

PlayRTC P2P 상태를 정의한 Value Class.

getLeval

1 ~ 5 단계의 품질 등급을 반환한다.

Prototype

-(int) getLevel

Parameters

없음

Return

int, 1 ~ 5 단계의 품질 등급을 반환합니다.

getValue

실 측정 수치를 반환합니다.

Prototype

-(float) getValue

Parameters

없음

Return

float, 실 측정 수치 반환합니다.

 


SDK Specification – PlayRTCConfig – new 2.2.0

header :PlayRTCConfig.h

version 2.2.0

PlayRTC 서비스 설정을 위한 Class PlatRTCFactory의 createConfig메소드로 PlayRTCConfig개체를 얻어와 PlayRTC 서비스 관련 설정 항목을 지정할 수 있습니다.

주요설정항목은다음과같습니다.

  • PlayRTC 서비스 프로젝트 정보
  • PlayRTC 플랫폼 채널 서비스 서버 정보
  • PlayRTC 미디어 서비스 관련 설정
  • PlayRTC 로깅 설정

Properties

Member Name Data Type Description
video PlayRTCVideoConfig 영상 설정 개체, 영상 전송 사용, 해상도 Frame-Rate등을 설정합니다.
audio PlayRTCAudioConfig 음성 설정 개체,음성 전송 사용, 음성 필터 등을 설정합니다.
data PlayRTCDataConfig Data-Channel 통신설정 개체
log PlayRTCLogConfig PlayRTC SDK 로깅 관련 정보를 설정합니다.
bandwidth PlayRTCBandwidthConfig P2P 미디어 Bandwidth를 설정합니다.

setProjectId

T-Dev 서비스에서 생성한 프로젝트 아이디를 지정합니다.

Prototype

- (void)setProjectId:(NSString*)projectId

Parameters

 Argumenet Name  Data Type  Description
 projectId  NSString T-Dev 서비스에서 생성한 프로젝트 아이디를 지정합니다.

Return
없음


setRingEnable

채널링 과정에서 상호 연결 수립 의사를 확인하는 과정을 수행할 지 여부, true이면 나중에 채널에 입장한 사용자는 먼저 입장한 사용자의 허락을 받아야 연결을 시작합니다.

default false

Prototype

- (void)setRingEnable:(BOOL)enable

Parameters

 Argumenet Name  Data Type  Description
 enable  BOOL Ring 사용 여부

Return
없음

 


setPrevUserMediaEnable – new v2.2.6

PlayRTCMedia객체 생성 시점을 지정하는 인터페이스로,

TRUE 지정하면 채널 서비스에 입장 시점에서 우선 생성하게 되고 FALSE 지정하면 Peer간에 연결 과정을 시작할 때(Peer 객체 생성 시점) 생성합니다.

default TRUE

Prototype

- (void)setPrevUserMediaEnable:(BOOL)enable

Parameters

 Argumenet Name  Data Type  Description
 enable  BOOL SDK가 PlayRTCMedia를 생성하는 시점을 지정

Return
없음


PlayRTCVideoConfig

header : PlayRTCConfig.h

영상 설정 개체, 영상 전송 사용, 해상도 Frame-Rate등을 설정합니다.

P2P 영상 전송 해상도의 경우 기본은 640 x 480.

현재 v2.2.0 SDK는 최대 크기와 최소 크기 범위가 640 x 480 해상도를 포함하지 않으면 영상을 얻을 수 없습니다.

최대 크기와 최소 크기를  640 x 480 해상도로 지정하세요.

단 망 연결 상태에 따라 해상도가 축소될 수 있습니다.

 

num CameraType

  • 영상 전송 사용 시 카메라
  • header: PlayRTCDefine.h
Name Description

Front

전방 카메라

Back

후방 카메라

 

 

enum PlayRTCVideoCodec

  • 영상 Codec유형을 정의
  • header: PlayRTCDefine.h
Name Description

PlayRTCVP8

VP8

PlayRTCVP9

VP9

PlayRTCH264

Open H.264

 

setEnable

P2P 영상 전송 기능 사용 여부를 지정합니다.

FALSE 지정 시 Read-Only로 동작하여 상대방 영상 수신이 됩니다.

default TRUE

Prototype

- (void)setEnable:(BOOL)enable

Parameters

 Argumenet Name  Data Type  Description
 enable  BOOL  영상 전송 사용 여부를 지정

Return

없음


setCameraType

영상 전송 사용 시 카메라를 지정합니다.

default CameraTypeFront, PlayRTCDefine.h

 

Prototype

- (void) setCameraType:(CameraType) camera

Parameters

 Argumenet Name  Data Type  Description
 camera  CameraType  카메라 지정.PlayRTCDefine.h enum CameraType 참고

Return

없음


setMaxFrameSize

P2P 영상 전송 해상도의 최대 크기를 지정합니다.

 

카메라 영상 해상도 v2.2.8 

  • 352×288
  • 640×480 default
  • 1280×720

 

Prototype

- (void) setMaxFrameSize:(int)width height:(int)height

Parameters

Argument Name Data Type Description
width int 영상 width
height int 영상height

Return
없음


setMinFrameSize

P2P 영상 전송 해상도의 최소 크기를 지정합니다.

카메라 영상 해상도 v2.2.8 

  • 352×288
  • 640×480 default
  • 1280×720

 

Prototype

- (void) setMinFrameSize:(int)width height:(int)height

Parameters

Argument Name Data Type Description
width int 영상 width
height int 영상height

Return
없음


setMaxFrameRate

P2P  전송영상의 최대 Frame-Rate 크기를 지정합니다.

default 30, 최대 30

Prototype

- (void) setMaxFrameRate:(int)framerate

Parameters

 Argumenet Name  Data Type  Description
 framerate  int  frate-rate, 15 ~ 30

Return

없음


setMinFrameRate

P2P  전송영상의 최소 Frame-Rate 크기를 지정합니다.

default 15, 최대 30

Prototype

- (void) setMinFrameRate:(int)framerate

Parameters

 Argumenet Name  Data Type  Description
 framerate  int  frate-rate, 15 ~ 30

Return

없음


 

setPreferCodec

P2P 영상의 우선 적용  Codec을 지정합니다.

Codec 지정 시 상호간의 단말기 환경에 따라 다른 Codec이 사용될수 있음.

default true

Prototype

-(void)setPreferCodec(PlayRTCVideoCodec) codec

Parameters

 Argumenet Name  Data Type  Description
 codec  PlatRTCVideoCodec  영상 Codec enum 정의의. PLayRTCDefine.h

Return

없음


PlayRTCAudioConfig

header : PlayRTCConfig.h

음성 설정 개체, 음성 전송 사용, 음성 품질 필터 등을 설정합니다.

 

num CameraType

  • Audio Codec유형을 정의
  • header: PlayRTCDefine.h
Name Description

PlayRTCISAC

Isac Codec

PlayRTCOPUS

OPus Codec

setEnable

P2P음성 전송 기능 사용 여부를 지정합니다.

false 지정 시 Read-Only로 동작하여 상대방음성 수신이 됩니다.

default TRUE

Prototype

- (void)setEnable:(BOOL)enable

Parameters

 Argumenet Name  Data Type  Description
 enable  BOOL  영상 전송 사용 여부를 지정

Return

없음

 

 


setPreferCodec

P2P Audio의 우선 적용  Codec을 지정합니다.

Codec 지정 시 상호간의 단말기 환경에 따라 다른 Codec이 사용될수 있음.

default true

Prototype

-(void) setPreferCodec:(PlayRTCAudioCodec) codec

Parameters

 Argumenet Name  Data Type  Description
 codec  PlayRTCAudioCodec  Audio  Codec enum, PlayRTCDefine.h

Return

없음

 


PlayRTCDataConfig

header : PlayRTCConfig.h

Data-Channel 관련  설정 Class

 

setEnable

Data-Channel 통신 기능 사용 여부를 지정합니다.

 

default FALSE

Prototype

- (void)setEnable:(BOOL)enable

Parameters

 Argumenet Name  Data Type  Description
 enable  BOOL  영상 전송 사용 여부를 지정

Return

없음

 

 

 


PlayRTCBandwidthConfig

header : PlayRTCConfig.h

P2P 미디어 스트림  Bandwidth 관련  설정 Class

 

setVideoBitrateKbps

P2P Video 미디어 스트림  Bandwidth 를 지정합니다.

default 2500

Prototype

- (void) setVideoBitrateKbps:(int)bitrateKbps

Parameters

 Argumenet Name  Data Type  Description
 bitrateKbps  int Bandwidth를 지정, kbps

Return

없음

 

 


setAudioBitrateKbps

P2P Audio 미디어 스트림  Bandwidth 를 지정합니다.

default 50

Prototype

- (void) setAudioBitrateKbps:(int)bitrateKbps

Parameters

 Argumenet Name  Data Type  Description
 bitrateKbps  int Bandwidth를 지정, kbps

Return

없음


setDataBitrateKbps

P2P Data 미디어 스트림  Bandwidth 를 지정합니다.

default 1638

Prototype

- (void) setDataBitrateKbps:(int)bitrateKbps

Parameters

 Argumenet Name  Data Type  Description
 bitrateKbps  int Bandwidth를 지정, kbps

Return

없음

 

 


PlayRTCLogConfig

header : PlayRTCConfig.h

SDK 로그에 대한 설정 정보를 담아 PlayRTC SDK에 전달되어 로깅 관련 설정을 합니다.

Members

Member Name Data Type Description
console

PlayRTCLogConsoleConfig

PlayRTCLogConsoleConfig Class 인스턴스. Console Log 관련 설정 정의
file

PlayRTCLogFileConfig

PlayRTCLogFileConfig Class 인스턴스. File Log 관련 설정 정의


PlayRTCConsoleLogConfig

header : PlayRTCConfig.h

Console로그에 대한 설정 정보를 담아 PlayRTC SDK에 전달되어 Console 로깅 관련 설정을 합니다.

setLevel

멤버 변수 level을지정합니다.

Prototype

- (void) setLevel:(int) level

Parameters

Argument Name Data Type Description
level int Console 로깅 레벨
  • LOG_VERBOSE
  • LOG_TRACE
  • LOG_WARN
  • LOG_ERROR

Return

없음


PlayRTCFileLogConfig

header : PlayRTCConfig.h

File로그에 대한 설정 정보를 담아 PlayRTC SDK에 전달되어 File로깅 관련 설정을 합니다.

setLevel

멤버 변수 level을지정합니다.

Prototype

- (void) setLevel:(int) level

Parameters

Argument Name Data Type Description
level int Console 로깅 레벨
  • LOG_VERBOSE
  • LOG_TRACE
  • LOG_WARN
  • LOG_ERROR

Return

없음


setLogPath

멤버 변수logPath를 지정합니다.

폴더안에 yyyyMMdd.log형태의파일생성, 미지정시로깅저장안함

 

Prototype

- (void) setLogPath:(NSString*)logPath

Parameters

Argumenet Name Data Type0 Description
logPath NSString 로깅파일폴더를지정.

Return

없음


setRolling

멤버 변수 rolling을 지정합니다.   Prototype

- (void) setRolling:(int) rolling

Parameters

Argumenet Name Data Type Description
rolling int 로깅파일을보관처리하는최대일수를지정

Return

없음

 

 


SDK Specification – PlayRTCData

 

header : PlayRTCData.h

P2P 데이터 통신을 제공하기 위한 인터페이스 Class로 PlayRTC SDK에서 PlayRTCData 인터페이스 구현 개체를 생성하여 PlayRTCObserver의 onAddDataStream를 통해 전달됩니다. PlayRTCData를 전달받으면 데이터 수신과 상태 및 오류 정보를 전달 받기 위해 PlayRTCDataObserver 인터페이스 를 구현 한 개체를 등록해야합니다.

PlayRTCData 개체는 전송할데이터가 10K 이상 일 경우 내부적으로 데이터를 분할해서 전송하며 PlayRTCDataObserver를 구현한 개체에서 데이터수신 시 수신 데이터 정보를 알려주는  PlayRTCDataHeader를 확인하여 데이터를 처리해야합니다.

 

enum PlayRTCDataStatus

PlayRTCData 객체의 상태 유형을 정의

header: PlayRTCDefine.h

Name Description
PlayRTCDataStatusNone 초기상태
PlayRTCDataStatusConnecting P2P 데이터통신채널연결중인상태
PlayRTCDataStatusOpen P2P 데이터통신채널연결되어데이터를교환할수있는상태
PlayRTCDataStatusClosing P2P 데이터통신채널연결종료중인상태
PlayRTCDataStatusClosed P2P 데이터통신채널연결연결종료상태

 

enum PlayRTCDataCode

PlayRTCData 객체의 오류 코드를 정의

header: PlayRTCDefine.h

Name Description
PlayRTCDataCodeNone 오류없음
PlayRTCDataCodeNotOpen  DataChannel Open 상태가아님
PlayRTCDataCodeFileIO  파일 전송 시 파일 I/O 오류 발생
PlayRTCDataCodeSendBusy 데이터 전송 중에 데이터 전송 요청을 함
PlayRTCDataCodeSendFail 데이터 전송 실패
PlayRTCDataCodeParseFail 데이터 수신 시 패킷 분할 헤더가 없어 수신 데이터를 처리 할 수가 없음

 


setEventObserver

 

PlayRTCData 객체의 상태 및 오류  정보, 데이터 수신 상태를 전달 받기 위한 PlayRTCDataObserver 인터페이스를 구현한 개체를 PlayRTCData에 등록합니다.

 

Prototype

- (void) setEventObserver:(id<PlayRTCDataObserver>) listener

 

Parameters

Argumenet Name Data Type Description
listener id<PlayRTCDataObserver> PlayRTCData 객체의 상태 및 오류 정보, 데이터 수신 상태를 전달 받기 위한 리스너 구현체의 인터페이스.
PlayRTCDataObserver.h

 

Return

없음

getStatus

PlayRTCData 객체의 상태를 반환합니다.

 

Prototype

- (PlayRTCDataStatus) getStatus

 

Parameters

없음

Return

PlayRTCDataStatus, PlayRTCData 객체의 상태 유형
header: PlayRTCDefine.h

 


 

sendText

데이터 통신 채널을 통해 텍스트데이터를 전송합니다. 전송할데이터가 10K 이상일 경우 내부적으로 데이터를 분할해서 전송하며, 상대방은 PlayRTCDataObserver를 통해서 데이터를 수신하며, PlayRTCDataHeader를 확인하여 수신하는 데이터 유형에 맞게 처리하도록 해야합니다.

 

Prototype

(uint64_t) sendText:(NSString *)text
           observer:(id<PlayRTCDataSendObserver> observer

 

Parameters

Argumenet Name Data Type Description
text String 전송할텍스트데이터
observer id<PlayRTCSendDataObserver> 전송결과를전달받기위한 인터페이스.
PlayRTCDataSendObserver.h

 

Return

uint64_t,  데이터를 전송할때 고유번호를 생성하여 데이터의 헤더에 명시해서 전송하며 이때 사용하는 고유번호를 반환합니다. PlayRTCDefine.h 정의

 

송신이벤트

  • PlayRTCDataSendObserver::onSending: 데이터 전송 이벤트
  • PlayRTCDataSendObserver::onSuccess: 데이터 전송 성공 이벤트
  • PlayRTCDataSendObserver::onError: 데이터 전송 진행 실패 이벤트

상대방수신이벤트

  • PlayRTCDataObserver::onProgress: 데이터를 수신 진척 상태 전달하는 이벤트
  • PlayRTCDataObserver::onMessage: 데이터 수신 완료 시 이벤트
  • PlayRTCDataObserver::onError: 데이터  수신 오류 이벤트

 

오류

  • PlayRTCDataObserver.onError
    • PlayRTCDataCode.NotOpen: DataChannel에 연결이 안되어 있음
    • PlayRTCDataCode.SendFail: 데이터 전송시 오류 발생
    • PlayRTCDataCode.SendBusy: 데이터 전송 중
    • PlayRTCDataCode.SendFail: 데이터 전송시 오류 발생

 


 

sendByte

데이터 통신 채널을 통해 Binary 데이터를 전송합니다. 전송할데이터가 8K 이상일 경우 내부적으로 데이터를 분할해서 전송하며, 상대방은 PlayRTCDataObserver를 통해서 데이터를 수신하며, PlayRTCDataHeader를 확인하여 수신하는 데이터 유형에 맞게 처리하도록 해야합니다.

 

Prototype

- (uint64_t) sendByte:(NSData*)data
             mimeType:(NSString*)mimeType
             observer:(id<PlayRTCDataSendObserver>)observer

 

Parameters

Argumenet Name Data Type Description
data NSData* 전송할 binary 데이터
mimeType NSString* 데이터의 Mime-Type 문자열, 없으면 nil
observer id<PlayRTCDataSendObserver> 전송결과를전달받기위한 인터페이스. PlayRTCDataSendObserver.h

Return

uint64_t,  데이터를 전송할때 고유번호를 생성하여 데이터의 헤더에 명시해서 전송하며 이때 사용하는 고유번호를 반환합니다. PlayRTCDefine.h 정의

 

송신이벤트

  • PlayRTCDataSendObserver::onSending: 데이터 전송 이벤트
  • PlayRTCDataSendObserver::onSuccess: 데이터 전송 성공 이벤트
  • PlayRTCDataSendObserver::onError: 데이터 전송 진행 실패 이벤트

 

상대방수신이벤트

  • PlayRTCDataObserver::onProgress: 데이터를 수신 진척 상태 전달하는 이벤트
  • PlayRTCDataObserver::onMessage: 데이터 수신 완료 시 이벤트
  • PlayRTCDataObserver::onError: 데이터  수신 오류 이벤트

 

오류

  • PlayRTCDataObserver::onError
    • PlayRTCDataCodeNotOpen: DataChannel에 연결이 안되어 있음
    • PlayRTCDataCodeSendFail: 데이터 전송시 오류 발생
    • PlayRTCDataCodeSendBusy: 데이터 전송 중
    • PlayRTCDataCodeSendFail: 데이터 전송시 오류 발생

 


 

sendFileData

데이터 통신 채널을 통해 파일을 전송합니다. 전송할데이터가 10K 이상일 경우 내부적으로 데이터를 분할해서 전송하며, 상대방은 PlayRTCDataObserver를 통해서 데이터를 수신하며, PlayRTCDataHeader를 확인하여 수신하는 데이터 유형에 맞게 처리하도록 해야합니다.

 

Prototype

-(uint64_t)sendFileData:(NSString*)filePath
               observer:(id<PlayRTCDataSendObserver>)observer

 

Parameters

Argument Name Data Type Description
filePath NSString* 전송할 File
observer PlayRTCDataSendObserver 전송결과를전달받기위한 인터페이스.
PlayRTCDataSendObserver.h

Return

uint64_t,  데이터를 전송할때 고유번호를 생성하여 데이터의 헤더에 명시해서 전송하며 이때 사용하는 고유번호를 반환합니다. PlayRTCDefine.h 정의

 

송신이벤트

  • PlayRTCDataSendObserver::onSending: 데이터 전송 이벤트
  • PlayRTCDataSendObserver::onSuccess: 데이터 전송 성공 이벤트
  • PlayRTCDataSendObserver::onError: 데이터 전송 진행 실패 이벤트

상대방수신이벤트

  • PlayRTCDataObserver::onProgress: 데이터를 수신 진척 상태 전달하는 이벤트
  • PlayRTCDataObserver::onMessage: 데이터 수신 완료 시 이벤트
  • PlayRTCDataObserver::onError: 데이터  수신 오류 이벤트

 


 

PlayRTCDataHeader Interface Class

header : PlayRTCDataHeader.h

데이터 수신 시 수신 데이터에 대한정보를 알려주기 위한 인터페이스 Class로 PlayRTCDataObserver의 onProgress, onMessage를 통해 전달됩니다.

 

데이터타입정의

  • PlayRTCDefine.h
  • DATA_TYPE_TEXT   int, static, 0 텍스트 데이터
  • DATA_TYPE_BINARY      int, static, 1  Binary 데이터

getId

데이터 전송 시 부여 받는 고유아이디를 반환합니다.

Prototype

- (long) getId

Parameters

없음

Return

long,  데이터를전송할때부여받은고유번호를반환합니다.

 


 

getSize

데이터의전체사이즈를반환합니다. 텍스트데이터의경우 1글자가 2byte로처리됩니다.

Prototype

- (long) getSize

 

Parameters

없음

Return

long,  데이터의 byte 크기를 반환합니다.

getType

데이터의유형을반환합니다.

Prototype

- (int) getType

 

Parameters

없음

Return

int,  데이터의유형을반환합니다.
  • DATA_TYPE_TEXT   int, static, 0 텍스트 데이터
  • DATA_TYPE_BINARY      int, static, 1  Binary 데이터

 


 

isBinary

데이터유형이텍스트인지바이너리인지여부를반환합니다.

 

Prototype

- (BOOL) isBinary

 

Parameters

없음

Return

BOOL,  데이터 유형이 텍스트이면 FALSE, 바이너리이면 TRUE를 반환합니다.

getFileName

상대방이 보내준 파일명을 반환합니다.

Prototype

- (NSString*) getFileName

 

Parameters

없음

 

Return

NSString*, 상대방이보내준파일명을반환합니다. 없으면 nil

getMimeType

바이너리 또는 파일 전송일 경우 송신측에서 보내준데이터의 MimeType 반환합니다.

 

Prototype

- (NSString*) getMimeType

 

Parameters

없음

Return

NSString*, 바이너리 또는 파일 전송 일 경우 송신측에서 보내준 데이터의 MimeType을 반환합니다. 없으면 nil

PlayRTCMedia Interface Class

header : PlayRTCMedia.h

PlayRTC SDK는 로컬 또는 상대방의 영상/음성 스트림을 획득 시 PlayRTCMedia 인터페이스를 구현한 객체를 생성하여 onAddLocalStream/onAddRemoreStream 이벤트 인터페이스를 호출하여 PlayRTCMedia 인터페이스 를 전달합니다. PlayRTCMedia를 전달 받으면 영상 출력 뷰(PlayRTCVieoView)에 영상을 출력하도록 처리해야 합니다.

  • 영상 출력을 위한 PlayRTCVideoView 객체 생성 방법

PlayRTC SDK는 영상 스트림을 출력하는 PlayRTCVieoView Class를 제공합니다.

PlayRTCVideoView는 동적으로 생성하며 생성자에서 View 크기를 전달해야 하므로 ViewController 에서 스트림 뷰의 화면 크기를 지정하여  뷰를 생성하도록 합니다.

 

enum MediaSourceType

header : PlayRTCMedia.h

 Name  Description
 LocalMedia  로컬미디어스트림
 RemoteMedia  상대방 P2P 미디어스트림

 


 

getVideoRenderer

영상 스트림을 출력하고 있는 PlayRTCVideoView의 Renderer를 반환합니다.

 

Prototype

- (PlayRTCVideoRenderer*) getVideoRenderer

 

Parameters

없음

Return

PlayRTCVideoRenderer*,PlayRTCVideoView의 Renderer

 

 


 

setVideoRenderer

영상 스트림을 출력하기 위해 Renderer가 구현되어 있는  PlayRTCVideoView의 Renderer를 전달받습니다.

 

Prototype

- (void) setVideoRenderer:(PlayRTCVideoRenderer*) renderer

 

Parameters

Argumenet Name Data Type Description
renderer PlayRTCVideoRenderer 영상출력을위한 Renderer 인터페이스로 PlayRTCVideoView에구현되어있습니다.

 

Return

없음

 


 

getUserId

Application에서 사용하는 사용자의 아이디를 반환합니다.

PlatRTC의 createChannel, connectChannel에서 지정한 peer의 uid로 없으면 “”

Prototype

- (NSString*) getUserId

 

Parameters

없음

Return

NSString*, Application에서 사용하는 사용자의 아이디를 반환합니다.

 


 

getUserPid

채널에서부여받은사용자의아이디를반환합니다.

Prototype

- (NSString*) getUserPid

 

Parameters

없음

Return

NSString*, 채널에서부여받은사용자의아이디를반환합니다.

 


 

hasVideoStream

Video 스트림을가지고있는지여부를반환합니다.

 

Prototype

- (BOOL) hasVideoStream

 

Parameters

없음

Return

BOOL, Video 스트림을 가지고 있는지 여부를 반환합니다.

 


 

hasAudioStream

Audio 스트림을가지고있는지여부를반환합니다.

Prototype

- (BOOL) hasAudioStream

 

Parameters

없음

Return

BOOL, Audio 스트림을 가지고 있는지 여부를 반환합니다.

getSourceType

Enum MediaSourceType을 반환합니다.

Prototype

- (MediaSourceType) getSourceType

 

Parameters

없음

Return

MediaSource.LocalMedia : 로컬 미디어 스트림
MediaSource.RemoteMedia: 상대방 P2P 미디어 스트림

 


 

setAudioMute

Audio 스트림을 Mute 합니다. 로컬스트림을 Mute하는 경우 상대방도 소리가  출력되지않습니다.

 

Prototype

- (BOOL) setAudioMute:(BOOL) mute

 

Parameters

Argumenet Name Data Type Description
mute BOOL TRUE이면 mute 설정, FALSE이면 mute 해제

 

Return

BOOL, 적용 시 TRUE를 반환

setVideoMute

Video 스트림을 Mute 합니다. 로컬스트림을 Mute하는 경우 상대방도 영상이   출력되지않습니다.

 

Prototype

- (BOOL) setVideoMute:(BOOL) mute

 

Parameters

Argumenet Name Data Type Description
mute BOOL TRUE이면 mute 설정, FALSE이면 mute 해제

 

Return

BOOL, 적용 시 TRUE를 반환

isVideoMute – new 2.2.5

Video 출력이 Mute상태인지 여부를 반환한다.

Prototype

-(BOOL) isVideoMute

Parameters

없음

Return

BOOL

isAudioMute – new 2.2.5

Audio 출력이 Mute상태인지 여부를 반환한다.

Prototype

-(BOOL) isAudioMute

Parameters

없음

Return

BOOL

SDK Specification – PlayRTCObserver

header : PlayRTCObserver.h

PlayRTC 객체의 이벤트를 전달받기 위한 리스너 인터페이스로 PlayRTC 에 PlayRTCObserver 인터페이스를 구현한 구현 개체를 등록해야 합니다.

 


 

onConnectChannel

PlayRTC 개체의 createChannel 또는 connectChannel 메소드를 호출하여 PlayRTC 플랫폼의 서비스 채널에 입장하게 되면 PlayRTC SDK는 채널 관련 정보를 받으며,  채널 아이디를 전달 하기 위해 onConnectChannel을 호출합니다.

 

Prototype

-(void)onConnectChannel:(PlayRTC*)obj
              channelId:(NSString*)channelId
                 reason:(NSString*)reason

 

Parameters

 Argumenet Name  Data Type  Description
 obj PlayRTC*  PlayRTC 개체
channelId NSString*  PlayRTC 플랫폼 서비스의 채널아이디. 사용자간 P2P연결을하려면동일한채널아이디를시용해야합니다.
reason NSString createChannel을 호출하여 채널에 입장한 경우 “create”, connectChannel을 호출한 경우 “connect”

 

Return

없음

onRing

상호 연결확인 과정(ring)을 설정하였다면 채널에 먼저 입장한  SDK는 나중에 채널에 입장한 사용자로부터 연결 의사를 묻는 요청을 수신하게되고 onRing을 호출합니다. onRing이 호출 되면 사용자로부터 수락여부를 입력받아 상대방에게 전달하도록 해야 합니다. 이때 서비스 개발자는 넘겨받은 사용자아이디로 서비스조회를 통해 사용자 상세 정보를 확인하고, 연결여부를 묻는 UI 개발이 필요할 수도 있습니다.

 

Prototype

-(void)onRing:(PlayRTC*)obj
       peerId:(NSString*)peerId
      peerUid:(NSString*)peerUid

 

Parameters

 Argumenet Name  Data Type  Description
 obj PlayRTC*  PlayRTC 개체
peerId NSString*  PlayRTC 플랫폼 채널 서비스의 User 아이디
peerUid NSString*  사용자의 application에서사용하는아이디로채널연결시입력한값, 없으면 “”

 

Return

없음

onAccept

PlayRTCSetting 에서 상호연결 확인과정(ring)을 설정하였다면 채널에 나중에 입장한 SDK는 경우먼저 입장한 사용자로부터 연결수락의사를 물어보고 상대로부터승인을받으면 onAccept 를 호출합니다. 이때 SDK는내부적으로 시그널서버에 접속하여 시그널링을 진행하게됩니다.

 

Prototype

-(void)onAccept:(PlayRTC*)obj
         peerId:(NSString*)peerId
        peerUid:(NSString*)peerUid

 

Parameters

 Argumenet Name  Data Type  Description
 obj PlayRTC*  PlayRTC 개체
peerId NSString*  PlayRTC 플랫폼 채널 서비스의 User 아이디
peerUid NSString*  사용자의 application에서사용하는아이디로채널연결시입력한값, 없으면 “”

 

Return

없음

onReject

PlayRTCSetting에서 상호연결 확인 과정(ring)을 설정하였다면 채널에 나중에 입장한 SDK는  먼저입장한 사용자로부터 연결수락 의사를 물어보고 상대로부터 거부을받으면 onReject 를 호출합니다.  개발자가 이 호출을 받으면 절적한 대응을 구현하여야 합니다.

 

Prototype

-(void<)onReject:(PlayRTC*)obj
          peerId:(NSString*)peerId
         peerUid:(NSString*)peerUid

Parameters Data TypeDescription  PlayRTC*PlayRTC 개체  NSString* PlayRTC 플랫폼 채널 서비스의 User 아이디  NSString*사용자의 application에서사용하는아이디로채널연결시입력한값, 없으면 “”      peerIdpeerUid

 

Argumenet Name
obj

Return

없음

onUserCommand

 

Application 개발자가 정의한 사용자 정의 데이터를 채널 서비스를 통해 전달 받으면 PlayRTC SDK는 수신 전문 데이터의 가공 처리 없이 onUserCommand 를 호출하여 전달합니다. 개발자는 onUserCommand 호출 시 데이터에 맞는 대응을 구현해야 합니다.

Prototype

-(void)onUserCommand:(PlayRTC*)obj
              peerId:(NSString*)peerId
             peerUid:(NSString*)peerUid
                data:(NSString*)data

Parameters

Argumenet Name Data Type Description
obj PlayRTC* PlayRTC 개체
peerId NSString*  PlayRTC 플랫폼 채널 서비스의 User 아이디
peerUid NSString* 사용자의 application에서사용하는아이디로채널연결시입력한값, 없으면 “”
data
NSString* 상대방이 전송한 데이터 문자열

Return

없음

onAddLocalStream

 

PlayRTC SDK가 PlayRTCMedia 구현 개체를 생성 하고 인터페이스를  사용자에게 전달 할 때 사용하는 이벤트이며

 

PlayRTCMedia는 PlayRTC SDK 설정에서 영상/음성 스트리밍을 사용하도록 설정하면, 로컬 단말의 미디어 스트림을 생성하고 PlayRTCMedia를  onAddLocalStream이벤트를 통해 전달합니다.

 

onAddLocalStream 를 통해 PlayRTCMedia를 전달 받으면 PlayRTCVideoView 객체의 영상 스트림 렌더러를 구하여 전달해야 합니다.

 

Prototype

-(void)onAddLocalStream:(PlayRTC*)obj
                  media:(PlayRTCMedia*)media

 

Parameters

 Argumenet Name  Data Type  Description
 obj PlayRTC*   PlayRTC 개체
media PlayRTCMedia*  미디어스트림처리를위한  PlayRTCMedoa 인터페이스

Example

@interface XXXXX {
  PlayRTCVideoView* localView;
  PlayRTCMedia* localMedia;
}
.....
-(void<)onAddLocalStream:(PlayRTC*)obj media:(PlayRTCMedia*)media
{
   self.localMedia = media;
   [media setVideoRenderer:[self.localVideoView getVideoRenderer]];
}

 

Return

없음

 


 

onAddRemoteStream

PlayRTC SDK가 PlayRTCMedia 구현 개체를 생성 하고 인터페이스를  사용자에게 전달 할 때 사용하는 이벤트이며

PlayRTC SDK가 P2P연결이 수립되어 상대방의 미디어 스트림을 수신하면 PlayRTCMedia 를 사용자에게 전달하기 위해  onAddRemoteStream 을 호출합니다.

onRemoteStream 를 통해 PlayRTCMedia를 전달 받으면 PlayRTCVideoView 객체의 영상 스트림 렌더러를 구하여 전달해야 합니다.

Prototype

-(void)onAddRemoteStream:(PlayRTC*)obj
                  peerId:(NSString*)peerId
                 peerUid:(NSString*)peerUid
                   media:(PlayRTCMedia*)media

Parameters

 Argumenet Name  Data Type  Description
 obj PlayRTC*   PlayRTC 개체
 peerId NSString*  PlayRTC 플랫폼 채널 서비스의 User 아이디
 peerUid NSString*  사용자의 application에서 사용하는아이디로 채널연결 시 입력한 값, 없으면 “”
media PlayRTCMedia*  미디어스트림처리를위한  PlayRTCMedia 인터페이스

Example

@interface XXXXX {
  PlayRTCVideoView* remoteView;
  PlayRTCMedia* remotelMedia;
}
.....
-(void)onAddRemoteStream:(PlayRTC*)obj peerId:(NSString*)peerId peerUid:(NSString*)peerUid media:(PlayRTCMedia*)media
>{
    self.remoteMedia = media;
    [media setVideoRenderer:[self.remoteVideoView getVideoRenderer]];
}

Return

없음

onAddDataStream

PlayRTC SDK가 P2P 데이터 교환용 데이터채널을 생성한후 PlayRTCData 인터페이스를 사용자에게 전달할떄 호출하는 이벤트이며,  PlayRTCData는 PlayRTC SDK 설정에서데이터통신을 사용하도록 설정하면 상대방과의 P2P 데이터 채널 연결이 수립될때생성되어 onDataStream 이벤트를통해전달됩니다.

 

Prototype

-(void)onAddDataStream:(PlayRTC*)obj
                peerId:(NSString*)peerId
               peerUid:(NSString*)peerUid
                  data:(PlayRTCData*)data

Parameters

 Argumenet Name  Data Type  Description
 obj PlayRTC*   PlayRTC 개체
 peerId NSString*  PlayRTC 플랫폼 채널 서비스의 User 아이디
 peerUid NSString*  사용자의 application에서 사용하는아이디로 채널연결 시 입력한 값, 없으면 “”
data PlayRTCData*  P2P 데이터 전송 처리를 위한 PlayRTCData 인터페이스.상대방의 데이터 수신은 PlayRTCDataObserver 인터페이스를 통해서 처리며 데이터 전송 결과는 PlayRTCDataSendObserver를 전송 메소드 호출 시 같이 넘겨 확인합니다.

 

Return

없음

onDisconnectChannel

채널서버로부터 채널퇴장Command를 받거나 채널 종료 시 호출 되며 SDK는 채널에서 연결을 맺은 모든 P2P 연결을종료하고 P2P 연결 객체를 모두해제한후 최종적으로 채널서버와의 연결 개체를 해제합니다.  onDisconnectChannel은 PlayRTC가채널 퇴장을 알리기 위해 호출하는 이벤트입니다.

 

Prototype

-(void)onDisconnectChannel:(PlayRTC*)obj reason:(NSString*)reason

Parameters

 Argumenet Name  Data Type  Description
 obj PlayRTC*   PlayRTC 개체
 reason NSString*  disconnectChannel을 호출하여 채널에서 퇴장한 경우 “disconnect”, deleteChannel을 호출한 경우 “delete”

 

Return

없음

onOtherDisconnectChannel

채널서버로부터 상대방의 채널퇴장 Command를 받아 상대방과의 P2P 연결을종료-상대방이 먼저 P2P 연결을 해제하지 않았다면- 하고 P2P 객체를 해제합니다. onOtherDisconnectChannel은 PlayRTC가 상대방의 채널퇴장을 알리기 위해 호출되는 이벤트입니다.

채널서버는 채널퇴장요청을 받아채널에 있는 사용자들에게 채널퇴장을 통보하고 채널 연결을 해제합니다.

 

Prototype

-(void)onOtherDisconnectChannel:(PlayRTC*)obj
                         peerId:(NSString*)peerId
                        peerUid:(NSString*)peerUid
                         reason:(NSString*)reason;

Parameters

 Argumenet Name  Data Type  Description
 obj PlayRTC*   PlayRTC 개체
 peerId NSString*  PlayRTC 플랫폼 채널 서비스의 User 아이디
 peerUid NSString*  사용자의 application에서 사용하는아이디로 채널연결 시 입력한 값, 없으면 “”

 

Return

없음

onStateChange

PlayRTC의 상태 변경사항을 전달받는 이벤트 인터페이스.

PlayRTC상태 정의는 enum PlayRTCStatus 항목 참고

 

Prototype

-(void)onStateChange:(PlayRTC*)obj
              peerId:(NSString*)peerId
             peerUid:(NSString*)peerUid
              status:(PlayRTCStatus)status
                desc:(NSString*)desc

Parameters

 Argumenet Name  Data Type  Description
 obj PlayRTC*   PlayRTC 개체
 peerId NSString*  PlayRTC 플랫폼 채널 서비스의 User 아이디
 peerUid NSString*  사용자의 application에서 사용하는아이디로 채널연결 시 입력한 값, 없으면 “”
 status  PlayRTCStatus  PlayRTC 상태 정의 코드.enum PlayRTCStatus 참고
 desc NSString*  Description

 

Return

없음

onError

PlayRTC 에서발생하는오류를전달받는이벤트인터페이스.

PlayRTC상태 정의는 PlayRTCDefine.h의 enum PlayRTCStatus 항목 참고

PlayRTC 오류 정의는PlayRTCDefine.h의 enum PlayRTCCode 항목 참고

 

Prototype

-(void)onError:(PlayRTC*)obj
        status:(PlayRTCStatus)status
          code:(PlayRTCCode)code
          desc:(NSString*)desc

Parameters

 Argumenet Name  Data Type  Description
 obj PlayRTC*   PlayRTC 인터페이스
 status PlayRTCStatus  PlayRTC 상태 정의 코드.enum PlayRTCStatus 참고
 code PlayRTCCode  PlayRTC 오류 정의 코드.enum PlayRTCCode 항목 참고
 desc NSString*  Description

 

Return

없음

PlayRTCDataObserver Interface Class

header  : PlayRTCDataObserver.h

PlayRTCData 객체를  통해서 P2P 데이터 통신 시 발생하는 주요 이벤트를 전달 받아 처리하기 위한 이벤트 인터페이스로 주요이벤트는수신데이터알림과, PlayRTCData의상태 및 오류 정보가 있습니다. PlayRTCObserver의 onAddDataStream 인터페이스를 통해서 PlayRTCData를 전달 받으면 PlayRTCDataObserver 인터페이스 구현 개체를 전달해야 합니다.

 


onDataReady

PlayRTCData는 데이터 전송시 데이터크기를 8192Byte 기준으로 분할하고 헤더정보를 구성하여 데이터를 전송하며 데이터 수신 시 수신한 데이터 관련정보를 PlayRTCDataHeader에 담아 전달합니다.

Prototype

-(void)onDataReady:(PlayRTCData*)obj
           senderId:(NSString*)senderId
          peerUid:(NSString*)peerUid
           header:(PLatRTCDataHeader*)header


Parameters   Data Type Description  obj : PlayRTCData* PlayRTCData  개체  PeerId : NSString* PlayRTC 플랫폼 채널 서비스의 User 아이디 senderId : NSString* 사용자의 application에서 사용하는아이디로 채널연결 시 입력한 값, 없으면 “”  header   :   PlayRTCDataHeader* 데이터정보,  PlayRTCDataHeader 항목참고        Return

없음

 


 

onProgress

PlayRTCData는 데이터 전송시 데이터크기를8192Byte 기준으로 분할하고 헤더정보를 구성하여 데이터를 전송하며 데이터 수신 시 진행상황을 이벤트를통해알려줍니다. 수신데이터는 고유번호가 지정되어 있으며 수신한 데이터 관련정보를 PlayRTCDataHeader로 같이 전달합니다.

PlayRTCDataHeader 정보를 확인하여 수신하는 데이터 종류(Text, Binary, File)에 맞게 처리 해야하며, 파일 데이터의 경우 헤더 정보에 파일 이름 및 MimeType이 같이 전달 되므로 데이터 수신 시 파일 저장을 위한 작업이 필요합니다.

Prototype

-(void)onProgress:(PlayRTCData*)obj
           senderId:(NSString*)senderId
          peerUid:(NSString*)peerUid
           header:(PlayRTCDataHeader*)header
         recvSize:(uint64_t)recvSize
           data:(NSData*)data

Parameters  Data Type Description  PlayRTCData* PlayRTCData  개체  NSString* PlayRTC 플랫폼 채널 서비스의 User 아이디  NSString* 사용자의 application에서 사용하는아이디로 채널연결 시 입력한 값, 없으면 “”   PlayRTCDataHeader 데이터 정보. PlayRTCDataHeader 참고   uint64_t  수신받은 데이터의 누적 크기   NSData* 수신받은 데이터       peerId peerUid header recvSize data

 

 Argumenet Name
 obj

Return

없음

onFinishLoading

전체 데이터수신이 완료될 때호출이 됩니다.

Prototype

-(void)onFinishLoading:(PlayRTCData*)obj
          senderId:(NSString*)senderId
         peerUid:(NSString*)peerUid
          header:(PlayRTCDataHeader>*)header

Parameters

 Argumenet Name  Data Type  Description
 obj PlayRTCData*  PlayRTCData  개체
senderId NSString*  PlayRTC 플랫폼 채널 서비스의 User 아이디
 peerUid NSString*  사용자의 application에서 사용하는아이디로 채널연결 시 입력한 값, 없으면 “”
 header PlayRTCDataHeader*  데이터정보,  PlayRTCDataHeader 항목 참고

 

Return

없음

onStateChane

PlayRTCData객체의 상태변경이 되면 onStateChange 가 호출됩니다.

 

Prototype

-(void)onStateChange:(PlayRTCData*)obj
              peerId:(NSString*)peerId 
             peerUid:(NSString*)peerUid
               state:(PlayRTCDataStatus)state

 

Parameters

 Argumenet Name  Data Type  Description
 obj PlayRTCData*  PlayRTCData  개체
 peerId NSString*  PlayRTC 플랫폼 채널 서비스의 User 아이디
 peerUid NSString*  사용자의 application에서 사용하는아이디로 채널연결 시 입력한 값, 없으면 “”
 state PlayRTCDataStatus  상태 정의 코드enum  PlayRTCDataStatus 참고

 

Return

없음

 

onError

PlayRTCData에서 오류발생시 onError 인터페이스가호출됩니다.

 

Prototype

-(void)onError:(PlayRTCData*)obj
        peerId:(NSString*)peerId
       peerUid:(NSString*)peerUid
        dataId:(uint64_t)dataId
          code:(PlayRTCDataCode)code
          desc:(NSString*)desc

 

Parameters

 Argumenet Name  Data Type  Description
 obj PlayRTCData*  PlayRTCData  개체
 peerId NSString*  PlayRTC 플랫폼 채널 서비스의 User 아이디
 peerUid NSString*  사용자의 application에서 사용하는아이디로 채널연결 시 입력한 값, 없으면 “”
 dataId  uint64_t  수신 데이터의 고유 아이디. PlayRTCDefine.h
 code  PlayRTCDataCode  enum PlayRTCDataCode 참고
 desc  NSString*  Description

 

Return

없음

PlayRTCDataSendObserver Interface Class

header : PlayRTCDataSendObserver

데이터 전송 결과를 전달 받아 처리하기 위한 이벤트 인터페이스

 


onSneding

PlayRTCData는 데이터전송 진행 상태를 알려주는 인터페이스.

데이터 전송에 성공했을 경우 호출되는 인터페이스.

Prototype

-(void)onSending:(PlayRTCData*)obj
          peerId:(NSString*)peerId
         peerUid:(NSString*)peerUid
          dataId:(uint64_t)dataId
            size:(uint64_t)size
            send:(uint64_t)send
		   index:(int)index
            count:(int)count

Parameters

 Argumenet Name  Data Type  Description
 obj PlayRTCData*  PlayRTCData  개체
 peerId  NSString*  PlayRTC 플랫폼 채널 서비스의 User 아이디
 peerUid  NSString*  사용자의 application에서 사용하는아이디로 채널연결 시 입력한 값, 없으면 “”
 dataId  uint64_t  전송 데이터의 고유 아이디
 size  uint64_t  전송 할 데이터의 전체 크기, 문자의경우 1글자는 2byte로처리됩니다.
 send  uint64_t  전송한 데이터의크기, 문자의경우 1글자는 2byte로처리됩니다.
index  int  전송한 데이터의 분할 패킷 index
count  int  전송할 데이터의 패킷 분할 수

Return

없음

onSnedSuccess

PlayRTCData는 데이터전송시 데이터 크기를 8192Byte 기준으로 분할하고 헤더정보를 구성하여 데이터를 전송하며 데이터는 고유번호가 지정됩니다.

데이터 전송에 성공했을 경우 호출되는 인터페이스.

 

Prototype

-(void)onSendSuccess:(PlayRTCData*)obj
          peerId:(NSString*)peerId
         peerUid:(NSString*)peerUid
          dataId:(uint64_t)dataId
            size:(uint64_t)size

 

Parameters

 Argumenet Name  Data Type  Description
 obj PlayRTCData*  PlayRTCData  개체
 peerId  NSString*  PlayRTC 플랫폼 채널 서비스의 User 아이디
 peerUid  NSString*  사용자의 application에서 사용하는아이디로 채널연결 시 입력한 값, 없으면 “”
 dataId  long  전송 데이터의 고유 아이디
 size  long  전송한데이터의크기, 문자의경우 1글자는 2byte로처리됩니다.

 

Return

없음

onSendError

데이터전송시오류발생시이벤트.

 

Prototype

-(void)onSendError:(PlayRTCData*)obj
        peerId:(NSString*)peerId
       peerUid:(NSString*)peerUid
        dataId:(uint64_t)dataId
          code:(PlayRTCDataCode)code
          desc:(NSString*)desc

Parameters

 Argumenet Name  Data Type  Description
 obj PlayRTCData*  PlayRTCData  개체
 peerId  NSString*  PlayRTC 플랫폼 채널 서비스의 User 아이디
 peerUid  NSString*  사용자의 application에서 사용하는아이디로 채널연결 시 입력한 값, 없으면 “”
 dataId  long  전송 데이터의 고유 아이디
 code  PlayRTCDataCode  enum PlayRTCDataCode참고
 desc  NSString*  Description

 

Return

없음

PlayRTCStatsObserver Interface Class

Header : PlayRTCStatsObserver.h

PlayRTC SDK P2P 상태를 전달 받아 처리하기 위한 이벤트 인터페이스


onStatsReport

PlayRTC SDK P2P 상태 정보를 전달하기위해  호출되는 인터페이스.

Prototype

- (void) onStatsReport:(PlayRTCStatsReport*) report

Parameters

 Argumenet Name  Data Type  Description
 report PlayRTCStatsReport PlayRTC SDK P2P 상태 정보 정의 인터페이스

Return

없음

SDK Specification – PlayRTCVideoView

header : PlayRTCVideoView.h

GLSurfaceView를 상속하여 영상 미디어 스트림을 화면에 출력하도록 구현한 View Class로 PlayRTCVideoView 인스턴스는 소스코드상에서 동적으로생성합니다. 내부적으로PlayRTCVideoRenderer 인터페이스가 구성되어 있으며, PlayRTCMedia 에게 PlayRTCVideoRenderer인터페이스를 전달해야 합니다.

 

Constructor

- (instancetype)initWithFrame:(CGRect)frame
- (instance) initWithCoder:(NSCoder*)aDecoder

 


 

getVideoRenderer

PlayRTCMedia의 영상스트림을 화면에 출력하기 위해 내부에 구현되어있는 Renderer의 인터페이스를 반환합니다.

 

Prototype

- (PlayRTCVideoRenderer*) getVideoRenderer

 

Parameters

없음

Return

PlayRTCVideoRenderer*, YUV 영상 스트림을 출력하기 위한 Renderer의 인터페이스를 반환합니다.

 

 


bgClearColorWithRed – new 2.2.4

PlayRTCVideoView의 배경색을 지정합니다.

Prototype

- (void) bgClearColorWithRed:(CGFloat)red green:(CGFloat)green blue:CGFloat)blue alpha:(CGFloat)alpha

 

Parameters

 Argumenet Name  Data Type  Description
 red CGFloat  red color 0.0 ~ 1.0
 green CGFloat  green color 0.0 ~ 1.0
 blue CGFloat  blue color 0.0 ~ 1.0
 alpha CGFloat  alpha 0.0 ~ 1.0

Return

없음


bgClearColor – new 2.2.4

지정한 배경색으로 화면을 칠합니다.
영상 스트림 출력이 멈추면 화면에는 마지막 잔상이 남습니다.
이때 화면을 초기색으로 채울 경우 사용합니다.

Prototype

- (void) bgClearColor

Parameters

없음

Return
없음


snapshot – new 2.2.5

PlayRTCView의 출력 영상 Bitmap 이미지를 생성합니다.
PlayRTCVideoViewSnapshotObserver를 메소드 호출 시 전달하여 Bitmap 이미지를 받아야 합니다.

Prototype

-(void) snapshot:(id<PlayRTCVideoViewSnapshotObserver>) observer

Parameters

Argumenet Name Data Type Description
observer id<PlayRTCVideoViewSnapshotObserver> 이미지를 전달 받기 위한 PlayRTCVideoViewSnapshotObserver 구현객체

Return
없음


 

SDK Specification – VideoFrameObserver

header : PlayRTCVideoView.h

영상 미디어 스트림의 화면 해상도 정보를 전달하기 위한 인터페이스

 

onFrameSize

Prototype

-(void)onFrameSize:(CGSize)size

 

Parameters

 Argumenet Name  Data Type  Description
 size
CGSize
 해상도 크기

 

Return

없음

 


PlayRTCVideoViewSnapshotObserver Class

header : PlayRTCVideoView.h

Interface

onSnapshotImage

PlayRTCView의 출력 영상 Bitmap 이미지를 전달하기 위한 인터페이스

-(void) onSnapshotImage:(UIImage*) image

Parameters

 Argumenet Name  Data Type  Description
 image UIImage  Bitmap Image, 이미지 크기는 View와 동일한 크기

Return

없음

PlayRTCServiceHelperListener Interface Class

header : PLayRTCServiceHelperListener.h

PlayRTC의 채널 정보 조회 결과를 받기 위한 리스너 Interface Class입니다.

PlayRTCServiceHelperListener 구현 개체를 전달하여 응답  결과를 수신합니다.

 

onFrameSize

Prototype

</pre>
<pre class="p1">-(<span class="s1">void</span>)onFrameSize:(<span class="s2">CGSize</span>)size</pre>
<pre>

 

Parameters

 Argumenet Name  Data Type  Description
 size
CGSize
 해상도 크기, Ponit.x 는 width, Point.y는 height
 statusMsg  NSString*  http status message
 returnParam  id  비동기 응답 수신처리를 위해 필요한 부가 데이터를 요청 시 전달하고 응답 시 되돌려 받기 위한데이터 Object.
 oData  NSDictionary*  서비스응답데이터. JSON String을 NSDictionary로 반환

 

Return

없음

 

onServiceHelperResponse

PlayRTCServiceHelperAdapter 구현 객체의 서비스 응답을 전달하기 위한 인터페이스

 

Prototype

- (void)onServiceHelperResponse:(int)code
                      statusMsg:(NSString*)statusMsg
                    returnParam:(id)returnParam
                           data:(NSDictionary*)oData

 

Parameters

 Argumenet Name  Data Type  Description
 code  int  http status code
 statusMsg  NSString*  http status message
 returnParam  id  비동기 응답 수신처리를 위해 필요한 부가 데이터를 요청 시 전달하고 응답 시 되돌려 받기 위한데이터 Object.
 oData  NSDictionary*  서비스응답데이터. JSON String을 NSDictionary로 반환

 

Return

없음

 onServiceHelperFail

PlayRTCServiceHelperAdapter 구현 객체의 서비스 실패 응답을 전달하기 위한 인터페이스

 

Prototype

- (void)onServiceHelperFail:(int)code
                  statusMsg:(NSString*)statusMsg
                returnParam:(id)returnParam

 

Parameters

 Argumenet Name  Data Type  Description
 code  int  http status code
 statusMsg  NSString*  http status message
 returnObject  id  비동기 응답 수신처리를 위해 필요한 부가 데이터를 요청 시 전달하고 응답 시 되돌려 받기 위한데이터 Object.

 

Return

없음

 

 

 

 

 

Play RTC

서비스 체험

Play RTC build PlaygrOund

나만의 플레이그라운드를 만들어 친구를 초대해보세요 !

www.playrtc.com/

번거로운 가입이나 설치 없이ID만 만들어서 영상통화나 파일 공유, 채팅 서비스를 무료로 즐겨보세요.

 

Play RTC

서비스 체험

개설한 Playground 주소를 복하해서 친구에게 보내조세요. 친구가 Playground에 접속하면 이곳에 친구의 영상과 음성이 나타납니다. Waiting..

Photo

X
이미지 미리보기
이미지
 

서비스 체험

 

서비스 체험

서비스 체험은 크롬과 파이어폭스 브라우저에 최적화되어 있습니다.
크롬 또는 파이어폭스 브라우저를 설치 후 다시 이용해주세요.