减少视频大小的Xamarin形式

问题描述

我使用媒体插件从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();
    }