2013-07-17 3 views
0

Это то, что я до сих порКак получить информацию ID3 из музыкального файла

IRandomAccessStreamWithContentType stream = await file.OpenReadAsync(); 
byte[] byteArray = new byte[stream.Size]; 
IBuffer byteBuffer = byteArray.AsBuffer(); 
await stream.ReadAsync(byteBuffer, 0, 0); 
String result = System.Text.Encoding.Unicode.GetString(byteArray, byteArray.Length - 128, 128); 

К сожалению, результат всегда выходит будучи "\0\0\0\0\0\0" с огромным количеством более \0-х, это для каждого музыкального файла он выполняет итерацию.

FileStream не существует в winrt Я думаю, поэтому вся информация в Интернете немного от того, что мне нужно. Кроме того, нет stream.Length, только stream.Size, если это имеет значение. Проводив весь день, пытаясь понять это, любая помощь очень ценится.

+0

вы пробовали это LIB? https://id3.codeplex.com/ – Xyroid

ответ

0

понял это, пришлось превратить й в массив затем присвоить новые байты []

IRandomAccessStreamWithContentType stream = await file.OpenReadAsync(); 

    byte[] byteArray = new byte[stream.Size]; 
    IBuffer byteBuffer = byteArray.AsBuffer(); 
    IBuffer x = await stream.ReadAsync(byteBuffer, (uint)byteArray.Length, 0); 
    byte[] newArray = x.ToArray(); 

    String result = System.Text.Encoding.UTF8.GetString(newArray, 0, newArray.Length); 
+1

Также смотрите 'var result = wait file.Properties.GetMusicPropertiesAsync();' – Xyroid

+0

whoa !! это намного проще, спасибо вам большое! Я был готов разобрать все эти. – Zev