0

DRM ライブ コンテンツの長さは、API 呼び出しからわかります。そしてそれは60分です。この DRM コンテンツの再生には SimpleExoPlayer を使用しています。プレーヤーを準備するためのコード スニペットを以下に示します。

player?.playWhenReady = false
player?.setMediaSource(mediaSource)
player?.prepare()

問題: DRM ライブ コンテンツにシーク オプションを提供したいと考えています。問題は、いつでも私たちのビデオが 5 分間しか利用できないことです。プレーヤー API 呼び出しでビデオの長さを確認しました。player?.getDuration()継続時間は常に 5 分間です。

つまり、ライブ コンテンツの長さは 60 分です。そして現在位置は30分。ここでは、プレーヤーは 25 分から 30 分の間しかシークバックできません。

シーク位置:

player?.seekTo(26*60*1000) (26 Minutes Works)
player?.seekTo(10*60*1000) (10 Minutes NOT Working)
player?.seekTo(45*60*1000) (45 Minutes NOT Working)

しかし、私たちはどこでも 1 分から 30 分の時間でプレイヤーを探したいと思っています。ドキュメントおよび技術的なディスカッション フォーラムから解決策を見つけることができませんでした。

提案や手がかりがあれば助かります。

4

1 に答える 1

0

HLS または DASH ライブ コンテンツがストリーミングされる場合、ストリーミング サーバーは通常、コンテンツを利用できるようにウィンドウを設定します。

キャッチアップまたは「ライブ巻き戻し」サービスが計画されていない場合でも、サーバーはネットワーク遅延などを考慮し、クライアントがセグメントを要求できるように適切なウィンドウを提供する必要があります。

このウィンドウが期限切れになると、サーバーは (通常は...) セグメントを提供しなくなるため、この時間より前にセグメントを要求すると、何らかのエラー応答が返されます。

巻き戻しをサポートする計画の場合は、通常、より大きなウィンドウが使用されます。

マニフェストをチェックして、特定のストリームの設定を確認できます。

  • DASH については、マニフェスト ファイル (.mpd ファイル) の「timeShiftBufferDepth」を参照してください。
  • HLS については、ライブの m3u8 ストリームを見てください。更新されているセグメントと古いセグメントのリストが表示されます。通常、HLS ライブ ストリームは、「EXT-X-ENDLIST」タグがないことで識別できます。これは、これ以上セグメントがないことを示すタグです。

プレーヤーは、巻き戻しを可能にするために再生後にコンテンツをローカルに保存できますが、これがデフォルトの動作になることはめったにありません。プレーヤー側にコンテンツを保存する場合は、再生時にコンテンツの復号化に必要な DRM ライセンスがまだ有効であることも確認する必要があります。また、プレーヤーがコンテンツの保存を開始した時点まで巻き戻すこともできますが、これは多くの場合、必要な機能ではない可能性があります。

于 2021-10-13T14:08:36.303 に答える