LoginSignup
7
7

More than 3 years have passed since last update.

agora.io SDKでビデオ通話アプリの開発(iOS版)

Last updated at Posted at 2018-11-19

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

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

SDKの入手

https://www.agora.io/en/download/ からiOS用のSDKをダウンロードします。
サンプルコードも内包されています。
スクリーンショット_0030-11-19_16_15_50.png

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に関するお問い合わせはこちらから
スクリーンショット 0001-08-15 13.41.56.png

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7