如何从音乐文件中检索ID3信息

时间:2013-07-17 05:06:30

标签: c# microsoft-metro winrt-xaml windows-8.1

这是我到目前为止所拥有的

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,如果这有所作为。花了一整天时间试图解决这个问题,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

想通了,不得不把x变成一个数组,然后分配给一个新的字节[]

    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);