Autor Beitrag
sonnenschein_78
Hält's aus hier
Beiträge: 8

Win XP
Delphi 7
BeitragVerfasst: Mo 24.07.06 21:38 
Hallo
Wie kann ich die Lautstärke eines Video´s das ich mit dem Mediaplayer abspiele ändern? (Like Windows Media Player)
Ich programmiere mit Delphi 7.
Habe im I-net viel gesucht aber nichts passendes gefunden.
z.B. www.swissdelphicente.../showcode.php?id=618

const
MCI_SETAUDIO = $0873;
MCI_DGV_SETAUDIO_VOLUME = $4002;
MCI_DGV_SETAUDIO_ITEM = $00800000;
MCI_DGV_SETAUDIO_VALUE = $01000000;
MCI_DGV_STATUS_VOLUME = $4019;

Leider werde ich aus der Wertebelegung der Konstanten nicht schlau.
Ich habe mich schon mit dem Media Control Interface(MCI) via MSDM beschäftigt. Dort habe ich aber auch nichts dazu gefunden.


Eine andere Möglichkeit soll eine BASS.dll sein, aber leider habe ich keine Seite mit dem Download der Datei inclusive Hilfedatei gefunden.

Vielen Dank für eure Mühe
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 25.07.06 06:57 
Hallo und :welcome: in der Entwickler-Ecke!

Ich kann dir zwar nicht direkt helfen, weiß aber, dass es die bass.dll hier gibt, und dass man sie nicht zum Abspielen von Videos gebrauchen kann. Dafür ist DSPack eher was.

_________________
We are, we were and will not be.
sonnenschein_78 Threadstarter
Hält's aus hier
Beiträge: 8

Win XP
Delphi 7
BeitragVerfasst: Di 25.07.06 12:40 
Danke für deine Antwort. Ich werde es mal mit dem DSPack probieren.

Meine Frage ist aber hinsichtlich der Konstanten noch nicht beantwortet.
Mit dem Sourcecode vom oberen Link kann ich die Lautstärke von Videos(mediaplayer) ändern.
Mein Verständnis für MCI ist etwas schwammig und die Wertebelegung der Konstanten verstehe ich nicht.
Solange ich nicht verstanden habe wie das funktioniert, kann ich auch den Sourcecode nicht benutzen.

Eine Hilfe wäre mir zum Beispiel ein Link auf eine Seite auf der ich meine geistigen Defizite hinsichtlich der Problematik beseitigen könnte.

THX
smepal
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 68

Win XP, Linux Mandbrake,SUSE 10.1, SUSE 9 PE, DEBIAN, Win 2000 Pro, Win XP Pro
Delphi
BeitragVerfasst: Do 03.08.06 19:39 
Zitat:
...die Lautstärke des TMediaplayers einstellen?
Autor: Unknown
[ Tip ausdrucken ]

Tip Bewertung (47):


ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
uses
  MPlayer, MMSystem;

const
  MCI_SETAUDIO = $0873;
  MCI_DGV_SETAUDIO_VOLUME = $4002;
  MCI_DGV_SETAUDIO_ITEM = $00800000;
  MCI_DGV_SETAUDIO_VALUE = $01000000;
  MCI_DGV_STATUS_VOLUME = $4019;

type
  MCI_DGV_SETAUDIO_PARMS = record
    dwCallback: DWORD;
    dwItem: DWORD;
    dwValue: DWORD;
    dwOver: DWORD;
    lpstrAlgorithm: PChar;
    lpstrQuality: PChar;
  end;

type
  MCI_STATUS_PARMS = record
    dwCallback: DWORD;
    dwReturn: DWORD;
    dwItem: DWORD;
    dwTrack: DWORD;
  end;

procedure SetMPVolume(MP: TMediaPlayer; Volume: Integer);
  { Volume: 0 - 1000 }
var
  p: MCI_DGV_SETAUDIO_PARMS;
begin
  { Volume: 0 - 1000 }
  p.dwCallback := 0;
  p.dwItem := MCI_DGV_SETAUDIO_VOLUME;
  p.dwValue := Volume;
  p.dwOver := 0;
  p.lpstrAlgorithm := nil;
  p.lpstrQuality := nil;
  mciSendCommand(MP.DeviceID, MCI_SETAUDIO,
    MCI_DGV_SETAUDIO_VALUE or MCI_DGV_SETAUDIO_ITEM, Cardinal(@p));
end;

function GetMPVolume(MP: TMediaPlayer): Integer;
var 
  p: MCI_STATUS_PARMS;
begin
  p.dwCallback := 0;
  p.dwItem := MCI_DGV_STATUS_VOLUME;
  mciSendCommand(MP.DeviceID, MCI_STATUS, MCI_STATUS_ITEM, Cardinal(@p));
  Result := p.dwReturn;
  { Volume: 0 - 1000 }
end;

// Example, Beispiel:

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetMPVolume(MediaPlayer1, 500);
end;

wo ist das Problem?



www.swissdelphicente.../showcode.php?id=618
sonnenschein_78 Threadstarter
Hält's aus hier
Beiträge: 8

Win XP
Delphi 7
BeitragVerfasst: Do 03.08.06 21:31 
Das Problem ist, dass ich nicht verstehe wieso
MCI_SETAUDIO den Wert $0873 und MCI_DGV_SETAUDIO_VOLUME den Wert $4002 hat.
bei den folgenden analog
MCI_DGV_SETAUDIO_ITEM = $00800000;
MCI_DGV_SETAUDIO_VALUE = $01000000;
MCI_DGV_STATUS_VOLUME = $4019;

Es funktioniert aber was bedeuten diese Werte????
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 04.08.06 07:51 
Die bedeuten gar nichts. Das sind einfach fest definierte Werte, die irgendein findiger Programmierer bei Microsoft mal so festgelegt hat.

Es sind einfach Konstanten in der Windwos-Welt, so wie es im Universum auch Konstanten gibt, auf die wir keinen Einfluß haben. Gerüchten zufolge ist zwar eine gewisse Spezies im All in der Lage, Dinge wie die Gravitationskonstante zu ändern, aber Q redet öfter mal Blödsinn.
Genauso wenig ist es dem Normalprogrammierer möglich, MCI_DGV_SETAUDIO_ITEM zu ändern.

_________________
We are, we were and will not be.
sonnenschein_78 Threadstarter
Hält's aus hier
Beiträge: 8

Win XP
Delphi 7
BeitragVerfasst: Fr 04.08.06 09:37 
Vielen Dank für deine Antwort Gausi
Damit ist mein Problem gelöst.
PS: Dieses Forum ist das beste Delphi-Forum das ich kenne.

Vielen Dank nochnmal.