AliPlayerKit は、プレーヤーの動作をコントロールするための豊富な API セットを提供します。このドキュメントでは、iOS 上の AliPlayerKit の主要な API について詳しく説明します。
AliPlayerKit には、クラスやメソッドなどのすべてのコア API に関する詳細なコードコメントが含まれています。Xcode では、クイックヘルプ (Option + クリック) を使用してこれらのコメントを表示し、開発を加速できます。これにより、API は AI プログラミングツールにとってもよりフレンドリになります。
コアクラスの概要
クラス名 | タイプ | 責務 | ライフサイクル |
| グローバルエントリーポイント | SDK の初期化、グローバル構成、ファクトリ/プリローダー管理 | アプリのライフサイクル |
| ビューコンテナ | プレーヤービュー管理、スロットシステムのホスト | UIView と同じ |
| 再生コントローラー | 再生コントロール、状態管理、ストラテジー連携 | `destroy` によって手動で解放 |
| データモデル | ビデオソースと再生パラメーターをカプセル化 | 値オブジェクト、独立したライフサイクルなし |
| 状態ストア | プレーヤーの現在状態への読み取り専用アクセス | コントローラーに従う |
| ビュー状態 | UI レイヤーの状態 (フルスクリーン、コントロールバーの表示/非表示) への読み取り専用アクセス | AliPlayerView に従う |
| スロットマネージャー | スロット登録、表示/非表示コントロール、要素レベルの管理 | AliPlayerView に従う |
| ストラテジーマネージャー | ストラテジーの登録、開始、停止、リセット | コントローラーに従う |
| ストラテジーレジストリ | グローバルデフォルトストラテジーファクトリ管理 (シングルトン) | アプリのライフサイクル |
| ログセンター | ログ出力とオブザーバー管理 (シングルトン) | アプリのライフサイクル |
| ローカライズ管理 | 多言語サポートとプロバイダーインジェクション (シングルトン) | アプリのライフサイクル |
AliPlayerKit (グローバル API)
AliPlayerKit は、SDK の初期化と構成を行うためのグローバル設定クラスです。このクラスはインスタンス化できません。すべてのメソッドはクラスメソッドです。
初期化メソッド
メソッド | パラメーター | 戻り値 | 説明 |
| - | void | SDK を初期化します。`dispatch_once` がべき等性を保証します。アプリの起動時にこのメソッドを呼び出してください。 |
| - | BOOL | SDK が初期化されているかどうかを確認します。 |
| OnGlobalInitBlock block | void | グローバル初期化の完了後にカスタム構成コールバックを設定します。このメソッドは `setup` の前に呼び出してください。 |
ステータス照会とバージョン情報
メソッド | パラメーター | 戻り値 | 説明 |
| - | NSString * | PlayerKit のバージョン番号を取得します。 |
| - | NSString * | 基盤となる AliPlayer SDK のバージョン番号を取得します。 |
デバッグ構成
メソッド | パラメーター | 戻り値 | 説明 |
| BOOL enabled | void | デバッグモードを有効または無効にします。 |
| - | BOOL | デバッグモードが有効かどうかを確認します。 |
| BOOL enabled | void | ログパネルを有効または無効にします。この機能はデバッグ専用です。 |
| - | BOOL | ログパネルが有効かどうかを確認します。 |
ログ構成
メソッド | パラメーター | 戻り値 | 説明 |
| LogLevel level | void | ログレベルを設定します。このレベル未満のログは無視されます。デフォルトのレベルは Info です。 |
| - | LogLevel | 現在のログレベルを取得します。 |
| BOOL enable | void | コンソールログ出力を有効または無効にします。 |
| - | BOOL | コンソールログ出力が有効かどうかを確認します。 |
プレーヤーファクトリ
メソッド | パラメーター | 説明 |
| id<PlayerFactory> factory | カスタムプレーヤーファクトリを設定します。`nil` を渡すと、デフォルトのファクトリに戻ります。 |
| - | 現在のプレーヤーファクトリを取得します。 |
プリロード
メソッド | パラメーター | 説明 |
| id<PlayerPreloader> preloader | カスタムプリローダーを設定します。`nil` を渡すと、デフォルトのプリローダーに戻ります。 |
| - | 現在のプリローダーを取得します。 |
キャッシュ管理
メソッド | 説明 |
| プレーヤーのローカルメディアキャッシュをクリアします。このメソッドは `setup` の後に呼び出してください。 |
国際化
メソッド | パラメーター | 説明 |
| NSString * languageCode | 言語を手動で指定します。サポートされている言語は `zh-Hans` と `en` です。 |
| id<LocaleProvider> provider | カスタムローカライズプロバイダーを注入します。これは最も高い優先度を持ちます。 |
| - | 言語をシステム言語に従うようにリセットします。 |
| - | 現在の言語コードを取得します。 |
AliPlayerView (ビュー API)
AliPlayerView はプレーヤーのビューコンテナです。コントローラーのバインディングとスロットシステムを管理します。レンダリングビューは、内部の PlayerSurfaceSlot によって作成および管理されます。
プロパティ
プロパティ | タイプ | 説明 |
controller | AliPlayerController * | 関連付けられたプレーヤーコントローラー。 |
viewState | PlayerViewState * | フルスクリーンやコントロールバーの表示/非表示など、ビデオ間で保持される UI 状態。 |
slotManager | SlotManager * | スロットマネージャー。アタッチする前に事前構成できます。 |
fullscreenTransition | id<FullscreenTransition> | フルスクリーン遷移アニメーションの実装。デフォルトでは、独立したウィンドウ回転ソリューションが使用されます。 |
onBackPressed | void (^)(void) | 戻るボタンイベントのコールバック。 |
`onBackPressed` コールバックは、非フルスクリーンモードでトリガーされます。フルスクリーンモードでは、プレーヤーはフルスクリーンを終了することで戻る操作を自動的に処理します。このコールバックが設定されていない場合、プレーヤーはレスポンダーチェーンを介して `pop` や `dismiss` などのデフォルトのナビゲーション動作を試みます。
コントローラーバインディング
メソッド | パラメーター | 説明 |
| AliPlayerController * controller | コントローラーをバインドし、スロットシステムをアクティブ化します。 |
| - | コントローラーを破棄せずにデタッチします。 |
呼び出しのタイミング:
attach::コントローラーがconfigure:を呼び出した後にコンポーネントがアタッチされます。その後、slotManager の構成に基づいてスロットシステムが自動的に構築されます。detach:ビューが破棄される直前、または別のコントローラーをバインドする必要がある場合に、このメソッドを呼び出します。
AliPlayerController (コントローラー API)
AliPlayerController は再生コントローラーです。再生操作の統一されたエントリーポイントとして機能し、プレーヤーの作成、構成、およびコントロールのロジックをカプセル化します。
プロパティ
プロパティ | タイプ | 説明 |
playerModel | AliPlayerModel * | 現在の再生構成モデル。 |
playerState | PlayerState | 現在のプレーヤー状態。 |
currentPosition | NSInteger | 現在の再生位置 (ミリ秒)。 |
duration | NSInteger | ビデオの総持続時間 (ミリ秒)。 |
stateStore | PlayerStateStore * | 状態ストア。 |
strategyManager | StrategyManager * | ストラテジーマネージャー。 |
lifecycleStrategy | id<PlayerLifecycleStrategy> | 現在のライフサイクルストラテジー。 |
autoLifecycleManagement | BOOL | フォアグラウンドとバックグラウンドのライフサイクルを自動的に管理するかどうかを指定します。デフォルト:YES。 |
controlsVisibilityLocked | BOOL | コントロールバーの表示/非表示のロックフラグ。 |
controlsVisibilityLocked が YES に設定されている場合、setControlsVisible:NO リクエストは無視され、コントロールバーは表示されたままになります。これは、プログレスバーのドラッグなど、コントロールバーを常に表示する必要があるインタラクティブなシナリオで使用されます。
コンストラクター
メソッド | パラメーター | 説明 |
| - | デフォルトのライフサイクルストラテジーでコントローラーを作成します。 |
|
| カスタムライフサイクルストラテジーでコントローラーを作成します。 |
構成と再生コントロール
メソッド | パラメーター | 説明 |
| AliPlayerModel * model | プレーヤーを構成し、再生を準備します。 |
| - | 再生を開始または再開します。 |
| - | 再生を一時停止します。 |
| - | 再生と一時停止を切り替えます。 |
| - | 最初から再生を再開します。 |
| - | 再生を停止します。 |
| NSInteger position (ミリ秒) | 特定の位置にシークします。 |
| float rate | 再生速度を設定します。1.0 が通常速度です。 |
| BOOL loop | ループ再生を設定します。 |
| BOOL muted | 音声をミュートするかどうかを設定します。 |
| MirrorMode mirrorMode | ミラーモードを設定します。 |
| ScaleMode scaleMode | スケーリングモードを設定します。 |
| RotateMode rotateMode | 回転角度を設定します。 |
| TrackQuality * quality | ビデオ品質を切り替えます。 |
| - | 現在のビデオフレームのスナップショットを撮影します。 |
UI コントロール
メソッド | パラメーター | 戻り値 | 説明 |
|
|
| コントロールバーの表示/非表示を設定します。 |
|
|
| アニメーション付きでフルスクリーンモードを設定します。 |
|
|
| アニメーションの有無を選択してフルスクリーンモードを設定します。 |
ライフサイクルメソッド
メソッド | パラメーター | 戻り値 | 説明 |
| - |
| 再生を再開します。バックグラウンドから復帰する際に呼び出します。 |
| - |
| 再生を一時停止します。バックグラウンドに移行する際に呼び出します。 |
| - |
| プレーヤーを破棄し、すべてのリソースを解放します。 |
通知デリゲート
メソッド | パラメーター | 戻り値 | 説明 |
|
|
| 通知デリゲートを追加します。弱参照によって保持されます。 |
|
|
| 通知デリゲートを削除します。 |
AliPlayerModel (モデル API)
AliPlayerModel はプレーヤーの構成モデルです。再生に必要なすべての構成情報をカプセル化します。
プロパティ
プロパティ | タイプ | デフォルト値 | 説明 |
|
| - | ビデオデータソース。これは必須です。 |
|
|
| 再生シナリオタイプ。 |
|
|
| サムネイル URL。 |
|
|
| ビデオタイトル。 |
|
|
| 自動再生を有効にするかどうかを指定します。 |
|
|
| 再生品質モニタリングのためのトラッキング識別子。 |
|
|
| 開始位置 (ミリ秒)。 |
|
|
| ハードウェアデコードを有効にするかどうかを指定します。 |
|
|
| 画面のスリープを許可するかどうかを指定します。 |
|
|
| スクリーンショットと画面録画を無効にするかどうかを指定します。 |
|
|
| インスタンスレベルのカスタム構成コールバック。 |
作成メソッド
メソッド | パラメーター | 戻り値 | 説明 |
|
|
| ビデオソースからモデルを作成します。これは指定イニシャライザです。 |
通知システム
AliPlayerKit は、コンポーネント間のイベント通信に Dispatcher + Delegate パターンを使用します。各 AliPlayerController は独立した Dispatcher インスタンスを持ち、これにより異なるプレーヤーインスタンスからのイベントが互いに干渉するのを防ぎます。すべてのコールバックはメインスレッドでディスパッチされます。
PlayerNotificationDelegate (プレーヤー通知デリゲート)
プレーヤーの状態変化コールバックのためのプロトコルです。すべてのメソッドは @optional です。
再生状態
メソッド | パラメーター | 説明 |
|
| プレーヤーの状態が変化します。 |
|
| プレーヤーの準備が完了し、再生可能な状態になります。 |
| - | 最初のフレームがレンダリングされます。 |
| - | 再生が完了します。 |
再生進捗
メソッド | パラメーター | 説明 |
| position, duration, bufferedPosition (ミリ秒) | 再生進捗を定期的に報告します。 |
エラーとスナップショット
メソッド | パラメーター | 説明 |
|
| 再生エラーが発生しました。 |
|
| スナップショットが撮影されます。 |
ビデオ情報
メソッド | パラメーター | 説明 |
|
| ビデオのディメンションが変化します。 |
UI 状態
メソッド | パラメーター | 説明 |
|
| フルスクリーン状態が変化します。 |
|
| コントロールバーの表示/非表示が変化します。 |
ロード状態
メソッド | パラメーター | 説明 |
| - | バッファリングが開始します。 |
| - | バッファリングが終了します。 |
|
| バッファリングの進捗が更新されます。 |
表示モード
メソッド | パラメーター | 説明 |
|
| ミラーモードが変化します。 |
|
| スケーリングモードが変化します。 |
|
| 回転モードが変化します。 |
トラック
メソッド | パラメーター | 説明 |
|
| 利用可能なトラックに関する情報が準備完了になります。 |
|
| トラックが切り替わります。 |
GestureNotificationDelegate (ジェスチャー通知デリゲート)
ジェスチャーインタラクションイベントのコールバックのためのプロトコルです。すべてのメソッドは @optional です。イベントは GestureNotificationDispatcher によってマルチキャストされます。
シングルタップ
メソッド | パラメーター | 説明 |
| - | シングルタップジェスチャーがトリガーされます。これは通常、コントロールバーの表示/非表示を切り替えるために使用されます。 |
長押し (再生速度)
メソッド | パラメーター | 説明 |
| - | 長押しが開始されます。これにより、早送り再生がアクティブになります。 |
| - | 長押しが終了します。これにより、通常の再生速度に戻ります。 |
輝度 (左垂直ドラッグ)
メソッド | パラメーター | 説明 |
|
| 輝度が調整中です。 |
| - | 輝度調整が終了します。 |
音量 (右垂直ドラッグ)
メソッド | パラメーター | 説明 |
|
| 音量が調整中です。 |
| - | 音量調整が終了します。 |
SlotActionNotificationDelegate (スロットアクション通知デリゲート)
スロット間のアクションイベントのための通知プロトコルです。スロット間の直接的なメソッド呼び出しを分離するために使用されます。すべてのメソッドは @optional であり、メインスレッドに非同期でディスパッチされます。
メソッド | パラメーター | 説明 |
| - | 設定メニューの表示/非表示の切り替えをリクエストします。これは通常、`TopBarSlot` によってトリガーされます。 |
| - | 再生速度選択パネルの表示をリクエストします。これは通常、`BottomBarSlot` によってトリガーされます。 |
| - | ビデオ品質選択パネルの表示をリクエストします。これは通常、`BottomBarSlot` によってトリガーされます。 |
プレーヤープロトコル
AliPlayerKit は、プロトコルを通じてプレーヤーのコア機能と動作制約を定義します。
MediaPlayer (プレーヤープロトコル)
このプロトコルは、プレーヤーのコア操作インターフェイスを定義します。PlayerFactory を使用してインスタンスを作成できます。
プロパティ
プロパティ | タイプ | 説明 |
| NSString * | プレーヤーの一意の識別子。 |
| PlayerState | 現在の再生状態。 |
| NSInteger | 現在の位置 (ミリ秒)。 |
| NSInteger | 総持続時間 (ミリ秒)。 |
| float | 現在の再生速度。 |
| BOOL | ループ再生を設定します。 |
| BOOL | 音声がミュートされているかどうかを指定します。 |
| MirrorMode | 現在のミラーモード。 |
| ScaleMode | 現在のスケーリングモード。 |
| RotateMode | 現在の回転角度。 |
| PlayerStateStore * | 状態ストア。 |
再生コントロール
メソッド | パラメーター | 説明 |
|
| ビデオデータソースを設定します。 |
| - | プレーヤーリソースを非同期で準備します。 |
| - | 再生を開始します。 |
| - | 再生を一時停止します。 |
| - | 再生と一時停止を切り替えます。 |
| - | 最初から再生を再開します。 |
|
| 特定の位置にシークします。 |
| - | 停止。 |
| - | プレーヤーを破棄し、リソースを解放します。 |
再生設定
メソッド | パラメーター | 説明 |
|
| 再生速度を設定します (0.5 から 2.0)。 |
|
| ループ再生を設定します。 |
|
| 音声をミュートします。 |
|
| ミラーモードを設定します。 |
|
| スケーリングモードを設定します。 |
|
| 回転角度を設定します。 |
|
| ビデオ品質を切り替えます。 |
| - | 現在のフレームのスナップショットを撮影します。 |
PlayerLifecycleStrategy (ライフサイクルストラテジープロトコル)
このプロトコルは、プレーヤーインスタンスの取得とリサイクルの動作を定義します。
メソッド
メソッド | パラメーター | 戻り値 | 説明 |
|
|
| プレーヤーファクトリを注入します。これは最初に呼び出す必要があります。 |
| - |
| プレーヤーインスタンスを取得します。 |
| player, |
| プレーヤーインスタンスをリサイクルします。 |
| - |
| キャッシュされたすべてのインスタンスを解放します。 |
|
|
| 指定された数のインスタンスをプールにプリロードします。 |
|
|
| ID でプレーヤーを取得します。これは IdScoped ストラテジーに固有です。 |
| player, uniqueId, force |
| ID でプレーヤーをリサイクルします。これは IdScoped ストラテジーに固有です。 |
組み込みストラテジー実装
ストラテジークラス | 動作 | シナリオ |
| 毎回新しいインスタンスを作成し、リサイクル時に破棄します。 | 通常のビデオ再生。 |
| グローバルな一意のインスタンス ( | リスト再生、メモリに敏感なシナリオ。 |
| LIFO 再利用プール。 | ショートビデオリスト。 |
| ID バインディング + LRU エビクション。 | ビデオプリロード。 |
FullscreenTransition (フルスクリーン遷移プロトコル)
このプロトコルは、フルスクリーンモードへの移行と終了の遷移動作を定義します。
メソッド / プロパティ | パラメーター | 説明 |
| playerView, animated, completion | フルスクリーンに移行します。 |
| playerView, animated, completion | フルスクリーンを終了します。 |
| - | プレーヤーがフルスクリーンモードであるかどうかを指定します。 |
デフォルト実装の DefaultFullscreenTransition は、独立したウィンドウ回転ソリューションを使用します。playerView.fullscreenTransition を介してカスタム実装を注入できます。
スロットシステム
スロットシステムは、合成可能で交換可能な UI レイヤー管理メカニズムを提供します。
SlotProtocol (スロットプロトコル)
スロットのライフサイクルコールバックを定義できます。
メソッド | パラメーター | 説明 |
|
| スロットがホストにアタッチされます。 |
| - | スロットがホストからデタッチされます。 |
|
| 再生データがバインドされます。 |
| - | 再生データがアンバインドされます。 |
BaseSlot (ベーススロットクラス)
すべての組み込みスロットの抽象基底クラス (UIView のサブクラス) で、SlotProtocol プロトコルを実装し、共通の機能を提供します。
プロパティ
プロパティ | タイプ | 説明 |
| id<SlotHost> | スロットがアタッチされているホスト。 |
| SlotType | スロットタイプ識別子。SlotHostLayout によって注入されます。 |
| SlotSafeAreaEdge | 回避するセーフエリアエッジ。デフォルト:すべて。 |
| BOOL | 遅延コンテンツ作成のスイッチ。 |
| BOOL | コンテンツの準備ができているかどうかを指定します。 |
| BOOL | タッチパススルーのスイッチ。デフォルト:YES。 |
メソッド
メソッド | タイプ | 説明 |
| - | サブクラスはこのメソッドをオーバーライドして、カスタム UI 要素を追加します。 |
| - | スロットを表示または非表示にします。 |
|
| アニメーション付きでスロットを表示または非表示にします。 |
| - | 現在表示されているかどうかを示します。 |
| - | ホストを介してスロットを正しく削除します。 |
| - | サブクラスはこのメソッドをオーバーライドして、デフォルトで表示される要素のビットマスクを宣言します。 |
|
| 特定の要素の最終的な表示状態を照会します。 |
| - | 現在のシーンタイプを安全に読み取ります。 |
| - | 遅延コンテンツの準備ができていることを確認します。 |
SlotManager (スロットマネージャー)
SlotManager は、スロットシステムの統一された管理エントリーポイントです。AliPlayerView.slotManager を使用して取得できます。
登録メソッド
メソッド | パラメーター | 説明 |
| type, | スロットプロバイダーを登録または置き換えます。 |
|
| スロットプロバイダーを登録解除します。 |
|
| 登録されているかどうかを確認します。 |
|
| カスタムスロットを登録します。 |
|
| カスタムスロットを登録解除します。 |
スロットの表示/非表示
メソッド | パラメーター | 説明 |
|
| スロット全体を非表示にします。 |
|
| 非表示のスロットを表示します。 |
|
| スロットが非表示かどうかを確認します。 |
要素レベルの表示/非表示
メソッド | パラメーター | 説明 |
|
| ビットマスクを使用して、スロット内の特定の要素を非表示にします。 |
|
| 以前に非表示にされた要素を表示します。 |
|
| 非表示要素マスクを置き換えます。これにより、既存のマスクが上書きされます。 |
|
| すべての非表示要素を一括で設定します。 |
| - | すべての要素の表示/非表示構成をクリアします。 |
ランタイムアクセス
メソッド | パラメーター | 戻り値 | 説明 |
|
|
| アタッチされたスロットビューを取得します。 |
| - |
| すべてのスロットを再構築します。 |
| - |
| 初期状態にリセットします。 |
SlotType (スロットタイプ定数)
定数 | 値 | 説明 |
| 10 | プレーヤーレンダリングビューレイヤー (最下層)。 |
| 20 | ジェスチャー認識およびコントロールレイヤー。 |
| 30 | 横向きヒントレイヤー。 |
| 40 | ビデオサムネイルレイヤー。 |
| 50 | 中央表示レイヤー (再生速度、輝度、音量)。 |
| 60 | 再生状態インジケーターレイヤー (ロード中、エラー、完了)。 |
| 70 | ログパネルレイヤー。 |
| 80 | 上部ナビゲーションバーレイヤー。 |
| 90 | 下部コントロールバーレイヤー。 |
| 100 | 設定メニューレイヤー。 |
| 110 | オプションパネルレイヤー (再生速度、品質)。 |
CustomSlotType (カスタムスロットタイプ)
これは、組み込みスロット間にカスタムスロットを挿入するために使用されます。組み込みの SlotType 列挙値は 10 の間隔 (10, 20, ..., 110) で配置されており、CustomSlotType は order フィールドを使用して挿入位置を指定します。
プロパティ / メソッド | 説明 |
| 登録、検索、および等価性チェックに使用される一意の識別子。 |
| スロットの Z 軸上の位置を決定するソート値。値が小さいほど下に配置されます。 |
| カスタムスロットタイプインスタンスを作成します。 |
// TopBar (80) と BottomBar (90) の間にカスタムスロットを挿入
CustomSlotType *type = [CustomSlotType typeWithKey:@"myCustomSlot" order:85];
[playerView.slotManager registerCustomSlotType:type provider:^UIView<SlotProtocol> *(UIView *parentView) {
return [[MyCustomSlotView alloc] initWithFrame:parentView.bounds];
}];SlotElements (スロット要素ビットマスク)
SlotManager の hideElements:forSlot: および showElements:forSlot: メソッドを使用して、スロット内の個々の UI 要素に対して詳細な表示/非表示コントロールを実装できます。
トップバー要素 (TopBarElement)
定数 | ビット | 説明 |
| 1 << 0 | 戻るボタン。 |
| 1 << 1 | タイトルテキスト。 |
| 1 << 2 | ダウンロードボタン。 |
| 1 << 3 | スナップショットボタン。 |
| 1 << 4 | 設定ボタン。 |
ボトムバー要素 (BottomBarElement)
定数 | ビット | 説明 |
| 1 << 0 | 再生/一時停止ボタン。 |
| 1 << 1 | プログレスバー。 |
| 1 << 2 | 更新ボタン。 |
| 1 << 3 | 再生速度ボタン。横向きレイアウトでのみ表示されます。 |
設定メニュー要素 (SettingMenuElement)
定数 | ビット | 説明 |
| 1 << 0 | 再生速度オプション。 |
| 1 << 1 | 品質情報。 |
| 1 << 2 | ループ再生。 |
| 1 << 3 | ミュート。 |
| 1 << 4 | ミラーモード。 |
| 1 << 5 | 回転モード。 |
| 1 << 6 | スケーリングモード。 |
| 1 << 7 | 字幕。 |
中央表示レイヤー要素 (CenterDisplayElement)
定数 | ビット | 説明 |
| 1 << 0 | 音量インジケーター。 |
| 1 << 1 | 輝度インジケーター。 |
| 1 << 2 | 再生速度インジケーター。 |
ジェスチャーコントロール要素 (GestureElement)
これらの定数は、UI 要素の表示/非表示ではなく、ジェスチャーインタラクションの有効化と無効化を制御します。ジェスチャービットが非表示に設定されると、対応するジェスチャーは無効になります。
定数 | ビット | 説明 |
| 1 << 0 | シングルタップジェスチャー。 |
| 1 << 1 | ダブルタップジェスチャー。 |
| 1 << 2 | 長押しジェスチャー。 |
| 1 << 3 | 水平ドラッグ (進捗)。 |
| 1 << 4 | 左垂直ドラッグ (輝度)。 |
| 1 << 5 | 右垂直ドラッグ (音量)。 |
再生状態レイヤー要素 (PlayStateElement)
定数 | ビット | 説明 |
| 1 << 0 | エラーメッセージ。 |
| 1 << 1 | ロード中メッセージ。 |
状態ストア
PlayerStateStore
PlayerStateStore は、現在の再生状態の読み取り専用スナップショットを保持します。AliPlayerController.stateStore を通じて取得できます。
プロパティ | タイプ | デフォルト値 | 説明 |
|
|
| 現在の再生状態。 |
|
| 0 | 総持続時間 (ミリ秒)。 |
|
| 0 | 現在の位置 (ミリ秒)。 |
|
| 0 | バッファリングされた位置 (ミリ秒)。 |
|
| 1.0 | 現在の再生速度。 |
|
| NO | ループ再生を設定します。 |
|
| NO | 音声がミュートされているかどうかを指定します。 |
|
|
| ミラーモード。 |
|
|
| スケーリングモード。 |
|
|
| 回転角度。 |
|
| 0 | ビデオの元の幅。 |
|
| 0 | ビデオの元の高さ。 |
|
| nil | 利用可能なビデオ品質のリスト。 |
|
| nil | 現在選択されているビデオ品質。 |
PlayerViewState
PlayerViewState は、UI レイヤーに関連する永続的な状態を保持します。AliPlayerView.viewState を通じて取得できます。この状態はビデオ切り替え間で保持され、状態更新には自動的な重複排除が含まれます。
プロパティ / メソッド | タイプ | デフォルト値 | 説明 |
|
|
| プレーヤーがフルスクリーンモードであるかどうかを指定します。 |
|
|
| コントロールバーが表示されているかどうかを指定します。 |
| - | - | すべての状態をデフォルト値にリセットします。 |
|
| - | フルスクリーン状態を更新します。 |
|
| - | コントロールバーの表示/非表示を更新します。 |
ビデオソース
VideoSource (ビデオソースモデル)
プロパティ | タイプ | 説明 |
|
| ビデオソースタイプ。 |
|
| 一意の識別子。VidAuth/VidSts の場合は `vid`、URL の場合は `url` を返します。 |
|
| ビデオ URL。URL タイプの場合に有効です。 |
|
| ビデオ ID。VidAuth/VidSts の場合に有効です。 |
|
| 再生認証情報。VidAuth の場合に有効です。 |
|
| STS AccessKeyId。 |
|
| STS AccessKeySecret。 |
|
| STS SecurityToken。 |
|
| リージョン ID。 |
ファクトリメソッド
メソッド | パラメーター | 戻り値 | 説明 |
| vid, playAuth |
| VidAuth ビデオソースを作成します。推奨されます。 |
| vid, keyId, secret, token, region |
| VidSts ビデオソースを作成します。 |
| url |
| URL ビデオソースを作成します。 |
| - |
| 構成を検証します。 |
VideoSourceType (ビデオソースタイプ)
定数 | 値 | 説明 |
| 0 | VID + PlayAuth 再生認証情報。推奨されます。 |
| 1 | VID + STS 一時認証情報。 |
| 2 | 直接 URL 再生。 |
ストラテジーシステム
ストラテジーシステムは、再生動作を拡張するためのプラグ可能なメカニズムを提供します。ストラテジー名はグローバルに一意である必要があります。
StrategyProtocol (ストラテジープロトコル)
このプロトコルは、ストラテジーのライフサイクル契約を定義します。ストラテジー名はグローバルに一意である必要があります。
メソッド | パラメーター | 説明 |
| - | ストラテジーの一意の識別子名。 |
|
| ストラテジーが開始され、プレーヤーコンテキストにバインドされます。 |
| - | ストラテジーが停止し、コンテキストからアンバインドされます。 |
|
| ストラテジーがリセットされます。これはビデオソースが切り替えられたときに呼び出されます。 |
StrategyContext (ストラテジー コンテキスト)
読み取り専用のプレーヤー環境コンテキストで、ストラテジーに提供され、ストラテジーの開始時に StrategyManager によって作成および渡されます。
プロパティ | タイプ | 説明 |
|
| 関連付けられたプレーヤーコントローラー。 |
|
| 現在の再生構成モデル。 |
|
| プレーヤー状態ストア。 |
このオブジェクトは strategyDidStop の後に無効になり、引き続き使用してはいけません。
BaseStrategy (ベースストラテジークラス)
ストラテジーの抽象基底クラスで、StrategyProtocol と PlayerNotificationDelegate を実装し、プレーヤーイベントのサブスクリプションとアンサブスクリプションを自動的に処理します。
プロパティ / メソッド | 説明 |
| 現在のストラテジー コンテキスト。start と stop の間でのみ有効です。 |
| サブクラスが内部状態(カウンターやタイマーなど)をリセットするためのフックメソッド。 |
ライフサイクルフロー: strategyDidStart: → コンテキストを保存 → 通知エージェントを登録 → strategyDidReset: → コンテキストを更新 → resetInternalState を呼び出し → strategyDidStop → 通知エージェントを登録解除 → コンテキストをクリア。
子クラスは strategyName メソッドをオーバーライドする必要があります。strategyDidStart:、strategyDidStop、または strategyDidReset: をオーバーライドする場合は、super を呼び出す必要があります。
StrategyManager (ストラテジーマネージャー)
各 AliPlayerController には StrategyManager インスタンスがあります。ストラテジーは登録順に実行され、各ストラテジーのライフサイクル呼び出しは @try/@catch を使用して分離されます。
メソッド
メソッド | パラメーター | 説明 |
|
| ストラテジーを登録します。同じ名前のストラテジーが存在する場合、停止して置き換えられます。 |
|
| 名前でストラテジーを登録解除します。 |
|
| 名前でストラテジーを検索します。 |
| controller, playerModel | 登録されたすべてのストラテジーを開始します。 |
|
| すべてのストラテジーをリセットします。これはビデオソースが切り替えられたときに使用されます。 |
| - | すべてのストラテジーを停止します。 |
| - | すべてのストラテジーを停止して削除します。 |
プロパティ
プロパティ | タイプ | 説明 |
|
| 現在登録されているストラテジーの数。 |
|
| マネージャーが実行中かどうかを示します。 |
StrategyRegistry (グローバルストラテジーレジストリ)
グローバルストラテジーレジストリはシングルトンで、ストラテジーファクトリブロックのグループを管理します。新しい AliPlayerController が作成されるたびに、登録されたすべてのファクトリがインスタンス化され、StrategyManager に applyToManager: を使用して注入されます。
メソッド | パラメーター | 説明 |
| - | グローバルレジストリシングルトンを取得します。 |
|
| グローバルストラテジーファクトリを追加します。 |
| - | 組み込みのものを含むすべてのグローバルストラテジーファクトリを削除します。 |
|
| すべてのグローバルストラテジーをインスタンス化し、指定されたマネージャーに登録します。 |
| - | デフォルトの組み込みストラテジー構成を復元します。 |
組み込みストラテジー (FirstFrameStrategy、StutterDetectStrategy、および TrafficProtectionStrategy) は、初回アクセス時に自動的に登録されます。
組み込みストラテジー
FirstFrameStrategy (初回フレームまでの時間モニタリング)
プレーヤーの準備開始から最初のフレームがレンダリングされるまでの時間を測定します。準備フェーズ (Preparing から Prepared) とレンダリングフェーズ (Prepared から FirstFrameRendered) に分けられます。
プロパティ | タイプ | 説明 |
|
| コールバックデリゲート |
FirstFrameStrategyDelegate コールバック:
メソッド | パラメーター | 説明 |
| strategy, prepareTimeMs, renderTimeMs, totalTimeMs | 最初のフレームがレンダリングされました。 |
StutterDetectStrategy (スタッタリング検出)
Loading イベントをリッスンすることでコマ落ちを検出します。最初のフレームがレンダリングされる前の Loading はカウントされません。
プロパティ | タイプ | 説明 |
|
| 現在のセッションにおけるスタッター回数。 |
|
| 現在のセッションにおけるコマ落ちの総持続時間 (ミリ秒)。 |
|
| コマ落ちのしきい値 (ミリ秒)。デフォルト:0。 |
|
| コールバックデリゲート。 |
|
| 指定されたしきい値でコマ落ち検出ストラテジーを作成します。 |
StutterDetectStrategyDelegate コールバック:
メソッド | パラメーター | 説明 |
| strategy, durationMs | スタッターが検出されます。 |
| strategy, stayDurationMs, validPlayDurationMs, totalStutterDurationMs, stutterCount | 再生セッション分析が完了しました。 |
TrafficProtectionStrategy (トラフィック保護)
ネットワークステータスの変化を監視し、セルラーネットワークでの再生を検出します。検出とログ記録のみを行い、再生を自動的に一時停止することはありません。
プロパティ | タイプ | 説明 |
|
| デバイスが現在セルラーネットワーク上にあるかどうかを指定します。 |
|
| コールバックデリゲート。 |
TrafficProtectionStrategyDelegate コールバック:
メソッド | パラメーター | 説明 |
| strategy | セルラーネットワークでの再生が検出されました。 |
| strategy | ネットワークが Wi-Fi に戻りました。 |
ログシステム
ログシステムは、ログ出力とオブザーバー登録のための統一メカニズムを提供します。
LogHub (ログセンター)
ログ出力とオブザーバー登録を統合するログ管理センター (シングルトン) です。ハイブリッドスレッドモデルを使用します。コンソール出力は呼び出しスレッド上で同期的に実行され、オブザーバー通知はバックグラウンドシリアルキューに非同期でディスパッチされます。
プロパティ
プロパティ | タイプ | デフォルト値 | 説明 |
| BOOL | YES | ログ出力を有効にするかどうかを指定します。 |
| LogLevel | LogLevelInfo | 最小ログ出力レベル。 |
| BOOL | YES | コンソール (NSLog) 出力を有効にするかどうかを指定します。 |
オブザーバー管理
メソッド | パラメーター | 説明 |
| - | 共有 LogHub シングルトンを取得します。 |
|
| ログオブザーバーを追加します。強参照によって保持されます。 |
|
| ログオブザーバーを削除します。 |
ログ出力
メソッド | パラメーター | 説明 |
| tag, message | Verbose レベルのログを出力します。 |
| tag, message | Debug レベルのログを出力します。 |
| tag, message | Info レベルのログを出力します。 |
| tag, message | Warn レベルのログを出力します。 |
| tag, message | Error レベルのログを出力します。 |
| tag, message, error (nullable) | 関連するエラーオブジェクト付きで Error レベルのログを出力します。 |
| level, tag, message | 指定されたレベルでログを出力します。 |
ユーティリティメソッド
メソッド | パラメーター | 戻り値 | 説明 |
|
|
| ログレベルを省略文字列 (V/D/I/W/E/N) に変換します。 |
|
|
| レベル名文字列を列挙値に戻します。 |
LogObserver (ログオブザーバープロトコル)
このプロトコルを実装して、カスタムログ処理 (ファイルへの書き込みやサーバーへの報告など) のためにすべてのログ出力コールバックを受信します。
メソッド | パラメーター | 説明 |
|
| ログ出力コールバック。サブスレッドで実行されます。 |
LogInfo (ログ情報モデル)
単一のログエントリのデータモデルです。
プロパティ | タイプ | 説明 |
|
| ログレベル。 |
|
| ログタグ。 |
|
| ログメッセージ。 |
|
| タイムスタンプ。 |
|
| スレッド名。 |
|
| ソースファイル名。 |
|
| ソースコード行番号。 |
|
| 関連するエラーオブジェクト。 |
| - | フォーマット済みログ文字列を取得します。 |
プリロードシステム
プリロードシステムは、プレーヤー SDK のグローバルプリロード機能をカプセル化します。[AliPlayerKit preloader] から取得できます。
PlayerPreloader (プリロードプロトコル)
このプロトコルは、プレーヤー SDK のグローバルプリロード機能をカプセル化します。[AliPlayerKit preloader] から取得できます。
メソッド | パラメーター | 戻り値 | 説明 |
| task, delegate |
| プリロードタスクを追加します。 |
|
|
| 特定のタスクをキャンセルします。 |
|
|
| 特定のタスクを一時停止します。 |
|
|
| 特定のタスクを再開します。 |
| - |
| すべてのプリロードタスクをキャンセルします。 |
PlayerPreloadTask (プリロードタスク)
プロパティ | タイプ | 説明 |
|
| ビデオデータソース。 |
|
| プリロード構成。 |
| videoSource, preloadConfig | プリロードタスクを作成します。 |
PlayerPreloadConfig (プリロード構成)
プロパティ | タイプ | デフォルト値 | 説明 |
|
| 3000 | プリロード持続時間 (ミリ秒)。 |
|
| 0 | プリロード開始位置 (ミリ秒)。 |
|
|
| デフォルト品質識別子。 |
|
| 0 | デフォルト解像度。0 は制限なしを意味します。 |
|
| 0 | デフォルトビットレート。0 は制限なしを意味します。 |
|
| 0 | ネットワークタイムアウト (ミリ秒)。0 は SDK デフォルトを使用します。 |
|
| 0 | ネットワークリトライ回数。0 は SDK デフォルトを使用します。 |
|
| nil | リファラー情報。 |
|
| nil | カスタムリクエストヘッダー。 |
作成メソッド
メソッド | パラメーター | 説明 |
| - | デフォルト設定で構成を作成します。 |
| preloadDuration, defaultQuality | 指定されたプリロード持続時間とデフォルト品質で構成を作成します。 |
PreloadDelegate (プリロードデリゲート)
このプロトコルは、プリロードタスクのステータスイベントを受信します。すべてのメソッドは @required です。
コールバックはバックグラウンドスレッドでトリガーされる可能性があります。メインスレッドにディスパッチして処理する必要があります。
メソッド | パラメーター | 説明 |
| taskId, source | プリロードタスクが完了しました。 |
| taskId, source, error | プリロードタスクが失敗しました。 |
| taskId, source | プリロードタスクがキャンセルされました。 |
ローカライズシステム
ローカライズシステムは、PlayerKit の多言語サポートを管理します。3 つのモードをサポートしています。システム言語に自動的に従うモード、手動で言語を指定するモード、カスタムプロバイダーを使用するモードです。
LocaleManager (ローカライズマネージャー)
PlayerKit の多言語サポートを管理するローカライズマネージャー (シングルトン) です。
解決チェーン: カスタムプロバイダー (注入されている場合) → 手動で指定された言語のバンドル (手動モード) → システム言語に従う SDK バンドル → フォールバックとしてキー自体を返します。
プロパティ
プロパティ | タイプ | 説明 |
|
| 現在の言語コード。 |
|
| 現在の言語モード。 |
|
| 現在注入されているカスタムプロバイダー。 |
メソッド
メソッド | パラメーター | 説明 |
| - | シングルトンインスタンスを取得します。 |
|
| 言語を手動で設定します。これにより、手動モードに切り替わります。 |
|
| カスタムプロバイダーを注入します。弱参照によって保持されます。`nil` を渡すと削除されます。 |
| - | 言語をシステム言語に従うようにリセットします。 |
|
| ローカライズされた文字列を照会します。 |
LocaleMode (言語モード)
定数 | 値 | 説明 |
| 0 | システム言語に従います。これがデフォルトです。 |
| 1 | 言語コードを手動で指定します。 |
LocaleProvider (ローカライズプロバイダープロトコル)
ホストアプリはこのプロトコルを実装して、PlayerKit のカスタム翻訳を提供できます。
メソッド | パラメーター | 戻り値 | 説明 |
|
|
| 指定されたキーに対応するローカライズされた文字列を返します。nil が返された場合、SDK がフォールバックとして処理します。 |
LocaleDidChangeNotification (言語変更通知)
言語モードまたは言語コードが変更されると、LocaleDidChangeNotification 通知がメインスレッド上で送信されます。userInfo 辞書には、LocaleLanguageCodeKey キーの下に新しい言語コードが含まれます。
主要な列挙型と定数
AliPlayerKit で使用されるコア列挙型。
PlayerState (プレーヤー状態)
定数 | 値 | 説明 |
| 0 | アイドル。初期化済みですが、リソースはロードされていません。 |
| 1 | 準備中。リソースを非同期でロード中です。 |
| 2 | 準備完了。再生を開始する準備ができています。 |
| 3 | 再生中。 |
| 4 | 一時停止中。 |
| 5 | 完了。 |
| 6 | 停止。 |
| 7 | エラー状態。 |
SceneType (シナリオタイプ)
定数 | 値 | 説明 |
| 0 | ビデオオンデマンドシナリオ |
| 1 | ライブストリーミングシナリオ。 |
| 2 | ビデオリストまたはショートビデオストリームシナリオ。 |
| 3 | 制限付き再生シナリオ。 |
| 4 | ミニマリスト再生ページシナリオ。 |
ScaleMode (スケーリングモード)
定数 | 値 | 説明 |
| 0 | ビューを埋めるように伸縮します。 |
| 1 | ビューに合うように比例的にスケーリングします。黒枠が残る場合があります。 |
| 2 | 比例的にスケーリングし、埋まるようにクロップします。 |
MirrorMode (ミラーモード)
定数 | 値 | 説明 |
| 0 | ミラーリングなし。 |
| 1 | 水平ミラーリング。 |
| 2 | 垂直ミラーリング。 |
RotateMode (回転モード)
定数 | 値 | 説明 |
| 0 | 0 度。 |
| 90 | 90 度。 |
| 180 | 180 度。 |
| 270 | 270 度。 |
LogLevel (ログレベル)
定数 | 値 | 説明 |
| 0 | 最も詳細なデバッグ情報。 |
| 1 | デバッグレベル。 |
| 2 | Info レベル。これがデフォルトです。 |
| 3 | 警告レベル。 |
| 4 | エラーレベル。 |
| 100 | すべてのログを無効にします。 |
TrackType (トラックタイプ)
定数 | 値 | 説明 |
| 0 | 不明。 |
| 1 | ビデオトラック。 |
| 2 | オーディオトラック。 |
| 3 | 字幕トラック。 |
| 4 | VOD トラック。 |