本トピックでは、iOS 向け ApsaraVideo Player SDK を迅速にインテグレーションする方法について説明します。
環境要件
システム:iOS 8.0 以降。
開発ツール:Xcode の使用を推奨します。本トピックの手順は Xcode に基づいています。ダウンロード URL:Xcode。
制限事項:iOS 向け ApsaraVideo Player SDK はエミュレーターをサポートしていません。インテグレーション後、アプリケーションは物理デバイスで実行する必要があります。
前提条件
注意事項
アプリケーションをパッケージ化する際、dSYM ファイルはクラッシュシンボル解析に使用されます。
iOS 向け ApsaraVideo Player SDK を使用する場合、AlivcFFmpeg と AliyunPlayer が必要です。プレーヤーのヘッダーファイルは AliyunPlayer にあります。
ApsaraVideo Player SDK とショートビデオ SDK の両方をインテグレーションする場合は、ショートビデオ SDK、ApsaraVideo Player SDK、および AlivcFFmpeg 間のバージョン依存関係にご注意ください。そうしない場合、ショートビデオ SDK または ApsaraVideo Player SDK の機能が失敗する可能性があります。詳細については、「AlivcFFmpeg の依存関係」をご参照ください。
iOS 向け ApsaraVideo Player SDK のインストールパッケージには、シミュレーターアーキテクチャが含まれています。アプリケーションを公開する前に、シミュレーターアーキテクチャを削除する必要があります。そうしない場合、アプリケーションの App Store への提出に失敗します。
ステップ 1:SDK のインテグレーション
CocoaPods によるインテグレーション
CocoaPods をインストールします。CocoaPods は Ruby 環境に依存します。
// ターミナルでこのコマンドを実行します sudo gem install cocoapodsCocoaPods を確認します。
インストールが完了したら、ターミナルで
pod --versionを実行して CocoaPods がインストールされていることを確認します。xxx@ ~ % pod --version 1.16.2Podfile を作成します。
ターミナルで、ご利用のプロジェクトディレクトリに移動します。
pod initコマンドを実行して Podfile を作成します。// ご利用のプロジェクトディレクトリに移動します。 xxx@ ~ % cd /path/yourProject // ファイルを生成します。 xxx@ yourProject % pod initPodfile を編集して、ApsaraVideo Player SDK の依存関係を追加します。
説明ApsaraVideo Player SDK とショートビデオ SDK の両方をインテグレーションする場合は、次のコードの
AliPlayerSDK_iOSをAliPlayerPartSDK_iOSに置き換えてください。AliPlayerPartSDK_iOSには FFmpeg フレームワークが含まれていません。これにより、ショートビデオ SDK の FFmpeg フレームワークとの競合を防ぐことができます。ApsaraVideo Player SDK のバージョン番号が正しいことを確認してください。そうしない場合、エラーが報告され、SDK のインポートに失敗します。SDK のバージョンに関する詳細については、「iOS 向け ApsaraVideo Player SDK のリリースノート」をご参照ください。
source 'https://github.com/CocoaPods/Specs.git' platform:ios, '8.0' target 'yourProject' do # ApsaraVideo Player SDK の最新バージョンを使用することを推奨します。 pod 'AliPlayerSDK_iOS' endオプションで、特定のバージョンの ApsaraVideo Player SDK への依存関係を追加します。
source 'https://github.com/CocoaPods/Specs.git' platform:ios, '8.0' player_sdk_version = '7.12.0' target 'yourProject' do # ApsaraVideo Player SDK の最新バージョンを使用することを推奨します。 pod 'AliPlayerSDK_iOS' , player_sdk_version end依存関係をインストールします。
インストールコマンドを実行して、ApsaraVideo Player SDK の依存関係をローカルリポジトリに追加します。
pod install次のサンプル結果は、インストールが成功したことを示しています。
xxx@ yourProject % pod install Analyzing dependencies Downloading dependencies Installing AliPlayerSDK_iOS (7.11.0) Generating Pods project Integrating client project Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.次のコマンドを実行して、ApsaraVideo Player SDK を更新します。
pod update AliPlayerSDK_iOS
ローカルでのインテグレーション
ApsaraVideo Player SDK とショートビデオ SDK の両方をインテグレーションする場合、インポートする AlivcFFmpeg は 1 つだけです。正しいバージョンの AlivcFFmpeg をインポートしていることを確認してください。
iOS プレーヤー SDK をダウンロードします。
プレーヤーフレームワークを [Frameworks, Libraries, and Embedded Content] セクションに追加し、[Embed] を [Embed & Sign] に設定します。
alivcffmpeg.framework:プレーヤーの基盤となるフレームワーク。
AliyunMediaDownloader.framework:オフラインダウンロード用のフレームワーク。
AliyunPlayer.framework:プレーヤーフレームワーク。

