2010-09-16 16 views
1

J'ai un code très simple qui a juste besoin de jouer un son avec un volume spécifié, comme suit:Comment utiliser une ressource pack uri avec un lecteur multimédia?

var mp = new MediaPlayer(); 
mp.Open(uri); 
mp.Volume = volume; 
mp.Play(); 

Le problème se pose parce que cela fait partie d'un module Prisme. Je ne sais pas où sera l'assembly en cours d'exécution, donc je ne peux pas utiliser un Uri ou un site web relatif et MediaPlayer ne comprend pas la syntaxe Uri du paquet. J'ai un fichier wav de ressources à la racine de mon assembly appelé "notify.wav", mais je n'ai aucun moyen de le passer dans MediaPlayer via un Uri et je ne vois pas d'autre moyen de le charger.

Comment lire le fichier?

Répondre

1

Puisque la ressource est intégrée et le MediaPlayer ne supporte pas le pack uri, vous aurez besoin de lire la ressource en tant que flux et l'écrire fichier.Vous devriez alors pouvoir charger le fichier dans le lecteur si nécessaire.

Je voudrais écrire le fichier dans mon répertoire d'applications afin qu'une fois extrait de l'assemblage, vous puissiez simplement référencer le fichier directement.

Hope this helps

0

J'ai peur que Media Player ne supporte pas l'URI du pack. Avez-vous essayé Directory.GetCurrentDirectory ou Environment.CurrentDirectory?

+1

Je ne pense pas GetCurrentDirectory me aider parce que la ressource est intégrée dans l'ensemble. Je veux savoir comment transmettre une telle ressource au lecteur multimédia. Il ne peut pas être lâche dans le système de fichiers quelque part. – adhocgeek

1

Vous devez d'abord déclarer une variable correspondant à la chaîne du chemin de votre dossier multimédia. Cette variable contient le chemin. tout comme:

string url = @"C:\Users\Alico\Documents\visual studio 2010\Projects\WpfBrushesTest\WpfBrushesTest\Dido - Thank You.mp4"; 

puis

mp.Open(new Uri(url,UriKind.Relative));