J'ai du mal à comprendre ce problème. J'ai une application Silverlight 4 qui charge des fichiers audio et vidéo à partir d'URL. Les URL sont le même domaine que l'application hébergée et fonctionne très bien pour la vidéo.Silverlight MediaElement refusant de jouer de l'audio
Les URL sont en fait des contrôleurs mvc asp.net qui sont chargés de lire le fichier à partir d'un emplacement partagé et le serveur et de servir un flux de fichiers. Les URL ressemblent à ceci:
http://localhost:31479/CourseMedia?path= \ omnisandbox1 \ ILMSShare2 \ Demo-Fire + Comportement \ media \ Disclaim.wma & crypté = False & id = 00000000-0000-0000-0000-000000000000
Si je mettre l'URL directement dans le navigateur le fichier charge et joue dans Windows Media Player très bien, et si j'utilise un projet de test Silverlight distinct pour charger l'URL, il fonctionne aussi, mais pour la vie de moi, je ne peux pas le faire fonctionner correctement dans mon projet principal.
Ceci est la routine que j'utilise pour faire réellement le réglage de la source:
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));
}
}
et la fonction GetMediaURL construit simplement le format d'URL vu ci-dessus:
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();
}
La demande au contrôleur est jamais fait pour les médias quand il est audio. Cela me semble étrange car ce code fonctionne très bien pour la vidéo. L'état MediaElement ne quitte jamais "Closed" et les événements CurrentStateChanged, MediaOpened et MediaFailed ne sont jamais déclenchés.
Je suis à perte!
Avez-vous vérifié que this.Host et chemin d'accès est valide? – thomasmartinsen