2010-04-12 2 views
0

Это будет просто для вас, ребята:Относительно Uri работает для BitmapImage, но не для MediaPlayer?

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 с тем же действием сборки и копировать на вывод. Я вижу файл в моем/отладки/папки ..

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

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

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

Спасибо.

ответ

1

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

MSDN link

+0

Тогда почему она работает на первом примере с BitmapImage? –

+0

heh, он работает с этим: var uri = new Uri ("pack: // siteoforigin: ,,,/sounds/DialingTone.wav"); Мне пришлось удалить компонент «LiftExperiment;» –