2016-08-07 101 views
1

我正在設計一個在Visual C#Winforms中的小應用程序。我正在使用NAudio並播放.mp3文件。以下是代碼:將.mp3文件放在visual C#項目中的位置。

IWavePlayer waveOutDevice = new WaveOut(); 
AudioFileReader audioFileReader = new AudioFileReader("ringtone.mp3"); 

waveOutDevice.Init(audioFileReader); 
waveOutDevice.Play(); 

我已將此ringtone.mp3保存在調試文件夾中。但我認爲如果我在另一個系統上使用這個exe。然後,這個MP3將無法正常工作。所以我想知道在哪裏可以將該mp3文件保存在項目中以及如何使用它。

回答

0

只需將其添加到項目中。 右鍵點擊項目=> Add => Existing Item ... 從文件選取器中選取文件。 它將在編譯時發送到輸出文件夾。

1

選項1: 你將不得不確保MP3文件總是在同一文件夾中的exe文件。也許創建一個安裝程序,它會將這兩個文件複製到同一個文件夾中。

選項2: 嵌入exe文件裏面的MP3文件。只需將MP3複製您的Visual Basic解決方案中,並設置它的生成操作嵌入的資源

然後在你的代碼,你會參考其與此:

Stream mp3FileStream = Assembly.GetEntryAssembly().GetManifestResourceStream("YourSolution.ringtone.mp3"); 

這將返回一個Stream對象。你將不得不看到如何將它傳遞給你的IWavePlayer對象。

我的猜測是這樣waveOutDevice.Init(mp3FileStream),但甚至沒有測試這一點。

+0

在哪裏這些選項生成操作嵌入的資源 –

+0

在屬性面板中,選擇從您的項目文件後。下面是截圖:https://www.evernote.com/l/AWmFHCnm2t5O_5rCcvB4LJO6hTcosIo6VZU – Ibrahim

+0

OK我已建行動,以嵌入的資源。我應該在哪裏放置你在答案中提到的那一行代碼? –

相關問題