2012-03-07 15 views
0

如果我想有一個文件,同時具有Mp3軌道和文本組件,我怎麼能在C#中完成這個?音樂和文本在同一個文件C#

具體:我正在創建一個吉他英雄克隆,並且想要一個包含實際聲音(MP3)和音符圖表(我將其作爲文本讀取)的文件。我將如何閱讀和寫這兩個東西到同一個文件?

感謝,

泰Rozak

+1

無論是使用ID3標籤或創建自己的文件格式。 – SLaks 2012-03-07 22:12:28

+2

您是否想過使用壓縮文件(例如ZIP,RAR)將多個文件打包在一起?你不需要使用任何實際的壓縮,但你也可以使用它。 – Bernard 2012-03-07 22:12:59

回答

1

定義自己的文件格式?前4個字節定義了多少文本正在跟隨....閱讀文本。然後文件的其餘部分是MP3。

0

通過將構建操作設置爲Embedded Resource,您可以將它們作爲資源嵌入到程序集中。

// Read the file in from an embedded resource 
Assembly assembly = Assembly.GetExecutingAssembly(); 
string assemblyNamespace = assembly.GetName().Name; 
Stream mp3Stream = assembly.GetManifestResourceStream(assemblyNamespace + ".resources.somefile.mp3"); 

// Then play the sound, or display the text file 
0

在Windows上,您可以將信息存儲在單獨的NTFS流中的同一文件中。 在命令窗口中,試試這個實驗:

NOTEPAD C:\temp\MyFile.mp3 
NOTEPAD C:\temp\MyFile.mp3:notes.txt 

這裏是如何做到這一點programaticaly一些微軟的API文檔: http://support.microsoft.com/kb/105763

在Linux上,這是ReiserFS文件系統可用,但我不知道EXT3。 在這個頁面上,他們張一兵同志商榷存儲額外的信息二進制MP3數據: http://www.linuxquestions.org/questions/linux-general-1/ntfs-vs-ext-file-systems-78636/

祝你好運, 吉日

+0

請注意,Windows 8不支持命名流:[爲Windows構建下一代文件系統:ReFS](http://blogs.msdn.com/b/b8/archive/2012/01/16/building-在的下一代文件系統的換窗戶,refs.aspx) – slugster 2012-09-24 10:53:01