テレワークで日本を変える|Web会議・テレビ会議(TV会議)のブイキューブ

テレワークで日本を変える|テレビ会議(TV会議)・Web会議・電話会議のブイキューブ

実装例|ビデオ通話アプリ(iOS版)

1対1のシンプルなビデオ通話の実装

利用SDK:AgoraVideoSDK for iOS
SDKバージョン:2.3.1

SDKの入手

https://www.agora.io/en/download/ からiOS用のSDKをダウンロードします。
サンプルコードも内包されています。

iOS用のSDKをダウンロード

samplesフォルダにはビデオ通話用のサンプルとライブ配信用のサンプルが含まれてます。
今回はビデオ通話用のサンプル「Agora-iOS-Tutorial-Swift-1to1」を利用します。

AppIDをご利用のものに変更します。

AppID.swift
let AppID: String = <#Your App ID#>  

AgoraSDKを初期化します。

VideoChatViewController.swift
func initializeAgoraEngine() {
    agoraKit = AgoraRtcEngineKit.sharedEngine(withAppId: AppID, delegate: self)
}

ローカル映像を設定を行います。

VideoChatViewController.swift
func setupVideo() {
    agoraKit.enableVideo()
    agoraKit.setVideoEncoderConfiguration(AgoraVideoEncoderConfiguration(size: AgoraVideoDimension640x360,
                                                                         frameRate: .fps15,
                                                                         bitrate: AgoraVideoBitrateStandard,
                                                                         orientationMode: .adaptative))
}

ローカル映像を表示します。

VideoChatViewController.swift
func setupLocalVideo() {
    let videoCanvas = AgoraRtcVideoCanvas()
    videoCanvas.uid = 0
    videoCanvas.view = localVideo
    videoCanvas.renderMode = .hidden
    agoraKit.setupLocalVideo(videoCanvas)
}

チャネルに接続します。

VideoChatViewController.swift
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
        }
    }
}

他拠点の映像を表示します。

VideoChatViewController.swift
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)
}

必要最低限の実装はこれだけです。
サーバを用意する必要はなく、これだけのコード量で低遅延のビデオ通話アプリが構築可能です。

agora.io SDK イメージ
agora.io SDK

大規模・安価・すぐに使える
ライブ配信・ビデオ通話・音声通話SDK

 

先頭へ戻る