mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-05-04 08:34:07 +02:00
Add a volume slider to video player
This commit is contained in:
parent
06d2a5f715
commit
f93e275ddf
video/TweetDuck.Video
26
video/TweetDuck.Video/FormPlayer.Designer.cs
generated
26
video/TweetDuck.Video/FormPlayer.Designer.cs
generated
@ -26,7 +26,9 @@ private void InitializeComponent() {
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.player = new TweetDuck.Video.ControlWMP();
|
||||
this.timer = new System.Windows.Forms.Timer(this.components);
|
||||
this.trackBarVolume = new System.Windows.Forms.TrackBar();
|
||||
((System.ComponentModel.ISupportInitialize)(this.player)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.trackBarVolume)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// player
|
||||
@ -35,7 +37,7 @@ private void InitializeComponent() {
|
||||
this.player.Enabled = true;
|
||||
this.player.Location = new System.Drawing.Point(0, 0);
|
||||
this.player.Name = "player";
|
||||
this.player.Size = new System.Drawing.Size(120, 120);
|
||||
this.player.Size = new System.Drawing.Size(236, 120);
|
||||
this.player.TabIndex = 0;
|
||||
//
|
||||
// timer
|
||||
@ -43,12 +45,30 @@ private void InitializeComponent() {
|
||||
this.timer.Interval = 10;
|
||||
this.timer.Tick += new System.EventHandler(this.timer_Tick);
|
||||
//
|
||||
// trackBarVolume
|
||||
//
|
||||
this.trackBarVolume.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.trackBarVolume.AutoSize = false;
|
||||
this.trackBarVolume.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.trackBarVolume.Location = new System.Drawing.Point(72, 94);
|
||||
this.trackBarVolume.Maximum = 100;
|
||||
this.trackBarVolume.Name = "trackBarVolume";
|
||||
this.trackBarVolume.Size = new System.Drawing.Size(164, 26);
|
||||
this.trackBarVolume.SmallChange = 5;
|
||||
this.trackBarVolume.TabIndex = 1;
|
||||
this.trackBarVolume.TickFrequency = 10;
|
||||
this.trackBarVolume.TickStyle = System.Windows.Forms.TickStyle.None;
|
||||
this.trackBarVolume.Visible = false;
|
||||
this.trackBarVolume.ValueChanged += new System.EventHandler(this.trackBarVolume_ValueChanged);
|
||||
this.trackBarVolume.MouseUp += new System.Windows.Forms.MouseEventHandler(this.trackBarVolume_MouseUp);
|
||||
//
|
||||
// FormPlayer
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(120, 120);
|
||||
this.ClientSize = new System.Drawing.Size(236, 120);
|
||||
this.ControlBox = false;
|
||||
this.Controls.Add(this.trackBarVolume);
|
||||
this.Controls.Add(this.player);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.Location = new System.Drawing.Point(-32000, -32000);
|
||||
@ -61,6 +81,7 @@ private void InitializeComponent() {
|
||||
this.Text = "TweetDuck Video";
|
||||
this.Load += new System.EventHandler(this.FormPlayer_Load);
|
||||
((System.ComponentModel.ISupportInitialize)(this.player)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.trackBarVolume)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
@ -69,6 +90,7 @@ private void InitializeComponent() {
|
||||
|
||||
private ControlWMP player;
|
||||
private System.Windows.Forms.Timer timer;
|
||||
private System.Windows.Forms.TrackBar trackBarVolume;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,13 +20,17 @@ public FormPlayer(IntPtr handle, string url){
|
||||
player.Ocx.enableContextMenu = false;
|
||||
player.Ocx.uiMode = "none";
|
||||
player.Ocx.settings.setMode("loop", true);
|
||||
|
||||
|
||||
player.Ocx.MediaChange += player_MediaChange;
|
||||
player.Ocx.MediaError += player_MediaError;
|
||||
|
||||
trackBarVolume.Value = 25; // changes player volume
|
||||
|
||||
Application.AddMessageFilter(new MessageFilter(this));
|
||||
}
|
||||
|
||||
// Events
|
||||
|
||||
private void FormPlayer_Load(object sender, EventArgs e){
|
||||
player.Ocx.URL = videoUrl;
|
||||
}
|
||||
@ -39,6 +43,8 @@ private void timer_Tick(object sender, EventArgs e){
|
||||
|
||||
ClientSize = new Size(Math.Min(media.imageSourceWidth, width*3/4), Math.Min(media.imageSourceHeight, height*3/4));
|
||||
Location = new Point(rect.Left+(width-ClientSize.Width)/2, rect.Top+(height-ClientSize.Height+SystemInformation.CaptionHeight)/2);
|
||||
|
||||
trackBarVolume.Visible = ClientRectangle.Contains(PointToClient(Cursor.Position)) || trackBarVolume.Focused;
|
||||
}
|
||||
else{
|
||||
Environment.Exit(Program.CODE_OWNER_GONE);
|
||||
@ -57,6 +63,14 @@ private void player_MediaError(object pMediaObject){
|
||||
Environment.Exit(Program.CODE_MEDIA_ERROR);
|
||||
}
|
||||
|
||||
private void trackBarVolume_ValueChanged(object sender, EventArgs e){
|
||||
player.Ocx.settings.volume = trackBarVolume.Value;
|
||||
}
|
||||
|
||||
private void trackBarVolume_MouseUp(object sender, MouseEventArgs e){
|
||||
player.Focus();
|
||||
}
|
||||
|
||||
// Controls & messages
|
||||
|
||||
private void TogglePause(){
|
||||
@ -79,8 +93,12 @@ public MessageFilter(FormPlayer form){
|
||||
|
||||
bool IMessageFilter.PreFilterMessage(ref Message m){
|
||||
if (m.Msg == 0x0201){ // WM_LBUTTONDOWN
|
||||
form.TogglePause();
|
||||
return true;
|
||||
Point cursor = form.PointToClient(Cursor.Position);
|
||||
|
||||
if (!(cursor.X >= form.trackBarVolume.Location.X && cursor.Y >= form.trackBarVolume.Location.Y)){
|
||||
form.TogglePause();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (m.Msg == 0x0203 || (m.Msg == 0x0100 && m.WParam.ToInt32() == 0x20)){ // WM_LBUTTONDBLCLK, WM_KEYDOWN, VK_SPACE
|
||||
form.TogglePause();
|
||||
|
Loading…
Reference in New Issue
Block a user