全般
大きなキャプションファイル
ライブイベントの一部として録音されたキャプションは、次のようなキューを持つキャプションファイルを生成することがあります。
00:00:03.760-> 00:00:03.960この00:00:03.960-> 00:00:04.160このプログラム00:00:04.160-> 00:00:04.400このプログラムは00:00:04.400になります-> 00:00:04.600このプログラムは00:00:04.600になります-> 00:00:04.840このプログラムにはキャプションが付けられます
このスタイルのキャプションを使用すると、マーキー効果が得られますが、最大数メガバイトのキャプションファイルを生成するという意図しない副作用が生じることがあります。プレーヤーでこれらのキャプションが選択されると、プレーヤーは解析および表示のためにファイル全体をダウンロードしようとします(VTT キャプションはストリーミングできません)。これにより、プレーヤーのパフォーマンス上の問題 ( OutOfMemory
エラーを含む) につながる可能性があります。
Brightcoveでは、これらのキャプションを少ない行に再フォーマットすることをお勧めします。
00:00:03.760-> 00:00:04.840このプログラムにはキャプションが付けられます
サードパーティ製フレームワーク
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° 動画
- BrightCovePlayer クラスを使用しない場合、360° 動画は再生されますが、一時停止および再開時にアプリがクラッシュする可能性があります。このクラスの使用方法の詳細については、「 BrightCovePlayer クラスについて」を参照してください。
- デバイスを回転させた後、ビデオドリフトが発生することがあります。この問題は、デバイスのジャイロスコープの較正方法に関連しており、これはパフォーマンスに影響を与える可能性があります。これは、特定のデバイスのメーカーとモデルに関連付けられているのではなく、デバイスに取り付けられたモーションセンサーハードウェアに関連しています。新しいAndroid OSには、問題を解決するためのより洗練されたフィルタアルゴリズムがあります。簡単な修正は、平らで安定した表面に横たわっている間にデバイスの電源を切り、電源を入れることです。
内容
-
ビデオオブジェクトとプレイリストオブジェクトは完全にパーセル可能ではありません。
Androidバインダーを介して送信するには、オブジェクトが完全にパーセル可能である必要があります。この一般的な例の1つは、オブジェクトをインテントに追加して、別のアクティビティまたはサービスに送信したり、savedInstanceStateバンドルに保存したりすることです。現在、AndroidSDKのビデオオブジェクトとプレイリストオブジェクトは完全にパーセル可能ではありません。
DRM
- プラットフォームによっては、DRM レイヤーでメディアコンテンツを復号化できない場合があります。そのプラットフォームの決定的な問題ではありませんが、テストにより、この問題はNexusクラスのデバイスでより頻繁に発生することが示されています。この問題は、Android SDKとExoPlayerの範囲外であり、そこで修正することはできません。
ライブストリーム
- ネイティブプレーヤーSDKは、DASHライブストリームをサポートしていません。また、HLSライブストリームの広告もサポートしていません。
オフライン再生
- スリープ状態または電源ボタンを使用して、デバイスがロックされたときのダウンロードのサポートを追加するには、 AndroidManifest.xml ファイルに次のアクセス許可を追加します。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
- 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)
新しいライセンスを取得します。注:新しいライセンスを取得するには、デバイスがオンラインである必要があります。
ローカル動画を再生する
- アプリケーションリソースフォルダー(/res/raw)に格納されたMP4動画を再生しようとすると、例外エラーが発生します。ローカル動画を再生したい場合の対処策は、アプリケーションアセットフォルダーにMP4動画を移動してください。
ソース選択
- 動画に WebVTT キャプション/字幕の HTTP ソースと HTTPS ソースの両方がある場合、Android 用ネイティブ SDK から HTTPS バージョンが返されないことがあります。Brightcoveはこの状況を認識しており、今後のリリースで修正される予定です。
字幕
-
Video Cloud Studio でビデオにテキストトラックを割り当てて、[ 種類 ] フィールドの値を [ Subtitles ] に設定すると、コントロールバーに CC ボタンが表示されず、プレーヤーはテキストトラックをロードしません。回避策は、Studioでテキストトラックを割り当てるときに、[ Kind ] フィールドの値を [ キャプション] (Close Captions ) に設定することです。
- キャプション/オーディオ設定が、完全なリストを表示するために指定されたスペースを超えると、Android TVではリストをスクロールできません。このリストは、Androidスマートフォンやタブレットでスクロールできます。
iOS 用ネイティブ SDK
ライブストリーム
- ネイティブプレーヤー SDK では、HLS ライブストリームを使用した広告はサポートされていません。
オフライン再生
- iOS 12では、
kBCOVOfflineVideoManagerDisplayNameKey
マルチバイト文字を使用してフィールド値を設定すると、ダウンロードエラーが発生することがあります。これは、マルチバイト文字がより長い文字列値としてエンコードされ、iOSは文字列の長さを 255 バイトに制限するためです。この問題は Apple に報告されています。 - iOS 12では、ダウンロード中にアプリがバックグラウンドからフォアグラウンドに再開されると、
didProgress
イベントが起動しなくなることがあります。ダウンロードステータスが更新されなくなったことがわかります。この問題は Apple に報告されています。 - 同じオフラインビデオで 2 回連続して再生しようとすると、予期しないネットワークアクティビティが発生する可能性があります。
AVPlayer
は、オンライン版のビデオの再生に切り替えることができます。Appleにバグ報告が提出されました。回避手順については、リファレンスドキュメントの「同じオフラインビデオを 2 回再生する」セクションを参照してください。 - アプリが iOS 11.0 ~ 11.2 を対象としている場合は、同時ダウンロードはお勧めしません。一時停止と再開の動作は、複数の同時ダウンロードでは信頼できないためです。この問題は、iOS 11.3で修正されています。