Hy!
我想從C#(wpf)中的音頻文件(標題,藝術家等)中獲取一些信息。該MediaElement的不提供這個選項,所以我用這個代碼(直接讀取的字節):WPF C#,從音頻文件中獲取信息
public string[] GetAudioFileInfo(string path)
{
path = Uri.UnescapeDataString(path);
byte[] b = new byte[128];
string[] infos = new string[5]; //Title; Singer; Album; Year; Comm;
bool isSet = false;
//Read bytes
try
{
FileStream fs = new FileStream(path, FileMode.Open);
fs.Seek(-128, SeekOrigin.End);
fs.Read(b, 0, 128);
//Set flag
String sFlag = System.Text.Encoding.Default.GetString(b, 0, 3);
if (sFlag.CompareTo("TAG") == 0) isSet = true;
if (isSet)
{
infos[0] = System.Text.Encoding.Default.GetString(b, 3, 30); //Title
infos[1] = System.Text.Encoding.Default.GetString(b, 33, 30); //Singer
infos[2] = System.Text.Encoding.Default.GetString(b, 63, 30); //Album
infos[3] = System.Text.Encoding.Default.GetString(b, 93, 4); //Year
infos[4] = System.Text.Encoding.Default.GetString(b, 97, 30); //Comm
}
fs.Close();
fs.Dispose();
}
catch (IOException ex)
{
MessageBox.Show(ex.Message);
}
return infos;
}
這段代碼的問題,有時它沒有給予充分的標題或僅代表小立方體。 (如果我在MeidaPlayer中打開媒體,比我可以看到完整的標題)
我不確定GetString(byte [],int,int)的參數,也許我在那裏犯錯誤。
在我prgram:
在媒體播放器:
什麼文件格式?你在哪裏得到你在GetString調用中使用的數字? – Justin 2011-04-25 20:05:13
mp3和wav。我嘗試了幾次不同的值,但通過這個值,我得到了立方體。 – SeBee 2011-04-25 20:15:06