6

m38uファイルをライブTVチャンネルにストリーミングしています。これらのファイルを開いて(メディアタイプが「MPEG / TS」のファイルのリストにすぎないため)、それらからプレイリストを作成しようとしました。しかし、ビデオ間の遷移は悪く、次のビデオを開始する前に1〜2秒間一時停止します。

これを解決するためにサーバー側のコードを記述してもかまいませんが、ガイダンスが必要です。

4

1 に答える 1

0

プレイリストをどのように設定したかはわかりませんが、次のように設定していると思います。

  1. MediaElementがあります
  2. MediaElement.MediaEndedイベントを購読します
  3. m38uファイルを解析し、リストからの最初のストリームをMediaElement.Sourceに設定します。
  4. MediaElement.MediaEndedを処理し、リストから次のストリームを設定するたびに処理します。

それは本当ですか?はいの場合、問題はステップ4です。新しいソースを設定するたびに-MediaElementはサーバーからのストリームを要求し、ビデオの表示を開始するために少なくとも何かをバッファリングします。これが、3秒の遷移が表示される理由だと思います。これはあなたがこれを解決する必要がある方法です:

  1. 同じMediaElementがあります。
  2. 独自のIRandomAccessStreamインターフェイスに実装する必要があります。これは、ストリームをメモリ(実際には大きくない場合)またはディスクにダウンロードするか、特定のバッファサイズのバッファストリームにダウンロードできます。
  3. m38uファイルを解析し、最初にIRandomAccessStreamを初期化して、ソースとして設定します。
  4. たとえば、最初のビデオが90%の時間である場合、プレイリストから2番目のストリームを初期化する必要がある場合は、IRandomAccessStreamを使用してダウンロードを開始します。
  5. MediaElement.MediaEndedが起動されると、MediaElementの準備ができたバッファリングされたストリームが作成されるため、手順4からストリームを設定する必要があります。
于 2013-04-03T05:40:17.877 に答える