|
@@ -0,0 +1,41 @@
|
|
|
|
+using Avalonia.Controls;
|
|
|
|
+using Avalonia.Media;
|
|
|
|
+using InABox.Avalonia;
|
|
|
|
+using InABox.Avalonia.Platform;
|
|
|
|
+using InABox.Core;
|
|
|
|
+using System;
|
|
|
|
+using System.Collections.Generic;
|
|
|
|
+using System.Linq;
|
|
|
|
+using System.Text;
|
|
|
|
+using System.Threading.Tasks;
|
|
|
|
+
|
|
|
|
+namespace PRS.Avalonia.DigitalForms;
|
|
|
|
+
|
|
|
|
+class DFEmbeddedVideoFieldControl : DFEmbeddedMediaFieldControl<DFLayoutVideoField, DFLayoutVideoFieldProperties, byte[]>
|
|
|
|
+{
|
|
|
|
+ protected override bool DisableLibrary => Field.Properties.DisableLibrary;
|
|
|
|
+
|
|
|
|
+ protected override bool IsVideo => true;
|
|
|
|
+
|
|
|
|
+ public override byte[] GetValue() => _value.Data ?? [];
|
|
|
|
+
|
|
|
|
+ public override void SetValue(byte[] value)
|
|
|
|
+ {
|
|
|
|
+ SetSerializedValue(new() { Data = value });
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ protected override Task<MobileDocument> CaptureMedia()
|
|
|
|
+ {
|
|
|
|
+ return MobileDocument.From(App.TopLevel, new MobileDocumentVideoOptions());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ protected override byte[] CreateThumbnail(byte[] data, int maxWidth = 256, int maxHeight = 256)
|
|
|
|
+ {
|
|
|
|
+ return PlatformTools.ImageTools.CreateVideoThumbnail(data, maxWidth, maxHeight);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ protected override Task<MobileDocument> SelectMedia()
|
|
|
|
+ {
|
|
|
|
+ return MobileDocument.From(App.TopLevel, new MobileDocumentVideoLibraryOptions());
|
|
|
|
+ }
|
|
|
|
+}
|