Относительный Uri работает для BitmapImage, но не для MediaPlayer? - PullRequest
0 голосов
/ 13 апреля 2010

Это будет просто для вас, ребята:

var uri = new Uri("pack://application:,,,/LiftExperiment;component/pics/outside/elevator.jpg");
imageBitmap = new BitmapImage();
imageBitmap.BeginInit();
imageBitmap.UriSource = uri;
imageBitmap.EndInit();
image.Source = imageBitmap;

=> Отлично работает на .jpg с Действие построения: содержание Копировать в выходной каталог: всегда копировать

MediaPlayer mp = new MediaPlayer();
var uri = new Uri("pack://application:,,,/LiftExperiment;component/sounds/DialingTone.wav");
mp.Open(uri);
mp.Play();

=> Не работает на .wav с тем же действием сборки и копировать в вывод. Я вижу файл в моей папке / debug / ..

MediaPlayer mp = new MediaPlayer();
var uri = new Uri(@"E:\projects\LiftExp\_solution\LiftExperiment\bin\Debug\sounds\DialingTone.wav");
mp.Open(uri);
mp.Play();

=> Отлично работает ..

Итак, как мне заставить звук работать с относительным путем? Почему это не работает таким образом? Дайте мне знать, если вы хотите больше кода или скриншотов.

Спасибо.

1 Ответ

1 голос
/ 13 апреля 2010

Синтаксис URI pack: // application предназначен для «встраивания» файлов, убедитесь, что для этого файла мультимедиа задано значение, или используйте pack: // siteoforigin для «незакрепленных» файлов (скопированных в каталог bin).1001 *

MSDN-ссылка

...