このドキュメントでは、AliPlayerKit を iOS プロジェクトに迅速に統合する方法について説明します。
AI 活用のヒント:このドキュメントは、明確な手順を持つ構造化ドキュメントであり、AI による解析と実行に最適です。開発ワークフローを支援する Skill として利用できます。AI アシスタンスを活用して AliPlayerKit を統合することを推奨します。
統合の概要
AliPlayerKit にアクセスし、プロジェクトがダウンロード済みであることを確認してください。
AliPlayerKit には 2 つの統合オプションがあります。ビジネス要件に応じて選択してください:
統合オプション | 説明 | ユースケース |
コンポーネントレベルの統合 |
| カスタムプレーヤー UI が必要な場合、または再生動作をより柔軟に制御したい場合に使用します。 |
シーンレベルの統合 | コンポーネントレベルに加えて | 標準的な再生シナリオを迅速に実装する場合に使用します。 |
シーンレベルの統合は、コンポーネントレベルの統合を前提としています。そのため、まずコンポーネントレベルの統合を完了する必要があります。
前提条件
開発環境
項目 | 最小要件 | 説明 |
iOS デプロイメントターゲット | 11.0+ | Podspec で宣言されている最小バージョンです。 |
Xcode | 15.0+ | 最新の安定版の使用を推奨します。 |
CocoaPods | 1.13.0+ | 依存関係管理ツールです。 |
開発言語 | Objective-C | Swift プロジェクトでは、ブリッジングヘッダーを介して呼び出せます。 |
アーキテクチャ | arm64 | 物理デバイスでアプリを実行するために必要です。 |
Swift プロジェクトの場合は、Swift-Call-OC-Example ガイドに従って PlayerKit を統合して使用してください。
ライセンス
ApsaraVideo Player SDK のプレーヤー用ライセンス証明書と License Key が必要です。詳細については、「Manage License」をご参照ください。
ライセンスが正しく設定されていない場合、プレーヤーは正常に動作せず、再生中にブラックスクリーンが発生することがあります。
オプション 1:コンポーネントレベルの統合
PlayerKit コアモジュールは、基本的な再生と一般的なインタラクティブ機能をカバーする、すぐに使える設定可能なプレーヤー UI コンポーネントを提供します。
手順 1:モジュールのプロジェクトへのコピー
PlayerKit/ ディレクトリを、プロジェクトのディレクトリ (Podfile と同じ階層、または適切なサブディレクトリ) にコピーします:
YourProject/
├── YourApp/
├── PlayerKit/ # ← このディレクトリをコピー
│ ├── PlayerKit.podspec
│ ├── Source/
│ └── Resources/
└── Podfile手順 2:Podfile の設定
Podfile で、ローカルパスを使用して PlayerKit を参照します:
platform :ios, '11.0'
target 'YourApp' do
use_frameworks!
# コアコンポーネント (必須、ローカルパスで参照)
pod 'PlayerKit', :path => './PlayerKit'
# 基盤となるプレーヤー SDK (必須)
pod 'AliPlayerSDK_iOS', '~> 7.15.0'
# 超低遅延ライブストリーミング向け RTS (オプション、ライブ配信シナリオのみ)
# pod 'AliPlayerSDK_iOS_ARTC', '~> 7.15.0'
# pod 'RtsSDK', '~> 7.12.0'
endPlayerKit.podspec は AliPlayerSDK_iOS と SDWebImage への依存関係を宣言しており、これらは pod install を実行すると自動的にインストールされます。AliPlayerSDK_iOS は、ビデオデコードおよびレンダリング機能を提供します。SDWebImage は、カバー画像の読み込みに使用されます。プロジェクトで既に SDWebImage を使用している場合は、バージョンの互換性を確認してください。
手順 3:依存関係のインストール
pod install
open YourApp.xcworkspaceCocoaPods を使用した後、プロジェクトは .xcodeproj ではなく .xcworkspace で開いてください。
手順 4:ライセンスの設定
プレーヤー SDK が動作するには、有効なライセンスが必要です。ライセンスの取得と設定については、「Manage License」をご参照ください。
[AliPlayerKit setup] を呼び出す前に、ライセンスが登録されていることを確認してください。
手順 5:グローバル初期化
このメソッドは、アプリケーションのライフサイクル中に 1 回だけ呼び出してください:
#import <AliPlayerKit/AliPlayerKit.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// (オプション) setOption などのグローバル SDK 設定
// [AliPlayerKit setOnGlobalInitBlock:^{
// setup 後に一度だけ実行されるグローバル設定
// }];
// AliPlayerKit を初期化
[AliPlayerKit setup];
return YES;
}import AliPlayerKit
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
// (オプション) グローバル SDK 設定
// AliPlayerKit.setOnGlobalInitBlock {
// setup 後に一度だけ実行されるグローバル設定
// }
// AliPlayerKit を初期化
AliPlayerKit.setup()
return true
}[AliPlayerKit setup]は、べき等性を保証するために内部でdispatch_onceを使用します。複数回呼び出しても安全で、後続の呼び出しは無視されます。グローバル SDK 設定を適用するには、
setOnGlobalInitBlock:をsetupの前に設定する必要があります。[AliPlayerKit isInitialized]を呼び出すことで、初期化ステータスを確認できます。
手順 6:統合の検証
次のチェックリストを使用して、統合を検証します:
pod installは依存関係の競合なしで正常に完了します。ライセンスが正しく設定されていること。
[AliPlayerKit setup]は AppDelegate で呼び出されます。プロジェクトがリンカエラーなしで正常にビルドできること (Cmd + B)。
オプション 2:シーンレベルの統合
シーンレベル (PlayerKitScenes) は、コンポーネントレベルをベースに構築され、特定のビジネスシナリオ向けの標準的な再生ソリューションを提供します。各シーンモジュールは独立しており、必要に応じてインポートできます。
シーンレベルを統合する前に、オプション 1:コンポーネントレベルの統合 のすべての手順を完了してください。
手順 1:モジュールのプロジェクトへのコピー
PlayerKitScenes/ ディレクトリを、プロジェクト内の PlayerKit/ と同じ階層にコピーします:
YourProject/
├── YourApp/
├── PlayerKit/ # コンポーネントレベル (コピー済み)
├── PlayerKitScenes/ # ← このディレクトリをコピー
│ ├── PlayerKitScenes.podspec
│ ├── SceneCommon/
│ ├── SceneLongVideo/
│ ├── SceneShortVideo/
│ ├── SceneLive/
│ └── ScenePlaylist/
└── Podfile手順 2:Podfile の設定
Podfile で、ローカルパスを使用して PlayerKitScenes を参照します:
target 'YourApp' do
use_frameworks!
# コアコンポーネント (必須)
pod 'PlayerKit', :path => './PlayerKit'
pod 'AliPlayerSDK_iOS', '~> 7.15.0'
# 再生シーンソリューション (必要に応じてインポート)
pod 'PlayerKitScenes', :path => './PlayerKitScenes'
# または、必要に応じて個別のシーンを選択します:
# pod 'PlayerKitScenes/SceneLongVideo', :path => './PlayerKitScenes'
# pod 'PlayerKitScenes/SceneShortVideo', :path => './PlayerKitScenes'
# pod 'PlayerKitScenes/SceneLive', :path => './PlayerKitScenes'
# pod 'PlayerKitScenes/ScenePlaylist', :path => './PlayerKitScenes'
endシーンモジュールの説明:
シーンモジュール | Pod subspec | 説明 |
SceneCommon | PlayerKitScenes/SceneCommon | シーン向けの共通モジュールです。ベース依存関係として自動的に含まれます。 |
SceneLongVideo | PlayerKitScenes/SceneLongVideo | 中長尺動画のシナリオ向けです。 |
SceneShortVideo | PlayerKitScenes/SceneShortVideo | ショート動画のシナリオ向けです。 |
SceneLive | PlayerKitScenes/SceneLive | ライブ配信のシナリオ向けです。 |
ScenePlaylist | PlayerKitScenes/ScenePlaylist | プレイリスト再生のシナリオ向けです。 |
手順 3:インストールと検証
pod installプロジェクトが正常にビルドできれば、シーンレベルの統合は完了です。
SDK のアップグレード
AliPlayerKit は、以下の SDK に依存します:
SDK | 説明 |
AliPlayerSDK_iOS | Alibaba Cloud Player SDK です。動画のデコード、レンダリング、再生制御などのコア再生機能を提供します。 |
RtsSDK | Alibaba Cloud RTS SDK です。超低遅延ライブストリーミング再生を提供します (オプション)。 |
バージョン情報
実行時に
[AliPlayerKit getSdkVersion]を呼び出して、基盤となる SDK のバージョン番号を取得します。AliPlayerKit コンポーネントのバージョン番号を取得するには、
[AliPlayerKit getPlayerKitVersion]を呼び出します。「Download Player SDK」および「iOS SDK Release History」をご参照ください。
アップグレード手順
バージョン互換性を確認します。
アップグレード前に、SDK のリリース履歴と変更履歴を確認し、対象バージョンに破壊的変更が含まれているかどうかを確認してください。
Podfile のバージョン番号を変更します。
pod 'AliPlayerSDK_iOS', '~> x.x.x' # 対象バージョンに置き換え # RTS (ライブ配信シナリオを使用する場合) # pod 'AliPlayerSDK_iOS_ARTC', '~> x.x.x' # pod 'RtsSDK', '~> x.x.x'更新コマンドを実行します。
pod update AliPlayerSDK_iOSアップグレードを検証します。
プロジェクトがリンカエラーなしで正常にビルドできること。
コア再生機能 (再生、一時停止、シーク、再生速度など) を確認します。
RTS を使用した超低遅延ライブストリーミングなど、特定の再生シナリオを確認します。
アップグレード後は、アップグレード前後のバージョン番号を記録することを推奨します。将来のトラブルシューティングとバージョントラッキングに役立ちます。
よくある質問
ライセンスに関する問題
問題:プレーヤーがライセンスエラーを報告する、またはブラックスクリーンが表示されます。
一般的な原因として、証明書ファイルの追加ミス、License Key の不一致、ライセンスに紐付けられた Bundle ID との不一致、またはライセンスの期限切れが挙げられます。詳細については、「Manage License」をご参照ください。
依存関係の競合
問題: pod installが依存関係の競合で失敗します。
トラブルシューティングの手順: この競合は、お使いのプロジェクトと PlayerKit が、異なるバージョンの SDWebImage に依存している場合に発生する可能性があります。競合を解決するには、pod update を実行してみてください。問題が解決しない場合は、pod repo update を実行してローカルリポジトリのインデックスを更新してから、再度お試しください。
初期化に関する問題
問題:[AliPlayerKit setup] を呼び出した後、再生が正常に動作しません。
トラブルシューティング手順:
AppDelegate内のapplication:didFinishLaunchingWithOptions:で呼び出しが行われるようにしてください。ライセンスが正しく設定されていることを確認してください。詳細については、「Manage License」をご参照ください。
[AliPlayerKit isInitialized]を呼び出して、初期化が成功したか確認します。setupメソッドは (dispatch_onceを使用するため) べき等です。繰り返し呼び出しても安全であり、例外はスローされません。グローバル SDK 設定を注入する必要がある場合は、
setOnGlobalInitBlock:が、setupが呼び出される前に設定されていることを確認してください。
ログによるデバッグ
再生に関する問題が発生した場合は、デバッグログを有効化してトラブルシューティングに役立てることができます:
// デバッグモードを有効化します
[AliPlayerKit setDebugModeEnabled:YES];
// ログ出力を最も詳細にするには、ログレベルをVerbose に設定します
[AliPlayerKit setLogLevel:LogLevelVerbose];ログシステムの使用方法の詳細については、「Logging System」をご参照ください。