问题描述
我使用媒体插件从ios和Android设备中选择视频,但是流的大小非常大, 我的问题是如何减少该流发送到服务器。
var file = await CrossMedia.Current.PickVideoAsync();
if (file != null)
{
stream = file.GetStream();
byte[] result;
using (var streamReader = new MemoryStream())
{
stream.copyTo(streamReader);
result = streamReader.ToArray();
}
}
解决方法
您可以设置 CompressionQuality ,该值是从0一直压缩到100的值。
var file = await CrossMedia.Current.TakeVideoAsync(new StoreVideoOptions
{
CompressionQuality = 85,Quality = VideoQuality.Medium
});
更新
using System.IO;
using System.IO.Compression;
public static byte[] Compress(byte[] data)
{
var output = new MemoryStream();
using (var dstream = new DeflateStream(output,CompressionLevel.Optimal))
{
dstream.Write(data,data.Length);
}
return output.ToArray();
}