コード例 #1
0
 public static void StartEncodingButton_OnClick(object sender, EventArgs e)
 {
     Task.Run(() => {
         try
         {
             if (!FileBrowser.GetExternalPermissions())
             {
                 return;
             }
             VideoEncoder.EncodeProgressBar.Progress = 0;
             var codec = new MediaCodecHelper
                         .FileToMp4(Android.App.Application.Context, Convert.ToInt32(EncoderFpsEditText.Text), 1,
                                    Convert.ToInt32(VideoEncoder.EncoderWidthEditText.Text),
                                    Convert.ToInt32(VideoEncoder.EncoderHeightEditText.Text),
                                    Convert.ToInt32(VideoEncoder.EncoderBitRateEditText.Text /*int*/) * 1000 /* = kbps */);
             codec.Progress         += OnEncoderProgress;
             string inputPath        = "";
             string outputPath       = "";
             var fileName            = "";
             Android.Net.Uri tempuri = null;
             if (MediaCodecHelper.FileToMp4.InputUriToEncode == null)
             {
                 inputPath = ViewHelpers.VideoEncoder.EncoderSourceEditText.Text;
                 tempuri   = Android.Net.Uri.Parse(inputPath);
                 fileName  = tempuri.LastPathSegment.Split(@"/").ToList <string>().Last();
                 //I had to trim this because bitchute will actually completely drop files that have long names into a 404 khole
                 outputPath = $"{MediaCodecHelper.FileToMp4.GetWorkingDirectory()}{fileName.Replace(".mp4", "")}_cp_{new System.Random().Next(0, 777)}.mp4";
             }
             else
             {
                 tempuri    = MediaCodecHelper.FileToMp4.InputUriToEncode;
                 fileName   = MediaCodecHelper.FileToMp4.InputUriToEncode.LastPathSegment.Replace(":", "");
                 outputPath = $"{MediaCodecHelper.FileToMp4.GetWorkingDirectory()}{fileName?.Replace(".mp4", "")}_cp_{new System.Random().Next(0, 777)}.mp4";
             }
             codec.Start(MediaCodecHelper.FileToMp4.InputUriToEncode, outputPath, inputPath);
         }
         catch (Exception ex) { Console.WriteLine(ex); }
     });
 }