2022年05月13日
※2019年の記事です。
Agoraのビデオ通話アプリ(iOS版)の実装例・サンプルコードをご紹介します。
執筆者ブイキューブ
Agoraの日本総代理店として、配信/通話SDKの提供だけでなく、導入支援から行い幅広いコミュニケーションサービスに携わっている。
2022年05月13日
※2019年の記事です。
Agoraのビデオ通話アプリ(iOS版)の実装例・サンプルコードをご紹介します。
利用SDK:AgoraVideoSDK for iOS
SDKバージョン:3.x
https://www.agora.io/en/download/ からiOS用のSDKをダウンロードします。
サンプルコードも内包されています。
samplesフォルダにはビデオ通話用のサンプルとライブ配信用のサンプルが含まれてます。
今回はビデオ通話用のサンプル「Agora-iOS-Tutorial-Swift-1to1」を利用します。
AppIDをご利用のものに変更します。
let AppID: String = <#Your App ID#>
AgoraSDKを初期化します。
func initializeAgoraEngine() {
agoraKit = AgoraRtcEngineKit.sharedEngine(withAppId: AppID, delegate: self)
}
ローカル映像を設定を行います。
func setupVideo() {
agoraKit.enableVideo()
agoraKit.setVideoEncoderConfiguration(AgoraVideoEncoderConfiguration(size: AgoraVideoDimension640x360,
frameRate: .fps15,
bitrate: AgoraVideoBitrateStandard,
orientationMode: .adaptative))
}
ローカル映像を表示します。
func setupLocalVideo() {
let videoCanvas = AgoraRtcVideoCanvas()
videoCanvas.uid = 0
videoCanvas.view = localVideo
videoCanvas.renderMode = .hidden
agoraKit.setupLocalVideo(videoCanvas)
}
チャネルに接続します。
func joinChannel() {
agoraKit.setDefaultAudioRouteToSpeakerphone(true)
agoraKit.joinChannel(byToken: nil, channelId: "demoChannel1", info:nil, uid:0) {[weak self] (sid, uid, elapsed) -> Void in
if let weakSelf = self {
UIApplication.shared.isIdleTimerDisabled = true
}
}
}
他拠点の映像を表示します。
func rtcEngine(_ engine: AgoraRtcEngineKit, firstRemoteVideoDecodedOfUid uid:UInt, size:CGSize, elapsed:Int) {
if (remoteVideo.isHidden) {
remoteVideo.isHidden = false
}
let videoCanvas = AgoraRtcVideoCanvas()
videoCanvas.uid = uid
videoCanvas.view = remoteVideo
videoCanvas.renderMode = .adaptive
agoraKit.setupRemoteVideo(videoCanvas)
}
必要最低限の実装はこれだけです。
サーバを用意する必要はなく、これだけのコード量で低遅延のビデオ通話アプリが構築可能です。
執筆者ブイキューブ