如何在C#中讀取命名屬性,例如Win XP或更高版本上的WMA文件的標題?在Win XP或更高版本上從WMA文件讀取命名屬性?
0
A
回答
1
讀取(和修改/寫入)WMA元數據屬性的一種方法是使用the Windows Media Format SDK。特別是IWMHeaderInfo界面具有您想要的功能:GetAttributeByName,GetAttributeCount和GetAttributeByIndex。您必須在C#中編寫P/Invoke代碼才能使用此基於COM的API。
另一個可能更簡單的方法是使用NAudio這樣的庫,它具有用於讀寫WMA文件的WindowsMediaFormat程序集。使用NAudio,閱讀屬性的任務變得非常簡單。
using (var wmaStream = new NAudio.WindowsMediaFormat.WmaStream(fileName))
{
titleAttribute = wmaStream["Title"];
authorAttribute = wmaStream["Author"];
// ...
// read other meta tag attributes
}
在我寫的文章中可以找到更多details about reading and writing WMA meta tags using NAudio。
1
有一個簡單的解決方案,沒有任何奇怪的框架使用。 所以我建議剛讀取文件按字節使用純天然的.Net:
using System.IO;
...
string metaStr = string.Empty;
using (FileStream fs = File.OpenRead(wmaUrl))
{
byte[] b = new byte[3000];
fs.Read(b, 0, b.Length);
metaStr = Encoding.UTF8.GetString(b, 0, 3000);
metaStr = metaStr.Replace("\0", "");
int metaStart = metaStr.IndexOf("<?xml version");
metaStr = metaStr.Substring(metaStart);
int metaEnd = metaStr.IndexOf("</recordingDetails>");
metaStr = metaStr.Substring(0, metaEnd) + "</recordingDetails>";
}
現在metaStr包含的WMA文件的描述,通常被稱爲一個音頻文件元數據的註釋字段。
請記住,這個Comment字段可以被其他用戶更新,並且可以包含其他標籤(不像上面顯示的「recordingDetails」),因此您應該使用自己的自定義子字符串來定義必要的元數據邊界。
相關問題
- 1. 在xsl中讀取屬性文件或文本文件
- 2. 如何從屬性文件中讀取依賴版本
- 3. 從屬性文件讀取
- 4. 從登錄ID(Windows XP和更高版本)獲取用戶SID
- 5. 如何在Windows XP上使用SAS重命名文本文件?
- 6. 在ASP.net中上傳大文件IIS 7或更高版本
- 7. 在讀取屬性文件
- 8. 更新PowerShell文件的版本屬性
- 9. Unix腳本命令讀取文件名
- 10. 在Windows XP(或更高版本)上可以安裝和使用Delphi 4 Pro嗎?
- 11. Windows文件API兼容性win 7 vs win XP
- 12. 在從html文件讀取名稱屬性值時出錯
- 13. 如何檢測牆紙改變時(Windows XP或更高版本)?
- 14. 從命令行讀取文本文件
- 15. 檢查Java中的Windows XP或更高版本?
- 16. 讀取屬性文件(Unix上的WildFly)
- 17. 從AssemblyInfo.cs文件中讀取版本號
- 18. 「compilerVersion」在供應商選擇屬性必須是「4.0版」或更高版本
- 19. 「compilerVersion」在供應商選擇屬性必須是「4.0版」或更高版本
- 20. 在Azure上找不到'Microsoft.SqlServer.Types'版本10或更高版本
- 21. 從.properties文件讀取屬性與JavaFX
- 22. 如何從HDF5文件讀取屬性?
- 23. 無法從屬性文件中讀取
- 24. 從屬性文件讀取Spring 3
- 25. 從屬性文件中讀取值
- 26. angularjs從屬性文件中讀取
- 27. 從屬性文件中讀取
- 28. vertx - 從屬性/配置文件讀取
- 29. 如何從屬性文件讀取值?
- 30. 從文件讀取Java屬性組
謝謝。解析看起來對我來說很不穩定...... – ChrisJJ