[Build Settings] タブをクリックします。
[Search Paths] セクションで、[Framework Search Paths] をフレームワークファイルが保存されているディレクトリに設定します。
(オプション) リアルタイムストリーミング (RTS) のインテグレーション (CocoaPods)
リアルタイムストリーミング (RTS) コンポーネントをインテグレーションするには、「iOS での RTS ストリームフェッチングの実装」をご参照ください。
ステップ 2:ライセンスの設定
グローバル環境 (中国本土、香港、マカオ、台湾以外のリージョン) を使用する場合、プレーヤー API を呼び出す前に、必ず次の API を呼び出してデフォルト設定を国際環境に更新してください。
方法 1:次の API を呼び出して、デフォルト設定を国際環境に更新します。
// グローバル環境 (中国本土、香港、マカオ、台湾以外のリージョン) を使用する場合、プレーヤー API を呼び出す前に、必ず次の API を呼び出してデフォルト設定を国際環境に更新してください。これにより、後続のすべてのサービスが国際環境で実行されるようになります。 // 統一された AlivcBase インターフェイスを使用して国際環境を設定します。環境はランタイム中に変更できません。 AlivcBase.EnvironmentManager.globalEnvironment = ENV_SEA;方法 2 (推奨):ApsaraVideo Player SDK V7.6.0 以降では、
Info.plistファイルで国際環境を設定できます。Info.plistファイルを開き、AlivcEnvの値をSEAに変更します。// 現在の環境を国際環境として設定します。 <key>AlivcEnv</key> <string>SEA</string>次の図は設定例です。

iOS クライアントでライセンスをインテグレーションする方法の詳細については、「iOS クライアントでのライセンスのインテグレーション」をご参照ください。
ステップ 3:ログの有効化 (オプション)
ログを有効にすると、問題を迅速に特定し、トラブルシューティングするのに役立ちます。また、パフォーマンスの最適化やユーザーエクスペリエンスの向上のためのデータも提供されます。ビジネスシナリオに基づいてログを有効にするかどうかを決定できます。ログの取得方法の詳細については、「SDK ログの取得」をご参照ください。
// ログを有効にします。
[AliPlayer setEnableLog:YES];
// ログレベルを設定します。デフォルトのレベルは LOG_LEVEL_INFO です。問題をトラブルシューティングするには、レベルを LOG_LEVEL_TRACE に設定します。
[AliPlayer setLogCallbackInfo:LOG_LEVEL_INFO callbackBlock:nil];プロジェクト構造
フレームワーク | 説明 |
alivcffmpeg.framework | プレーヤーの基盤となるフレームワーク。このフレームワークは必須です。 |
AliyunMediaDownloader.framework | オフラインダウンロード用。必須ではありません。 |
AliyunPlayer.framework | プレーヤーは必須です。 |
artcSource.framework | Alibaba Real-Time Communication (ARTC) プロトコルをサポートするフレームワーク。このフレームワークはオプションです。 説明 ARTC プロトコルをサポートするには、RtsSDK.framework も追加する必要があります。詳細については、「iOS での RTS ストリームフェッチングの実装」をご参照ください。 |
aemFilter.framework | オーディオエンハンスメントはオプションです。 |
libPluginSR.framework | ビデオ超解像用のフレームワーク。このフレームワークはオプションです。 |
normalsrFilter.framework | ビデオ超解像用のフレームワーク。このフレームワークはオプションです。 |
srFilter.framework | ビデオ超解像用のフレームワーク。このフレームワークはオプションです。 |
vfiFilter.framework | ビデオフレーム補間はオプションです。 |
vvcCodecPlugin.framwork | H.266 デコーディング用のプラグイン。このフレームワークはオプションです。 |
よくあるインテグレーションの問題
CocoaPods の使用方法
インテグレーション中に、ご自身のコードまたは参照するサードパーティコードが AlivcFFmpeg のシンボルと競合する場合
解決策:
AlivcFFmpeg のシンボルとの競合:AlivcFFmpeg を 1 つだけ保持し、余分な AlivcFFmpeg の依存関係を削除します。AlivcFFmpeg は、Alibaba Cloud が FFmpeg をベースに開発したカスタム依存関係であり、ApsaraVideo Player SDK の重要な部分です。サードパーティ SDK の AlivcFFmpeg 依存関係を削除し、ApsaraVideo Player SDK の AlivcFFmpeg 依存関係を保持することを推奨します。ただし、これによりサードパーティのプレーヤーでエラーが発生する可能性があります。
サンドボックスエラー
問題は次のとおりです:

解決策:
UserSettings の User Script SandBoxing を NO に設定します。

ショートビデオのインテグレーション
iOS プレーヤー SDK とショートビデオ SDK の両方をプロジェクトにインテグレーションするには、iOS オールインワン SDK を使用してインテグレーションすることを推奨します。これにより、クラスの重複エラーやコンパイルの失敗を防ぐことができます。
ApsaraVideo Player SDK の使用時に発生する可能性のあるその他の問題と対応する解決策については、「ApsaraVideo Player に関するよくある質問」をご参照ください。