---
title: {{ page_meta.name }}｜{{ group.public_title }}｜{{ site_settings.logo_alt }}
description: ビデオ通話やライブ配信を簡単に実装できるAgora SDK。ビデオ通話アプリ（iOS版）の実装例・サンプルコードです。
---

[Agora Go Real ](https://jp.vcube.com/sdk/blog)

# [{{ page_meta.name }}｜{{ group.public_title }}｜{{ site_settings.logo_alt }}](https://jp.vcube.com/sdk/blog/implementation-ios.html)

 作成者: [ブイキューブ](https://jp.vcube.com/sdk/blog/author/v-cube)｜May 13, 2022 4:25:46 AM

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

利用SDK：AgoraVideoSDK for iOS  
SDKバージョン：3.x

## SDKの入手

[https://www.agora.io/en/download/](https://www.agora.io/en/download/) から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)
    }
    
```

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

[そのほか、最新の実装例・サンプルコード記事はこちら](https://qiita.com/v-cube)

[完全な記事を表示](https://jp.vcube.com/sdk/blog/implementation-ios.html)

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "ブイキューブ"
  },
  "dateModified" : "2022-05-16T04:22:45.808Z",
  "datePublished" : "2022-05-13T04:25:46Z",
  "headline" : "実装例｜ビデオ通話アプリ（iOS版）",
  "image" : {
    "@type" : "ImageObject",
    "height" : 630,
    "url" : "https://1970584.fs1.hubspotusercontent-na1.net/hubfs/1970584/solution/sdk/blog/common/agora_blog_ogp.png",
    "width" : 1200
  },
  "mainEntityOfPage" : "https://jp.vcube.com/sdk/blog/implementation-ios.html",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 60,
      "url" : "/hs/hsstatic/content_shared_assets/static-1.4092/img/default-amp-logo.png",
      "width" : 60
    },
    "name" : "Agora Go Real"
  }
}
```