Working on implementing song compression to reduce file size of the song

This commit is contained in:
amazing-username
2019-03-31 20:15:41 -04:00
parent 1f15fe99e5
commit aca1ce2d34
4 changed files with 78 additions and 1 deletions
+59
View File
@@ -0,0 +1,59 @@
using System;
using System.IO;
using System.IO.Compression;
using System.Threading.Tasks;
using SevenZip.Compression.LZMA;
namespace Icarus.Controllers.Utilities
{
public class SongCompression
{
#region Fields
byte[] _uncompressedSong;
#endregion
#region Propterties
#endregion
#region Constructors
public SongCompression()
{
}
public SongCompression(byte[] uncompressedSong)
{
_uncompressedSong = uncompressedSong;
}
#endregion
#region Methods
//public async Task<byte[]> CompressedSong(byte[] uncompressedSong)
public async Task<byte[]> CompressedSong(byte[] uncompressedSong)
{
byte[] compressedSong = null;
try
{
//compressedSong = SevenZip.Compression.LZMA.SevenZipHelper.Compress(uncompressedSong);
MemoryStream output = new MemoryStream();
using (DeflateStream dstream = new DeflateStream(output, CompressionLevel.Optimal))
{
dstream.Write(uncompressedSong, 0, uncompressedSong.Length);
compressedSong = output.ToArray();
}
}
catch (Exception ex)
{
var exMsg = ex.Message;
Console.WriteLine("An error ocurred:");
Console.WriteLine(exMsg);
}
return compressedSong;
}
#endregion
}
}