İndirmenin başında uzak bir mp3 dosyasının süresini öğrenmek istiyorum. İlk önce kareleri alabilirim ama hangisinin okunması gerektiğini bilmiyorum, Xing veya VBRi.Tüm dosyayı indirmeden bir VBR mp3 için BitRate nasıl hesaplanır?
Bu bilgileri etiketlerini okuyarak nasıl edinebilirim?
MemoryStream ms = new MemoryStream();
waveOut.Play();
long offset = from;
ms.Position = 0;
byte[] decBuffer = new byte[50 * 1024];
while (true)
{
if (paused)
{
waveOut.Stop();
bwProvider.ClearBuffer();
break;
}
lock (LockObj)
{
byte[] readed = Helper.ReadStreamPartially(localStream, offset, 100 * 1024, orders);
if (readed == null)
continue;
ms = new MemoryStream(readed);
}
Mp3Frame frame;
try
{
frame = Mp3Frame.LoadFromStream(ms);
}
catch
{
continue;
}
if (frame == null)
continue;
int decompressed = decompressor.DecompressFrame(frame, decBuffer, 0);
bwProvider.AddSamples(decBuffer, 0, decompressed);
if (Helper.IsBufferNearlyFull(bwProvider))
Thread.Sleep(500);
offset += ms.Position;
}
http://stackoverflow.com/q/9046492/1070452 – Plutonix
Belki bu size yardımcı olur - https://www.mp3-tech.org/programmer/frame_header.html ve http://mpgedit.org/ mpgedit/mpeg_format/mpeghdr.htm –
http://stackoverflow.com/questions/6196011/how-to-read-xingheaders-and-vbriheaders-from-mp3-files-using-taglib-sharp –