Entwickler-Ecke

Windows API - Unterschiedliche Lautstärken bei Sound ?


HBriele - Mi 02.03.05 18:51
Titel: Unterschiedliche Lautstärken bei Sound ?
Hallo,
ich benutze folgende Funktion um mehrere Sounds abzuspielen.



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:
uses
  MMSystem;

procedure SendMCICommand(Cmd: string);
var
  RetVal: Integer;
  ErrMsg: array[0..254of char;
begin
  RetVal := mciSendString(PChar(Cmd), nil00);
  if RetVal <> 0 then
  begin
    {get message for returned value}
    mciGetErrorString(RetVal, ErrMsg, 255);
    MessageDlg(StrPas(ErrMsg), mtError, [mbOK], 0);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SendMCICommand('open waveaudio shareable');
  SendMCICommand('play "C:\xyz\BackgroundMusic.wav"');
  SendMCICommand('play "C:\xyz\AnotherMusic.wav"');
  SendMCICommand('close waveaudio');
end;


Nun mein Problem!

Kennt jemand eine Lösung, die Einzelnen Sounds mit Unterschiedlicher Lautstärke abzuspielen? :?:
Am besten regeln zu Laufzeit.

Gruß
HBriele


delfiphan - Mi 02.03.05 19:08

Mit der MCI kommst du da wohl nicht weit. Da musst du wohl oder übel mit der Multimedia API arbeiten. Wenn das zu viel Aufwand ist, hol dir ne Komponente, da gibt es sicher genügend davon.


FrEaKY - Mo 30.04.07 22:44

Ich möchte auch ohne zusätzliche Komponenten die Lautstärke und balance (also mehr links oder rechts) regeln können für einzelne sounds. Hab aber nix hier dazu gefunden im Forum und auch bei google kam nur Müll raus.
Kannst du mir sagen wie man dabei am besten anfängt wenn man das mti der MultimediaAPI machen will?
Danke


HBriele - Di 01.05.07 11:04

user profile iconFrEaKY hat folgendes geschrieben:
Ich möchte auch ohne zusätzliche Komponenten die Lautstärke und balance (also mehr links oder rechts) regeln können für einzelne sounds.....Danke

Hallo,
ich hatte auch lange gesucht,
dann hatte ich die Komponente von Signal Lab verwendet.
Der Nachteil, sehr viele DLL’s ca. 50 Stück.

Dann hab ich BASE 20 genommen, hier brauchst Du nur eine DLL einzubinden und kannst fast alles damit machen (Mehrer Player, Crossfading, FXe u. s. w.).

Gruß


Memorius - Di 03.07.07 15:58

hmm BASE 20 find ich nirgens... kannst du mir einen link schicken?
Oder weiß vll. jemand wie man die lautstärke mit dem TMediaPlayer regelt?

thx,
memo


HBriele - Do 05.07.07 11:24

user profile iconMemorius hat folgendes geschrieben:
hmm BASE 20 find ich nirgens... kannst du mir einen link schicken?
Oder weiß vll. jemand wie man die lautstärke mit dem TMediaPlayer regelt?

thx,
memo


Hallo, schau HIER [http://www.un4seen.com] nach!

Gruß


Memorius - Do 05.07.07 22:44

hm, sieht nach bezahlen aus... nee, davon lass ich vorerst mal die finger...
ich schätz mal die tmediaplayer kompo hat nix in der art drauf?
also von wegen lautstärkeregelung?
mach mir aba schon gar keine hoffnungen... :(
naja, trotzdem danke!
c yaaaaaaaa
memo


alias5000 - Do 05.07.07 23:01

Non-kommerziell ist Bass kostenlos!


Memorius - Fr 06.07.07 15:22

hmm... ok, nochmal reingucken... thx!!!
c ya
memo


Wonko - Fr 06.07.07 16:15

Vielleicht hilft Euch dieser Post in der Open Source-Sparte weiter?

http://www.delphi-forum.de/viewtopic.php?t=70891&highlight=soundcontrol


Saubäär - Fr 06.07.07 22:32

Hallo,

ich habe heute mal ein bisschen rumprobiert und dabei ist diese kleine Unit entstanden, mit der Musik und Videos in unterschiedlicher Lautstärke abgespielt werden können. Die Befehle ähneln der mciSendCommand- Funktion.

Aufrufe:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
uses mmSystem, Mci, ...

 mci1: TMci;


 mci1 := TMci.Create(FileName: Stringconst Panel: Boolean = False); // Panel ist ein ControlPanel. Standardmäßig wird es nicht angezeigt.
 mci1.GetMciVolume;
 mci1.SetMciVolume(Volume); // min: 0 / max: 1000
 mci1.SendMciCommand(MCI_PLAY, 00); // MCI_STOP, MCI_CLOSE u.s.w. // ähnlich mciSendCommand
 mci1.Free;


So, ich hoffe ihr könnt etwas damit anfangen. Bei mir hat es tadellos funktioniert. Bei weiteren Fragen, könnt ihr euch einfach an mich wenden.

Gruß
Saubäär