Intento variar el brillo de un vídeo reproducido con un TMediaPlayer usando las api multimedia de windows, pero no me funciona. El código que estoy usando lo pongo a continuación. Alguno me puede ayudar, porque obviamente algo esta mal pero no consigo averiguar que es.
Código Delphi
[-]
unit RegularBrillo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, MPlayer, MMSystem, ExtCtrls, StdCtrls, OleCtnrs;
type
MCI_DGV_SETVIDEO_OUTPUT = Record
dwCallBack: DWORD;
dwItem: DWORD;
dwValue: DWORD;
dwOver: DWORD;
LpstrQuality: PChar;
LpstrAlgorithm: PChar;
dwSourceNumber: DWORD;
end;
procedure TVentanaVideo.AsignaBrillo(MP:TMediaPlayer;Nivel:Integer);
var p:MCI_DGV_SETVIDEO_OUTPUT;
begin
p.dwCallBack:=0;
p.dwItem:=$4000;
p.dwValue:=Nivel;
p.dwOver:=0;
p.LpstrQuality:=nil;
p.LpstrAlgorithm:=nil;
p.dwSourceNumber:=0;
mciSendCommand(MP.DeviceID,$0000876,$1000000 or $4000000,Cardinal(@p));
end;
procedure TVentanaVideo.BrilloChange(Sender: TObject);
begin
AsignaBrillo(Video1,1000-Brillo.Position);
Label1.Caption:=IntToStr((1000-Brillo.Position)Div 10)+' %';
end;