Vonage Video API iOS SDK

Vonage Video API iOS SDK を使用すると、iPad、iPhone、iPod touch 向けに開発したアプリで、Vonage Video API を基盤としたビデオセッションを利用できます。

Vonage Video APIを使用するアプリケーションはすべて2つの部分で構成されています:

  • クライアントサイドでは、 OpenTok クライアント SDK そして、ユーザーのブラウザやモバイルアプリ上で動作します
  • サーバーサイドでは、 OpenTok サーバー用 SDK そして、サーバー上で実行され、認証情報をクライアントに渡します。

iOSアプリを構築するためのClient SDKは「OpenTok iOS SDK」であり、このSDKはアプリに必要な中核機能のほとんどを提供しています。その機能には以下が含まれます:

  • OpenTokセッションへの接続
  • セッションへのストリームの公開
  • セッション内でストリームを購読する

また、Web、Android、iOS、Windows、macOS、Linux、React Native向けのクライアントSDKも利用可能です。すべてのOpenTokクライアントSDKは相互に連携可能です。

OpenTokのクライアント、サーバー、セッションなどの基本については、以下の ビデオAPIの基礎 ページを参照されたい。

重要な注意事項

  • SDK バージョン 2.35.1 以降では、iOS 17 以降のみがサポートされています。
  • バージョン 2.35.1 以降では、Swift Package Manager がサポートされています。 CocoaPods の配布は非推奨となっており、今後のリリースで削除される予定です。
  • SDK バージョン 2.33.0 以降では、macOS 14 以降を実行する Apple Silicon 搭載の Mac がサポートされています。 プラットフォームごとの注意事項や制限事項については、以下の「macOS サポート」のセクションをご覧ください。
  • macOSでの画面共有は、アプリ自身のウィンドウに限定される - フルデスクトップキャプチャはサポートされていません。参照 この既知の問題 詳細はこちら。
  • 中継セッションに影響するiOS 14のネットワーク変更 - のリストを見る 既知の問題 リリースノートに。
  • M1チップを搭載したMacでSimulatorを使ってアプリをプレビューする際の問題点 - のリストを見る 既知の問題 リリースノートに。

相互運用性

OpenTok iOS SDK 2.35.1 を使用して作成されたアプリは、OpenTok Client SDK のバージョン 2.33 以降を使用して作成された OpenTok アプリと相互運用可能です:

  • OpenTok.js
  • OpenTok Android SDK
  • OpenTok iOS SDK
  • OpenTok Windows SDK
  • OpenTok macOS SDK
  • OpenTok Linux SDK
  • OpenTok React Native SDK

インストール

Vonage Video iOS SDK は以下をサポートしています Swift パッケージマネージャー (SPM) v2.35.1 以降で利用可能な、推奨される配布方法として。CocoaPods による配布は、 OTXCFramework CocoaPodsのサポートが引き続き利用可能な間、podも下位互換性を確保するために維持されていますが、これは非推奨となっており、最終的には削除される予定です。

推奨事項: 新しいプロジェクトでは、Swift Package Manager を使用してください。現在 CocoaPods を使用している場合は、 CocoaPodsからの移行 セクションを参照されたい。

Swift Package Manager(推奨)

Swift Package Manager は Xcode に直接統合されており、追加のツールは必要ありません。

Xcodeでは:

  1. Xcodeでプロジェクトを開いてください。
  2. こちらへ [ファイル] > [パッケージの依存関係を追加…]
  3. 検索バーに次のリポジトリのURLを入力してください: https://github.com/opentok/opentok-ios-sdk.git
  4. バージョンルールを指定します(例: 次のメジャーまで) をクリックして パッケージを追加.
  5. を選択する。 OpenTokClientSDKVideo ライブラリをクリックして 「ターゲット」に追加.

SPMの依存関係は、Xcodeでプロジェクトをビルドしたり開いたりする際に、自動的に解決・ダウンロードされます。これらは パッケージの依存関係 プロジェクトナビゲーター内のセクション。

