2012-06-29 4 views
6

ライブTVチャンネルにストリーム配信するm38uファイルを取得しています。私はこれらのファイルを開こうとしましたが(メディアタイプ "MPEG/TS"のファイルの一覧にすぎません)、それらから再生リストを作成しようとしました。しかし、ビデオ間のトランジションは悪いです。次のビデオを開始する前に、1〜2秒間停止します。m38uファイルをMetroスタイルアプリ(WinRT)にストリーミングする方法に関するガイダンス

私はこれを解決するためにいくつかのサーバー側のコードを書いても構いませんが、私はいくつかのガイダンスが必要です。

答えて

0

私はあなたのプレイリストを設定する方法がわからないが、私は、これはあなたがこれを行う方法です推測:

  1. あなたはMediaElement.MediaEndedイベント
  2. にあなたをサブスクライブのMediaElement
  3. を持っていますm38uファイルを解析してリストからMediaElement.Sourceにfistストリームを設定します。
  4. MediaElement.MediaEndedを処理し、リストから次のストリームを設定するたびに処理します。

本当ですか?はいの場合、問題は手順4です。新しいソースを設定するたびに、MediaElementがサーバーとバッファからストリームを要求し、少なくとも開始する何かがビデオを表示します。私はこれが3秒のトランジションを見る理由だと思います。これを解決する必要があります:

  1. あなたは同じMediaElementを持っています。
  2. あなた自身のIRandomAccessStreamインターフェイスを実装する必要があります.IntandomAccessStreamインターフェイスは、ストリームをメモリにダウンロードしたり、ディスクにダウンロードしたり、特定のバッファサイズのバッファストリームをダウンロードしたりすることができます。
  3. m38uファイルを解析し、最初にIRandomAccessStreamを初期化し、ソースとして設定します。
  4. たとえば、最初のビデオが90%の時間になると、再生リストから2番目のストリームを初期化し、IRandomAccessStreamでダウンロードを開始する必要があります。
  5. MediaElement.MediaEndedが発射された場合 - あなただけの手順4
+0

からのストリームを設定する必要があるので、私はローカルファイルでそれを実行しようとしました、のMediaElementの準備ができているストリームを、バッファリングされていますが、それは与えました私は同じ遅い移行のパフォーマンス – Ateik

+0

時にはローカルファイルも遅くなることができます。メモリを使用してみてください。これがうまくいかない場合は、ユーザーのためにサーバー上でそれらを組み合わせる必要があります。 – outcoldman