0

有効な文字列に基づいてそのソースを新しい Uri に設定する MediaElement があります。

例えば:

MediaElementName.Source = new Uri("string");

文字列は有効なパスであり、デバッグ後、「MediaElementName」の NaturalDuration が設定される場合と設定されない場合があります。

私は今、少なくとも2時間グーグルで検索していますが、結果はありません..

ここにいる誰かが、NaturalDuration を設定する場合と設定しない場合がある理由を知っていますか? wav を再生することはできますが、wav ファイルの長さ (継続時間) がわかりません。

どんな助けや考えも大歓迎です、ありがとう!!

-BTG

4

2 に答える 2

1

私はこれが遅すぎることを知っていますが、とにかく私の経験はこの問題の2つの変種でした

a) コーデック (flac がその例です) が継続時間を見つけられません。Windows Media Player にプログレス バーが表示されるかどうかを確認します (カスタム ハードウェアによって生成されたいくつかの flac ファイルにはこの問題がありました)。また、flac 形式は、ローカル ファイルで実行されているか、http で実行されているかによって結果が異なります (これは、ストリーム内でシークできない場合に長さが見つからないためだと思われます)。

b) 一部のコーデックは、マテリアルをレンダリングするまで持続時間を与えません。これを解決するために、Player.NaturalDuration.HasTimeSpan を使用して TimeSpan を取得するタイマーを実行しています。これは通常、メディアの再生が開始されてから数秒以内に持続します。Player_MediaOpened でタイムスパンを確認しても、確実に機能しません。

于 2011-04-26T16:30:35.663 に答える
0

実際には一歩下がって、代わりに FileInfo を使用して情報を取得しました。

FileInfo test = new FileInfo("myFilepath");
double size = test.Length;
于 2010-06-15T20:36:20.313 に答える