この問題を解決するのに最も時間がかかります。 URLからオーディオファイルとビデオファイルを読み込むSilverlight 4アプリケーションがあります。 URLは、アプリケーションがホストされているのと同じドメインで、ビデオに適しています。Silverlight MediaElementでの再生を拒否する
実際には、URLはasp.net mvcコントローラであり、サーバー上の共有場所からファイルを読み込み、ファイルストリームを返します。 I場合
http://localhost:31479/CourseMedia?path= \ omnisandbox1 \ ILMSShare2デモ・ファイア+行動\メディア\ Disclaim.wma \ &暗号化= Falseの& ID = 00000000-0000-0000-0000-000000000000
:URLは次のようになりURLをブラウザに直接入力し、Windows Media Playerでファイルを読み込んで再生します。別のテスト用のSilverlightプロジェクトを使用してURLを読み込むと動作しますが、私の人生では正常に動作しません私の主なプロジェクトでは
これは私がに使用ルーチンは、実際にソースの設定んです:
protected void SetPlayerURL(MediaElement player, string url)
{
if (player != null && url.Length > 0)
{
player.ClearValue(MediaElement.SourceProperty);
player.Source = new Uri(this.Packet.GetMediaUrl(url, false, Guid.Empty));
}
}
とGetMediaURL機能は、単に上で見たURLの形式を構築します。
public string GetMediaUrl(
string path,
bool encrypted,
Guid key)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat("http://{0}/CourseMedia?path={1}&encrypted={2}&id={3}",
this.Host,
System.Windows.Browser.HttpUtility.UrlEncode(path),
encrypted,
key);
return builder.ToString();
}
コントローラへの要求は決してありませんそれがオーディオのときにメディアのために作られた。この正確なコードはビデオでうまく動作するので、私には奇妙に見えます。 MediaElementステートは決して "Closed"にならず、CurrentStateChanged、MediaOpened、およびMediaFailedイベントは決してトリガーされません。
私は迷っています!
あなたはこれを確認しましたか?ホーストとパスは有効ですか? – thomasmartinsen