Как бы я использовал пакет ресурсов URI с медиаплеером? - PullRequest
2 голосов
/ 16 сентября 2010

У меня есть очень простой код, который просто должен воспроизводить звук с указанной громкостью, как показано ниже:

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

Проблема возникает, потому что это часть модуля Prism.Я не знаю, где будет выполняться сборка, поэтому я не могу использовать относительный Uri или siteoforigin, а MediaPlayer не понимает синтаксис пакета Uri.

У меня есть файл wav ресурса в корнемоей сборки под названием "notify.wav", но я не могу передать его в MediaPlayer через Uri и не вижу другого способа загрузить его.

Как воспроизвести файл?

Ответы [ 3 ]

1 голос
/ 06 августа 2011

Сначала вы должны объявить переменную, которая является строкой для пути к вашей папке мультимедиа.Эта переменная содержит путь.просто как:

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

, а затем

mp.Open(new Uri(url,UriKind.Relative));
1 голос
/ 06 августа 2011

Поскольку ресурс встроен, а MediaPlayer не поддерживает пакетные URI, вам необходимо считать ресурс в виде потока и записать его в файл. Затем вы сможете загрузить файл в проигрыватель как необходимо.

Я бы записал файл в каталог своих приложений, чтобы после извлечения из сборки вы могли просто обратиться к файлу напрямую.

Надеюсь, это поможет

0 голосов
/ 16 сентября 2010

Боюсь, медиаплеер не поддерживает URI пакета.

Вы пробовали Directory.GetCurrentDirectory или Environment.CurrentDirectory?

...