2013-04-17 2 views
1

У меня есть некоторые проблемы с относительными путями и воспроизведением wav-файлов. У меня есть этот простой код, который работает отлично:Воспроизведение wav-файла, который имеет относительный путь внутри проекта

SoundPlayer player = new SoundPlayer(); 
player.SoundLocation = @"C:\Users\Admin\Documents\Visual Studio 2012\Projects\TestProject\TestProject\Data\Sounds\car.wav"; 
player.Play(); 

я хочу как-то играть этот файл с относительным путем, но я не имел успеха с этим:

SoundPlayer player = new SoundPlayer(); 
player.SoundLocation = @"Data\Sounds\car.wav"; 
player.Play(); 

Спасибо!

ответ

3

Адрес Data в корневом каталоге приложения? Вы копируете содержимое каталога в качестве вывода?

Если да, то вы имели в виду, Data\Sounds\car.wav?

Что, если работает с Visual Studio будет в [projectroot]\[release]\bin\Data\Sounds\car.wav

Если вы не видите эту директорию в папку BIN, вы должны убедиться, вы выбираете все файлы, которые вы хотите, скопированных ваш выходной каталог (который скопирует структуру каталогов). Вы можете сделать это, щелкнув файл в своем проекте и выбрав файл как вывод.

+0

Да, данные находятся в корневом каталоге. – Cristiano

+0

Не в соответствии с файловым путем, который работает в вашем вопросе, это не так. –

+0

Hm ... Я создал новый каталог данных, добавив новый каталог внутри TestProject, щелкнув правой кнопкой мыши Project и «Добавить новую папку». Разве это не корневой каталог? :) – Cristiano

2

Вы могли бы быть лучше использовать абсолютный путь в конце концов. Вы можете получить корневой путь из exe-файла, а затем добавить к нему относительный путь. Как это:

// getting root path 
string rootLocation = typeof(Program).Assembly.Location; 
// appending sound location 
string fullPathToSound = Path.Combine(rootLocation, @"Data\Sounds\car.wav"); 
player.SoundLocation = fullPathToSound; 
0
//WindowsFormsApplication4.exe is name of name space this file name found in Debug file 

//you should copy your "sound.wav" into your Debug file 


     string x = (Assembly.GetEntryAssembly().Location + ""); 
     x = x.Replace("WindowsFormsApplication4.exe", "sound.wav"); 
     SoundPlayer player1 = new SoundPlayer(x); 
     player1.Play(); 
Смежные вопросы