4 changed files with 172 additions and 44 deletions
@ -0,0 +1,122 @@
|
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.Linq; |
||||
using System.Text; |
||||
using CPF; |
||||
using CPF.Drawing; |
||||
using CPF.Controls; |
||||
using CPF.Shapes; |
||||
using CPF.Styling; |
||||
using CPF.Animation; |
||||
using CPF.Svg; |
||||
using CPF.Input; |
||||
using static System.Net.Mime.MediaTypeNames; |
||||
|
||||
namespace AKS.EnterpriseLibrary.WebBrowser |
||||
{ |
||||
public class AksVideoPlayer : Control |
||||
{ |
||||
/// <summary> |
||||
/// apt-get install libvlc-dev |
||||
/// apt-get install vlc |
||||
/// </summary> |
||||
public string videoTitle = string.Empty; |
||||
public string url = string.Empty; |
||||
private VideoView vplayer = null; |
||||
public AksVideoPlayer(Window window, string _videoTitle,string _url) |
||||
{ |
||||
vplayer = new VideoView |
||||
{ |
||||
Name = "player", |
||||
PresenterFor = this, |
||||
MarginTop = 50, |
||||
Size = SizeField.Fill, |
||||
Background = Color.Silver |
||||
}; |
||||
videoTitle = _videoTitle; |
||||
url = _url; |
||||
this.window = window; |
||||
window.Children.Add(mask); |
||||
window.Children.Add(this); |
||||
mask.TransitionValue(a => a.Background, "0,0,0,100", TimeSpan.FromSeconds(0.3), null, AnimateMode.Linear); |
||||
//this.TransitionValue(a => a.MarginTop, 100, TimeSpan.FromSeconds(0.3), new PowerEase { }, AnimateMode.EaseOut); |
||||
mask.MouseDown += Mask_MouseDown; |
||||
|
||||
} |
||||
|
||||
private void Mask_MouseDown(object sender, MouseButtonEventArgs e) |
||||
{ |
||||
window.DragMove(); |
||||
} |
||||
|
||||
private Window window; |
||||
protected override void OnInitialized() |
||||
{ |
||||
base.OnInitialized(); |
||||
//@"http://192.168.0.34:92/CaseFile/card/2024-06-03/20240603120112952.mp4" |
||||
vplayer.Play(new Uri(url));//播放 |
||||
} |
||||
protected override void InitializeComponent() |
||||
{ |
||||
IsAntiAlias = true; |
||||
CornerRadius = "3,3,3,3"; |
||||
Height = "80%"; |
||||
Width = "70%"; |
||||
Background = "#2c2c2c"; |
||||
ZIndex = 100; |
||||
Children.Add(new TextBlock |
||||
{ |
||||
MarginRight = 12f, |
||||
MarginTop = 10f, |
||||
Text = "关闭", |
||||
FontSize = 16, |
||||
Cursor = CPF.Cursors.Hand, |
||||
Foreground = Color.White, |
||||
ZIndex = 101, |
||||
Commands = |
||||
{ |
||||
{ |
||||
nameof(MouseDown), |
||||
(s,e)=>Close() |
||||
} |
||||
}, |
||||
Triggers = |
||||
{ |
||||
{ |
||||
nameof(IsMouseOver), |
||||
Relation.Me, |
||||
null, |
||||
(nameof(Foreground),Color.White) |
||||
} |
||||
} |
||||
}); |
||||
|
||||
Children.Add(new TextBlock |
||||
{ |
||||
FontSize = 16f, |
||||
MarginLeft = 12.6f, |
||||
MarginTop = 9.6f, |
||||
Foreground = Color.White, |
||||
Text = videoTitle, |
||||
}); |
||||
|
||||
Children.Add(vplayer); |
||||
} |
||||
|
||||
public void Close() |
||||
{ |
||||
vplayer.Stop(); |
||||
mask.TransitionValue(a => a.Background, "0,0,0,0", TimeSpan.FromSeconds(0.3), null, AnimateMode.Linear, () => |
||||
{ |
||||
window.Children.Remove(mask); |
||||
}); |
||||
|
||||
this.TransitionValue(a => a.MarginTop, -100, TimeSpan.FromSeconds(0.3), new PowerEase { }, AnimateMode.EaseIn, () => |
||||
{ |
||||
window.Children.Remove(this); |
||||
}); |
||||
} |
||||
|
||||
Control mask = new Control { Size = SizeField.Fill, ZIndex = 100, Background = "#00000000" }; |
||||
} |
||||
} |
Loading…
Reference in new issue