0

VMR9 を使用して、ネットワーク経由でストリーミングされるオンライン ムービーを再生するクライアント アプリケーションがあります。問題が原因でストリームが停止するたびに、プレーヤーはフリーズし、最後に受信したフレームを表示します。クライアント側でそのような状態を検出する方法はありますか? VMR9 から ContainerForm に送信された Windows メッセージを確認しました。

protected override void WndProc(ref Message m)
{
    if (m.Msg == PlayerMessageValue)
    {
        Program.log.AppendLine(string.Format("msg {0} {1} {2}", m.LParam, m.WParam, Environment.TickCount));
    }
    base.WndProc(ref m);
}

プレーヤーは時間をインクリメントしており、プレーヤーは予想される間隔でメッセージを送信しますが、実際には何も受信されません。ここにログがあります:

msg 0 0 1316437
msg 0 0 1316515
msg 0 0 1317515
msg 0 0 1318515
msg 0 0 1319515
msg 0 0 1320515
msg 0 0 1321531
msg 0 0 1322531
msg 0 0 1323531
msg 0 0 1324531
msg 0 0 1325531
msg 0 0 1326546
msg 0 0 1327546
msg 0 0 1328546
msg 0 0 1329546

しばらく経ち、これからストリームは停止しますが、VMR の動作は何も変わりません:

msg 0 0 1351593
msg 0 0 1352593
msg 0 0 1353593
msg 0 0 1354593
msg 0 0 1355593
msg 0 0 1356609
msg 0 0 1357609
msg 0 0 1358609
msg 0 0 1359609
msg 0 0 1360609
msg 0 0 1361625
msg 0 0 1362625
msg 0 0 1363625
msg 0 0 1364625
msg 0 0 1365625
msg 0 0 1366640
msg 0 0 1367640
msg 0 0 1368640
msg 0 0 1369640
msg 0 0 1370640

クロージング...1371796

グラフのアクティビティを確認する必要があるグラフの他の部分はありますか? (グラフは実行中ですが)

4

1 に答える 1

0

予期しない動作を示すウィンドウ メッセージは想定されていません。代わりに、でチェックする必要があるフィルタ グラフ イベントがありますIMediaEvent::GetEvent。さらに、特定の問題に対処するために、メディア サンプル (タイム スタンプなど) をチェックしたり、データ (H.264 ビットストリームなど) を検証したりする場合があります。

于 2012-07-02T11:01:54.210 に答える