public void TestDecodeFrameNeedMore() { string dirName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string path = Path.Combine(dirName, "bensound-epic.mp3"); Mpg123 mpg123 = new Mpg123(); mpg123.OpenFeed(); byte[] fileBytes = File.ReadAllBytes(path); byte[] buffer = new byte[8]; Array.Copy(fileBytes, buffer, 8); int num = 0; uint bytes = 0; int b = 0, c = 0; long a = 0; mpg123.GetFormat(ref a, ref b, ref c); Mpg123.Errors error = Mpg123.Errors.OK; Assert.That(() => error = mpg123.DecodeFrame(ref num, ref buffer, ref bytes), Throws.Nothing); Assert.That(error, Is.EqualTo(Mpg123.Errors.NEED_MORE)); }
public void TestDecodeFrameNumFrames() { string dirName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string path = Path.Combine(dirName, "bensound-scifi.mp3"); Mpg123 mpg123 = new Mpg123(); mpg123.Open(path); byte[] buffer = null; int num = 0; uint bytes = 0; int b = 0, c = 0; long a = 0; mpg123.GetFormat(ref a, ref b, ref c); Mpg123.Errors error = Mpg123.Errors.OK; while (error == Mpg123.Errors.OK) { error = mpg123.DecodeFrame(ref num, ref buffer, ref bytes); } Assert.That(num, Is.GreaterThan(0)); }
public void TestDecodeFrameOpen() { string dirName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string path = Path.Combine(dirName, "bensound-epic.mp3"); Mpg123 mpg123 = new Mpg123(); mpg123.Open(path); byte[] buffer = null; int num = 0; uint bytes = 0; Mpg123.Errors error = Mpg123.Errors.OK; while (error == Mpg123.Errors.OK) { Assert.That(() => error = mpg123.DecodeFrame(ref num, ref buffer, ref bytes), Throws.Nothing); } }
public void TestReadNeedMore() { Mpg123 mpg123 = new Mpg123(); mpg123.OpenFeed(); byte[] buffer = new byte[8]; uint done = 0; int b = 0, c = 0; long a = 0; mpg123.GetFormat(ref a, ref b, ref c); Mpg123.Errors error = Mpg123.Errors.OK; Assert.That(() => error = mpg123.Read(buffer, ref done), Throws.Nothing); Assert.That(error, Is.EqualTo(Mpg123.Errors.NEED_MORE)); }
public void TestDecodeFrameNumFramesTotal() { string dirName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string path = Path.Combine(dirName, "bensound-epic.mp3"); Mpg123 mpg123 = new Mpg123(); mpg123.Open(path); byte[] buffer = null; int num = 1; uint bytes = 0; Mpg123.Errors error = Mpg123.Errors.OK; while (error != Mpg123.Errors.DONE) { error = mpg123.DecodeFrame(ref num, ref buffer, ref bytes); } Assert.That(num, Is.EqualTo(6834)); }
public void TestReadEmptyBuffer() { string dirName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string path = Path.Combine(dirName, "bensound-epic.mp3"); Mpg123 mpg123 = new Mpg123(); mpg123.Open(path); uint done = 0; byte[] buffer = new byte[0]; Mpg123.Errors error = Mpg123.Errors.OK; while (error == Mpg123.Errors.OK) { Assert.That(() => error = mpg123.Read(buffer, ref done), Throws.Nothing); } Assert.That(done, Is.EqualTo(0)); }
static void Main(string[] args) { foreach (string decoder in Mpg123.Decoders) { Console.WriteLine(decoder); } Out123 out123 = new Out123(); out123.Open(); Mpg123 mpg123 = new Mpg123(); mpg123.Open("Assets/bensound-epic.mp3"); int offset = 0; while (true) { byte[] data = null; uint size = 0; Mpg123.Errors error = mpg123.DecodeFrame(ref offset, ref data, ref size); if (error == Mpg123.Errors.NEW_FORMAT) { long rate = 0; int channels = 0; int encoding = 0; mpg123.GetFormat(ref rate, ref channels, ref encoding); out123.Start(rate, channels, encoding); } else if (error == Mpg123.Errors.OK) { out123.Play(data); } } Console.ReadLine(); }
internal extern static IntPtr NativeMpg123PlainStrError([MarshalAs(UnmanagedType.I4)] Mpg123.Errors error);