On 01/06/2015 08:35 AM, Michael Thompson wrote:
On 6 January 2015 at 17:48, Philippe <[email protected] <mailto:[email protected]>> wrote:

> "fs" does not appear in http://wiki.freepascal.org/TMPlayerControl

Correct. -fs is an input parameter to mplayer. These aren't explicitly covered in the wiki as mplayer documentation covers them elsewhere.

> And my "question" is still about TMPlayerControl, not with MPlayer ...

Well, TMPlayerControl is only a thin wrapper over mplayer, so there's significant overlap.

However, to be clear TMPlayerControl does not support fullscreen. I've now confirmed your results, and simply adding -fs to StartParam is not sufficient.

If you're interested, it looks like the issue is down to the -wid parameter (which sets the display window handle). If I comment out the two -wid lines in MPlayerCtrl.pas (line 665, 666), and insert -fs instead, then fullscreen works.

No easy workaround available I'm afraid. Looks like a code change in MPlayerCtrl is required implementing a .FullScreen property. However, I still can't see how we'd toggle fullscreen, I can only see how to either start in FullScreen or in a Window. And that caveat from the mplayer documentation would still hold - not all drivers are supported.

Patches welcome :-)



I played with this for a few minutes and came up with this:
MPlayerControl1.OnPlaying has to be assigned for MPlayerControl1.Position to work.

procedure TForm1.FullScreenCheckBoxChange(Sender: TObject);
var
  ScreenBounds: types.TRect;
  PlayerPosition: Single;
begin
  PlayerPosition := MPlayerControl1.Position;
  MPlayerControl1.Stop;

  if FullScreenCheckBox.Checked then
  begin
    FSForm := TForm.Create(Self); //FSForm is a variable in TForm1
    FSForm.BorderStyle:=bsNone;
    FSForm.Color:=clBlack;
    ScreenBounds := Screen.MonitorFromWindow(Handle).BoundsRect;
    with ScreenBounds do
      FSForm.SetBounds(Left, Top, Right - Left, Bottom - Top);
    FSForm.Visible:=True;

    MPlayerControl1.Parent := FSForm;
  end
  else
  begin
    MPlayerControl1.Parent := Self;
    FSForm.Free;
  end;

  MPlayerControl1.Play;
  MPlayerControl1.Position := PlayerPosition;
end;

Andrew
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to