新しい SDK バージョンの修正はリリースノートで確認してください。NextGen Live SSAI は Android SDK 10.4.11 以降と iOS SDK 7.2.18 以降でサポートされています(Android 10.4.11 と iOS 7.2.18 のリリースノートを参照)。プラグインはこれらのストリームを ssai.live.brightcove.com の URL で検出するため、再生トークンが JWT という理由でこれらのストリームで SSAI プラグインをバイパスしないでください。それより前の SDK バージョンでは、SSAI プラグインはレガシー Live SSAI ストリーム(ソース URL に _ssaiM または _ssaiV を含むもの)のみをサポートします。NextGen Live ストリームはプラグインを使用せずに再生してください。その場合、広告 UI、ビーコン、クリックスルーは使用できません。
全般
大きなキャプションファイル
ライブイベントの一部として録音されたキャプションは、次のようなキューを持つキャプションファイルを生成することがあります。
00:00:03.760 --> 00:00:03.960
This
00:00:03.960 --> 00:00:04.160
This program
00:00:04.160 --> 00:00:04.400
This program will
00:00:04.400 --> 00:00:04.600
This program will be
00:00:04.600 --> 00:00:04.840
This program will be captioned
このスタイルのキャプションはマーキー効果を生みますが、ファイルのサイズが数メガバイトになることがあります。サイドカー WebVTT ファイルを選択すると、プレーヤーは解析と表示のためにファイルをダウンロードします。大きなサイドカーファイルは OutOfMemory エラーなどのパフォーマンス問題を引き起こす可能性があります。これは HLS ストリームに含まれる分割 WebVTT とは異なります。Android SDK はバージョン 10.1.0 以降で分割 WebVTT をサポートしています。
Brightcoveでは、これらのキャプションを少ない行に再フォーマットすることをお勧めします。
00:00:03.760 --> 00:00:04.840
This program will be captioned
サードパーティ製フレームワーク
Brightcoveは、Brightcoveのネイティブ SDK を Xamarin、React Native、Titanium などのサードパーティの開発フレームワークと統合するためのテストまたはサポートを提供しません。統合サポートについては、フレームワークプロバイダにお問い合わせください。ここでは、発生する可能性のあるいくつかの問題があります。
- Android 用 Brightcove ネイティブ SDK を Titanium フレームワークで使用すると、DRM コンテンツで再生エラーが発生する場合があります。これは、Titanium
Java.net.ResponseCacheフレームワークがデフォルトを独自のフレームワークで上書きするためですTiResponseCache。
エミュレーターを使用する
動画再生のテストでAndroid Studioエミュレーターを使用している場合もXcodeシミュレーターを使用している場合も、実際のデバイスがどう機能するかエミュレーターは正確には示さないことに注意してください。開発の間の初期テストにエミュレーターを使用できますが、正確な結果を求める場合には実際のデバイスを使用するのがベストプラクティスです。
非常に小さな寸法の動画
非常に小さいサイズ(50ピクセル未満)のビデオレンディションは、iOSまたはAndroid(SDKプレーヤーまたはその他)では再生されません
Android 用ネイティブ SDK
360° 動画
- SDK 10.4.27 より前では、BrightcovePlayer クラスを使用しない場合、360° 動画は再生されますが、一時停止および再開時にアプリがクラッシュする可能性があります。バージョン 10.4.27 は、プレーヤーのサーフェス再作成時のクラッシュとレンダースレッドのリークを修正しています。詳細はBrightcovePlayer クラスについてを参照してください。
- デバイスを回転させた後、ビデオドリフトが発生することがあります。この問題は、デバイスのジャイロスコープの較正方法に関連しており、これはパフォーマンスに影響を与える可能性があります。これは、特定のデバイスのメーカーとモデルに関連付けられているのではなく、デバイスに取り付けられたモーションセンサーハードウェアに関連しています。新しいAndroid OSには、問題を解決するためのより洗練されたフィルタアルゴリズムがあります。簡単な修正は、平らで安定した表面に横たわっている間にデバイスの電源を切り、電源を入れることです。
Android タスクリストへの移動
- Android 12 以降の一部のデバイス(Google Pixel など)では、完全にバックグラウンドに移動せずにプレーヤーをタスクリストに移動すると、再生が一時停止せず、
activityPausedイベントも発生しません。タスクリストからフォアグラウンドに戻してもactivityResumedイベントが発生しません。この動作は Google に報告されています。
キャプション
- 608/708 およびマニフェスト内のキャプションには、セグメントデータに含まれる書式が表示されない制限があります。今後の SDK 更新での対応が予定されています。
アクティビティのライフサイクルイベント後に、マニフェスト内および 608/708 キャプションが自動表示されない場合があります。
バックグラウンドからフォアグラウンドに戻った後にこの問題が発生した場合は、キャプションメニューで再度選択してください。
- 一部のライブエンコーダー(Elemental など)の Timecode Burn-in 機能は、現在のストリーム時刻を 608 形式で表示することがあります。その場合、実際のキャプションがなくても CC ボタンが表示されます。現時点で回避策はなく、今後の SDK リリースでの解決を調査しています。
Chromecast
- ネイティブ SDK は Brightcove Cast Receiver アプリでの Chromecast キューイングをサポートしていません。
内容
-
ビデオオブジェクトとプレイリストオブジェクトは完全にパーセル可能ではありません。
Androidバインダーを介して送信するには、オブジェクトが完全にパーセル可能である必要があります。この一般的な例の1つは、オブジェクトをインテントに追加して、別のアクティビティまたはサービスに送信したり、savedInstanceStateバンドルに保存したりすることです。現在、AndroidSDKのビデオオブジェクトとプレイリストオブジェクトは完全にパーセル可能ではありません。
DRM
- プラットフォームによっては、DRM レイヤーでメディアコンテンツを復号化できない場合があります。そのプラットフォームの決定的な問題ではありませんが、テストにより、この問題はNexusクラスのデバイスでより頻繁に発生することが示されています。この問題は、Android SDKとExoPlayerの範囲外であり、そこで修正することはできません。
オフライン再生
- バックグラウンド移行時にダウンロードがエラー 1008 で失敗したり停止したりする問題の修正には、SDK 10.4.26 以降を使用してください。Offline Playback プラグインは実行中のダウンロードを
dataSyncフォアグラウンドサービスで処理し、継続的な通知を表示します。プラグインのマニフェストがサービスとフォアグラウンドサービスの権限を提供します。Google Play で配布するアプリは Play Console でこのサービス種別を申告する必要があります。ACCESS_NETWORK_STATE権限だけではバックグラウンドのダウンロードは維持されません。SDK 10.4.31 では、ダウンロード中に 1 つのファイルが失敗するという、エラー 1008 の別の原因が修正されています。詳細は、Android のリリースノートの 10.4.26 と 10.4.31 の項目を参照してください。 - Android 8.0以降では、アプリをバックグラウンドに移動したときに電源設定を管理することができます。これにより、デバイスが電源から切断されると、ダウンロードプロセスが停止することがあります。ほとんどの場合、アプリがフォアグラウンドに戻されると、ダウンロードは続行されます。電源管理は、OSとベンダー固有のものであることに注意してください。したがって、Android 用 Brightcove ネイティブ SDK は、電源管理に関連する設定を管理または上書きしようとしません。
- Android 8.0.0(および一部のデバイスでは 8.1.0)で Widevine Modular を使用すると、レンタルライセンスは取得時に既に期限切れになっていることがあります。これは Widevine モジュラー CDM に関する既知の問題であり、Brightcove Android SDK または ExoPlayer のいずれでも解決できません。この問題は Android 8.1.0 を使用しているほとんどのデバイスでは再現できませんが、Android 8.0.0 または 8.1.0 を使用しているデバイスでは回避策はありません。
- Android 5.xデバイスでのみ観察されました:
OfflineLicenseManager.releaseLicenseメソッドを呼び出して Widevine ライセンスを解放すると、MediaDrmStateExceptionエラーがスローされます。 -
OfflinePlaybackSampleApp では、Widevine ライセンスの有効期限が 2 つあります。
absoluteExpirationダウンロードしたビデオの再生を開始するライセンスの有効期限ですplayDurationビデオを再生できる時間はどれくらいですか
が 60
playDuration秒未満になると、Widevine CDM はライセンスを期限切れとして処理し、キー要求を取得できませんでした (Failed to get key request ) エラーをスローします。この Widevine ライセンス例外では再生が開始されません。Brightcove Native SDK for Android v6.1.0 +を使用すると、電話をかけることができます
AbstractOfflineCatalog.requestRentalLicense(Video, Date, long, EventListener)またはAbstractOfflineCatalog.requestPurchaseLicense(Video, EventListener)新しいライセンスを取得します。注:新しいライセンスを取得するには、デバイスがオンラインである必要があります。
DRM とクリアコンテンツを含むプレイリスト
SDK 6.17.0 から 6.18.1 では、同じプレイリスト内で暗号化された動画の再生中または再生後にクリアな動画を選択すると、IllegalStateException が返されます。プレーヤーが暗号化用のコーデックをクリアなコンテンツに使用できないためです。この問題は SDK 6.18.2 で修正されています。更新すると解消されます。
更新できない場合は、プレーヤーをプレイリストのビューとは別のアクティビティに配置し、選択のたびにそのアクティビティを破棄して作り直してください。選択ごとに、新しいコーデックリソースを持つ新しい ExoPlayer インスタンスが作成されます。
ローカル動画を再生する
SDK 8.0.1 以降は、Uri.parse("rawresource:///" + R.raw.my_video) のような rawresource URI を使用して、res/raw の MP4 リソースを再生できます。ファイルシステムパスや android.resource:// URI は SDK で解決されないため、使用しないでください。
それより前の SDK バージョンでは、res/raw の MP4 ファイルを再生すると例外が発生します。代わりに、ファイルをアプリケーションの assets フォルダーに移動してください。
ソース選択
- 動画に WebVTT キャプション/字幕の HTTP ソースと HTTPS ソースの両方がある場合、Android 用ネイティブ SDK から HTTPS バージョンが返されないことがあります。Brightcoveはこの状況を認識しており、今後のリリースで修正される予定です。
iOS 用ネイティブ SDK
Chromecast
- ネイティブ SDK は Brightcove Cast Receiver アプリでの Chromecast キューイングをサポートしていません。
オフライン再生
以下の iOS 12 の制限は履歴的なものです。現在の統合 Swift パッケージは iOS 14 以降を必要とします。バックグラウンドからフォアグラウンドへの復帰後にダウンロードの進捗コールバックが停止する問題は SDK 6.7.5 で修正されています。現在の SDK コードにも、影響を受ける古い OS バージョン向けの回避策が含まれています。
- 古い SDK を iOS 12 で使用している場合、
kBCOVOfflineVideoManagerDisplayNameKeyマルチバイト文字を使用してフィールド値を設定すると、ダウンロードエラーが発生することがあります。これは、マルチバイト文字がより長い文字列値としてエンコードされ、iOSは文字列の長さを 255 バイトに制限するためです。この問題は Apple に報告されています。 - 同じオフラインビデオで 2 回連続して再生しようとすると、予期しないネットワークアクティビティが発生する可能性があります。
AVPlayerは、オンライン版のビデオの再生に切り替えることができます。Appleにバグ報告が提出されました。回避手順については、リファレンスドキュメントの「同じオフラインビデオを 2 回再生する」セクションを参照してください。