我從2012年升級到Visual Studio 2015,它大肆渲染了我。我不能再將WAV文件導入到我的項目資源中,而無需將它轉換成我的代碼不會接受的MemoryStream。我一直在尋找幾個小時,我感到非常沮喪。有人請幫助我嗎?我正在根據這些提示導入文件:How to: Import or Export Resources無法將WAV文件導入到Visual Studio中
讓我知道如果您需要圖片或其他信息。在這一點上我真的很絕望。
我從2012年升級到Visual Studio 2015,它大肆渲染了我。我不能再將WAV文件導入到我的項目資源中,而無需將它轉換成我的代碼不會接受的MemoryStream。我一直在尋找幾個小時,我感到非常沮喪。有人請幫助我嗎?我正在根據這些提示導入文件:How to: Import or Export Resources無法將WAV文件導入到Visual Studio中
讓我知道如果您需要圖片或其他信息。在這一點上我真的很絕望。
鏈接您正在使用VS 2010
打開你的資源文件。默認情況下,左上角菜單是字符串;但有一個小的下拉箭頭。點擊這個,第四個選項是音頻。如果您現在單擊添加現有文件,默認情況下它將過濾.wav文件,並將按照這種方式添加它們。
如果要添加現有文件,則不需要選擇資源類型。資源的類型是從文件中推斷出來的。 – jmcilhinney
是的,但我的意思是,如果您選擇所需的類型,文件類型過濾器是預先設置的。 – 2016-08-19 05:29:20
我明白了。我想我更關注的是「默認情況下它會過濾.wav文件」,而更多的則是「將它們添加爲」,因爲它們會以任何方式添加爲正確的類型。 – jmcilhinney
我不確切地知道你在VS 2012中的體驗,但我只是測試了VS 2015,2013和2012年,他們都以完全相同的方式工作。我只是打開項目屬性,選擇資源頁面,單擊添加資源下拉列表,選擇添加現有文件,並導航到我想要的WAV文件。該文件作爲資源添加並且My.Settings
的相應屬性將該資源暴露爲類型UnmanagedMemoryStream
。正如我所說,在所有三個版本中發生的方式完全相同。如果你在VS 2012中有不同的東西,那麼你在VS 2012中做了一些不同的事情。你沒有告訴我們你做了什麼,所以我們只能猜測。
您的代碼需要什麼類型的數據?也許這也是提供的好信息。如果它是一個Byte
數組,那麼你可以得到一個從資源Stream
像這樣:
Dim resourceStream = My.Resources.MyWavResource
Dim length = CInt(resourceStream.Length)
Dim resourceData(length - 1) As Byte
resourceStream.Read(resourceData, 0, length)
這正是你如何從任何Stream
讀取到Byte
陣列。你可以,如果你需要做其再次,它放入一個方法:
Private Function GetStreamData(stream As Stream) As Byte()
Dim length = CInt(stream.Length)
Dim data(length - 1) As Byte
stream.Read(data, 0, length)
Return data
End Function
你可以這樣調用它:
Dim data As Byte()
Using resource = My.Resources.MyWavResource
data = GetStreamData(resource)
End Using
你甚至可以把它寫成一個擴展方法和然後在Stream
本身上調用它。
什麼樣的對象類型在2012年之前導入它們? – FloatingKiwi