मैं अपने डाउनलोड की शुरुआत में एक दूरस्थ एमपी 3 फ़ाइल के लिए अवधि की जानकारी प्राप्त करना चाहता हूं। मैं पहले फ्रेम प्राप्त कर सकता हूं लेकिन यह नहीं जानता कि कौन सी पढ़ा जाना चाहिए, ज़िंग या वीबीआरआई।संपूर्ण फ़ाइल डाउनलोड किए बिना एक वीबीआर एमपी 3 के लिए बिट्रेट की गणना कैसे करें?
टैग को पढ़कर मैं यह जानकारी कैसे प्राप्त कर सकता हूं?
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
हो सकता है कि यह आप में मदद करता है - https://www.mp3-tech.org/programmer/frame_header.html और 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 –