我正在尋找一些示例代碼來向我展示如何將元數據添加到我們創建的wav文件。 有人嗎?如何將元數據添加到WAV文件?
6
A
回答
0
如果您檢查wave file spec,您會看到似乎沒有任何註釋的空間。一個選項是用你自己的格式打包wave文件,其中包含自定義信息,但實際上你會創建一個全新的格式,而沒有你的應用程序的用戶將無法讀取它。但你可能會確定。
0
1
一個選項是添加您自己的塊與唯一的ID。大多數WAV玩家都會忽略它。
另一個想法是使用一個labl
塊,與在文件的開始或結尾處設置的一個que相關聯。您還需要一個que
塊。 See here for a reference
如何寫入數據是簡單
- 寫
"RIFF"
。 - 保存文件位置。
- 寫入0個字節的4個字節
- 寫入所有現有的塊。保持寫入的字節數。
- 添加你的大塊。一定要得到大塊的權利。保持 寫入的字節數。
- 倒回到保存的位置。寫入新的大小(作爲32位 數字)。
- 關閉文件。
如果您將某些東西添加到現有的list
塊中,但這一點稍微複雜一些,但同樣的原則適用。下面
private void WaveTag()
{
string fileName = "in.wav";
WaveReadWriter wrw = new WaveReadWriter(File.Open(fileName, FileMode.Open, FileAccess.ReadWrite));
//removes INFO tags from audio stream
wrw.WriteInfoTag(null);
//writes INFO tags into audio stream
Dictionary<WaveInfo, string> tag = new Dictionary<WaveInfo, string>();
tag[WaveInfo.Comments] = "Comments...";
wrw.WriteInfoTag(tag);
wrw.Close();
//reads INFO tags from audio stream
WaveReader wr = new WaveReader(File.OpenRead(fileName));
Dictionary<WaveInfo, string> dir = wr.ReadInfoTag();
wr.Close();
if (dir.Count > 0)
{
foreach (string val in dir.Values)
{
Console.WriteLine(val);
}
}
}
+0
請注意,所有塊必須有偶數個字節。如果需要填充NULL! – mivk 2012-04-26 07:19:00
1
+2
如果沒有「Alvas Audio」許可證,此代碼無法使用,則需要至少500美元的許可證...... – 2015-04-06 14:13:07
相關問題
- 1. 如何將元數據添加到resx文件
- 2. 如何將元數據添加到html文件
- 3. 如何將.wav文件添加到可點擊的按鈕?
- 4. 如何使用python將噪聲添加到wav文件?
- 5. 將元數據/標識符數據添加到CSV文件?
- 6. TYPO3將文件元數據添加到後端TCA IRRE元素
- 7. 如何使用libsndfile將.wav文件加載到數組中?
- 8. 32位的WAV文件元數據
- 9. C#將數據添加到xml文件
- 10. Android - 將數據添加到excel文件
- 11. 將新數據添加到XML文件
- 12. 將數據添加到XML文件
- 13. 將數據添加到* .sdf文件
- 14. 將數據添加到JSON文件
- 15. 如何修改/添加元數據到System.Drawing.Image文件
- 16. 如何添加元數據到WOFF文件?
- 17. 如何將元素添加到數據中的每個元素?
- 18. 如何將數據追加到文件?
- 19. 將元數據添加到gcc生成的可執行文件
- 20. 將元數據添加到視頻文件
- 21. 將評論[元數據]添加到文件
- 22. Python將自定義屬性/元數據添加到文件
- 23. 將矢量元素添加到數據文件
- 24. Transcodeit將元數據添加到音頻文件
- 25. 將元數據添加到Drupal 7上傳的文件
- 26. 我可以將自定義元數據添加到文件嗎?
- 27. 通過FFT將1000Hz噪聲添加到wav文件中C
- 28. MATLAB SIMULINK - 將正弦波添加到Wav文件
- 29. 將音頻(wav文件)添加到安卓媒體商店
- 30. 使用python將無聲幀添加到wav文件
從我讀過,我可以嵌入它作爲RIFF結構的一部分,我只是想不通要使用的結構和標籤。 – Curtis 2010-08-09 21:30:30