CocoaPods(非推奨)

⚠️ 非推奨に関するお知らせ: CocoaPods の配布は非推奨となっています。その OTXCFramework CocoaPodsのサポートが継続している間はpodのメンテナンスも行われますが、Swift Package Managerへの移行を強くお勧めします。

次の内容をあなたの Podfile:

target 'YourApp' do
pod 'OTXCFramework'
end

次に、以下を実行してください:

pod install

生成されたファイルを開いてください .xcworkspace ファイル(ではない .xcodeproj) を使用してプロジェクトをビルドします。

CocoaPodsからの移行

現在、プロジェクトで OTXCFramework CocoaPodsのpodを使用している場合は、Swift Package Managerへ移行するために以下の手順に従ってください:

  1. プロジェクトからCocoaPodsを削除します:
pod deintegrate

これにより、プロジェクトからすべてのCocoaPodsのビルドフェーズと設定が削除されます。 .xcodeproj.

  1. CocoaPods ファイルを削除する: 削除 Podfile, Podfile.lockそして Pods/ プロジェクトフォルダ内のディレクトリを削除してください。また、CocoaPodsによって生成された .xcworkspace もう必要がなくなったら。

  2. SPM を使って SDK を追加します: 以下の手順に従って スイフト・パッケージ・マネージャー 上記の指示に従って追加してください https://github.com/opentok/opentok-ios-sdk.git パッケージの依存関係として。

  3. インポートを更新してください: もしあなたがインポートしていたとしたら OpenTok、モジュール名はそのままなので、インポートの変更は必要ありません。

  4. ビルドとVerify: [開く] .xcodeproj Xcode上で直接(なし .xcworkspace (SPM専用プロジェクトで必要)を行い、ビルドしてすべてが正しく解決されることを確認します。

システム要件

OpenTok iOS SDK の最新バージョン(2.35.1 以降)は、iOS 17 以降でサポートされています。

OpenTokのiOS SDKは、Wi-Fi、4G/LTE、および5G接続に対応しています。

OpenTokのiOS SDKには、Xcode 7以降が必要です。

信頼性の高いビデオストリーミングを行うには、お使いのデバイスが以下の推奨スペックを満たしていることをご確認ください:

  • CPU:Apple A12 Bionicまたはそれ以降。
  • RAM:グループ通話やマルチタスクのために最低4GBのRAM。
  • ディスプレイ:iPhoneは5.4インチ以上、iPadは10.2インチ以上。
  • バッテリー容量:iPhone用3000mAh以上、iPad用7000mAh以上。
  • ネットワーク信頼性の高いインターネット接続。Wi-Fiまたは携帯電話で動作。

これらの推奨事項により、ビデオストリーミング時の安定した再生、CPU使用率の低下、スムーズなパフォーマンスが保証されます。

デバイス例:iPhone XS以降(2018+)、iPad Pro(世代を問わず)、iPad Air 3以降、iPad mini 5以降。

ものづくりの学び

OpenTok iOS SDK の使い方を学ぶには、「OpenTok 基本ビデオチャット」チュートリアルに従うのが最善の方法です:

チュートリアルを開始する

OpenTok iOS SDK を使用した開発の基本を理解したら、さらに詳しい情報を入手し、OpenTok を使って Applications をカスタマイズする方法を学ぶことができます。 開発者向けガイド.特定のAPIクラスやメソッドを調べるには OpenTok iOS SDK API リファレンス.

SDKの使用

OpenTok.framework ディレクトリには、OpenTok iOS SDK が含まれています。

OpenTok iOS SDK には、以下のフレームワークおよびライブラリが必要です:

  • AudioToolbox.フレームワーク
  • AVFoundation.フレームワーク
  • コアグラフィックス・フレームワーク
  • コアメディア・フレームワーク
  • コアテレフォニーフレームワーク
  • コアビデオ・フレームワーク
  • ファンデーション・フレームワーク
  • GLKit.framework
  • libc++.dylib(Xcode 7以降では libc++.tbd)
  • libsqlite3.dylib(Xcode 7以降では libsqlite3++.tbd)
  • メタル・フレームワーク
  • MetalKit.フレームワーク
  • MetalPerformanceShaders.フレームワーク
  • OpenGLES.フレームワーク
  • QuartzCore.フレームワーク
  • システム設定.フレームワーク
  • UIKit.framework
  • ビデオツールボックス・フレームワーク

OpenTok iOS SDK は、libc++ 標準ライブラリにリンクしています。libc++ 標準ライブラリにリンクしている別のライブラリが、Xcode 6.0.0 より前のバージョンでコンパイルされている場合、OpenTok iOS SDK と併用すると、実行時にセグメンテーションフォルトが発生する可能性があります。 互換性がないことが確認されているライブラリには、Firebase(バージョン 2.1.2 以前――詳細は https://code.google.com/p/webrtc/issues/detail?id=3992) および Google マップ(バージョン 1.9.0 以前)。この問題を解決するには、XCode 6.0.0 以降を使用してコンパイルされた、もう一方のライブラリのバージョンをダウンロードしてください。

もし、7.2.0より前のバージョンのXcodeを使用している場合は、7.2.0より前のバージョンのXcodeを使用しないでください。 -all_load リンカーフラグ。その代わりに、 -force_load それを必要とする特定のライブラリを読み込むためのリンカーフラグ。

iOS10では、カメラとマイクにアクセスするために、以下の値を設定する必要があります。 NSCameraUsageDescription そして NSMicrophoneUsageDescription Info.plist ファイル内のキー。これらは、アプリのインストーラに表示される文字列を定義し、アプリがカメラやマイクを使用する理由をユーザーに伝えます。詳細については、以下を参照してください。 Cocoaキーに関するAppleのドキュメント.

参照 このコンテンツ バックグラウンドで動作するアプリでSDKを使用する方法については、こちらをご覧ください。

macOSサポート

OpenTok iOS SDK 2.33.0 以降では、macOS 14 以降を実行する Apple Silicon 搭載 Mac(M1、M2、M3 およびそれ以降)がサポートされています。macOS では、この SDK は iOS デバイスで利用可能な機能のほとんどを提供していますが、プラットフォーム固有の相違点や制限がいくつかあるため、それらに留意する必要があります。

macOSでのカメラの動作

macOSデバイスには通常、1つの内蔵カメラ(FaceTimeカメラ)があり、これは常にフロントカメラとしてマッピングされています (AVCaptureDevicePositionFront).Macに接続された外部カメラもフロントカメラとして扱われます。

重要な考慮事項

  • iOSデバイスとは異なり、Macには "バックカメラ "という概念がない。
  • について cameraPosition プロパティは、macOSでは常にフロントカメラに解決されます。
  • macOS で複数のカメラ(内蔵カメラと外部カメラなど)を切り替えるには、カスタムビデオキャプチャ機能を実装することができます。詳細については、以下を参照してください。 本書.

ローテーション・ハンドリング

警告だ: macOS搭載デバイスは、iOS搭載モバイルデバイスのような自動画面回転機能をサポートしていません。

  • ビデオは常に横向きで公開される
  • macOSでデバイスの回転イベントが発生しない
  • 特定のレイアウト調整が必要な場合、アプリケーションは向きを手動で処理する必要があります。

トーチ(懐中電灯)の制限

警告だ: macOS では、カメラのライト(懐中電灯)機能は利用できません。

  • セッティング cameraTorch プロパティ YES はmacOSには影響しません。
  • Macのカメラ(内蔵または外付け)はトーチ/フラッシュライト機能をサポートしていません。
  • この機能はiOSモバイル・デバイス専用です。

コードサンプル

サンプルコードについては GitHub上の「vonage-video-ios-sdk-samples」リポジトリ.

ドキュメントおよび詳細情報

リファレンスドキュメントは、SDKの「doc」サブディレクトリおよび ローカル SDK リファレンス.

新機能と既知の問題のリストについては リリースノート.