2010-09-16 30 views
1

我有一些非常簡單的代碼,只需要播放聲音與一個指定卷,如下:我如何使用媒體播放器的pack uri資源?

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

問題就出現了,因爲這是一個棱鏡模塊的一部分。我不知道正在執行的程序集將在哪裏,所以我不能使用相對的Uri或siteoforigin,MediaPlayer也不理解pack Uri語法。

我在我的程序集的根目錄中有一個名爲「notify.wav」的資源wav文件,但我無法通過Uri將它傳遞到MediaPlayer中,並且無法看到任何其他方式來加載它。

如何播放文件?

回答

1

由於資源被嵌入和MediaPlayer的不支持包URI,你需要在一個流中讀取的資源並將其寫出來然後您可以根據需要將文件加載到播放器中。

我會將文件寫入我的應用程序目錄,以便一旦從程序集中提取出來,就可以直接引用該文件。

希望這有助於

0

恐怕媒體播放器不支持pack URI。

您是否試過Directory.GetCurrentDirectoryEnvironment.CurrentDirectory

+1

我不認爲GetCurrentDirectory會幫助我,因爲資源是嵌入在程序集中。我想知道如何將這樣的資源傳遞給媒體播放器。它不能在文件系統中任何地方鬆動。 – adhocgeek 2010-09-16 16:32:42

1

首先,您應該爲媒體文件夾的路徑聲明一個字符串變量。這個變量保存路徑。就像:

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

然後

mp.Open(new Uri(url,UriKind.Relative)); 
相關問題