0

Je veux écrire une méthode comme celle ci-dessous. Toutefois, si Silverlight ne peut pas lire le flux en natif, je voudrais qu'il passe en revue une liste de classes MediaStreamSource, et essayez chacune d'entre elles jusqu'à ce que l'une d'elles fonctionne, ou elle n'a plus rien à essayer. Ma question est, comment puis-je dire si la méthode ci-dessous est suffisante pour un flux particulier.Comment testez-vous si Silverlight peut lire un flux?

public static void OpenMedia(this MediaElement ME, Stream FileData) 
{ 
    ME.SetSource(FileData); 
} 

J'ai besoin d'un code pour exécuter dans le cas où cela échouerait à lire le média.

Répondre

1

Je ne sais pas si vous êtes à la recherche de l'insuffisance ou l'essai de la capacité à jouer le type de support si ...

Vous pouvez ajouter un gestionnaire d'événements pour MediaFailed, que ce soit dans le XAML ou il le code derrière pour les deux cas. Vérifier la jouabilité de manière proactive demanderait de la créativité, comme avoir des fichiers multimédias de type «échantillon» de très petite taille (< 1 seconde) et silencieux qui servent à tester la jouabilité et qui seraient transparents pour l'utilisateur.

Pour C# code derrière des fils de l'événement, et ajouter le nouvel événement:

void yourPage_Loaded(object sender, RoutedEventArgs e) 
{ 
    ME.MediaFailed += new EventHandler<ExceptionRoutedEventArgs>(ME_MediaFailed); 
} 

void ME_MediaFailed(object sender, ExceptionRoutedEventArgs e) 
{ 
    add your code to handle the exception here. 
} 
+0

Je suppose que la lecture de l'échantillon avec un volume réglé sur 0 devrait fonctionner et permettre de tester le fichier avant la lecture du fichier. – ForbesLindesay