ID3 Tag Writer, behøver hjælp med Byte[]
Jeg er ved at tage en MP3 tag reader/writer.. readeren fungere som den skal, men kan ikke fine ud af at skrive til filen..Her er hvad jeg har lavet på writeren:
static void SetSongAttributeByName(IWMHeaderInfo3 info, string name, WMT_ATTR_DATATYPE attribType)
{
ushort length = 4;
byte[] attribData = null;
ushort streamNum = 0;
try
{
attribData = new byte[length];
info.SetAttribute(streamNum, name, attribType, attribData, length);
}
catch (Exception)
{
attribData = new byte[0];
}
}
Jeg skal angive teksten der skal skrives, men det skal være som byte.. Smider lige lidt kode som måske kan være til hjælp..
Håber nogen kan være til hjælp!.. tak
MSND: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmform95/htm/iwmheaderinfosetattribute.asp
Her HENTER jeg information fra en fil:
static byte[] GetSongAttributeByName(IWMHeaderInfo3 info, string name, ref WMT_ATTR_DATATYPE attribType)
{
ushort length = 0;
byte[] attribData = null;
ushort streamNum = 0;
try
{
if (info.GetAttributeByName(ref streamNum, name, out attribType, null, ref length) == 0)
{
attribData = new byte[length];
info.GetAttributeByName(ref streamNum, name, out attribType, attribData, ref length);
}
}
catch (Exception)
{
attribData = new byte[0];
}
return attribData;
}
name er fx "Title"
public static TagInfo GetPlayListTags(string filepath)
{
IWMMetadataEditor editor;
string filename = "";
string artist = "";
string title = "";
int duration = 0;
if (WMFSDKFunctions.WMCreateEditor(out editor) == 0)
{
try
{
if (editor.Open(filepath) == 0)
{
byte[] attribData;
WMT_ATTR_DATATYPE attribType = WMT_ATTR_DATATYPE.WMT_TYPE_QWORD;
IWMHeaderInfo3 header = editor as IWMHeaderInfo3;
filename = System.IO.Path.GetFileNameWithoutExtension(filepath);
attribData = GetSongAttributeByName(header, "Duration", ref attribType);
duration = Convert.ToInt32(BitConverter.ToUInt64(attribData, 0) / 10000000);
attribData = GetSongAttributeByName(header, "Title", ref attribType);
title = ConvertToString(attribData);
attribData = GetSongAttributeByName(header, "Author", ref attribType);
artist = ConvertToString(attribData);
if (title == "")
title = "Unknown";
if (artist == "")
artist = "Unknown";
}
}
catch (Exception)
{
string ErrorTitle = "";
string ErrorArtist = "";
int ErrorDuration = 0;
if (title != "") ErrorTitle = title;
else ErrorTitle = "Unknown";
if (artist != "") ErrorArtist = artist;
else ErrorArtist = "Unknown";
if (duration > 0) ErrorDuration = duration;
else ErrorDuration = 0;
editor.Close();
return new TagInfo(filename, ErrorTitle, ErrorArtist, "Not Available", "Not Available", ErrorDuration, "Not Available", 0, 0, 0);
}
}
editor.Close();
return new TagInfo(filename, title, artist, "Not Available", "Not Available", duration, "Not Available", 0, 0, 0);
}
