我的部分应用程序(Xamarin Forms - crossplatform)需要减少视频文件的大小。iOS自己做,但安卓不做。对于照片,我这样做:
public byte[] CompressImage(byte[] imageData, int imageQuality, int imageWidth, int imageHeight)
{
int smallToBigWidth = imageWidth / 2;
int smallToBigHeight = imageHeight / 2;
Bitmap originalImage = BitmapFactory.DecodeByteArray(imageData, 0, imageData.Length);
float proportions = (float)imageHeight / (float)originalImage.Height;
float newWidth = (float)originalImage.Width * proportions;
originalImage = Bitmap.CreateScaledBitmap(originalImage, (int)newWidth, imageHeight, false);
using (MemoryStream ms = new MemoryStream())
{
originalImage.Compress(Bitmap.CompressFormat.Jpeg, imageQuality, ms);
return ms.ToArray();
}
}但是,如何处理视频,以便当您从图库中选择一个文件时,您可以在不将新文件保存在手机上的情况下获得一个简化版本?我使用MediaPicker下载该文件
var file = await MediaPicker.PickVideoAsync ();并获取一个FileResult类型的文件,这是我希望在压缩后实现的类型。有人有什么想法吗?我肯定到处都找遍了,什么也没看。
发布于 2022-03-17 07:37:33
对于安卓系统,你可以使用Transcoder。https://github.com/natario1/Transcoder
https://stackoverflow.com/questions/71493452
复制相似问题