Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Repeat Funktion (https://www.delphipraxis.net/62439-repeat-funktion.html)

Bartmän 4. Feb 2006 16:00


Repeat Funktion
 
Hallo,
Ich versuche gerade meinem Programm einen Hintergrundsound zuverpassen. Es soll eigentlich immer der gleiche sein und sich ständig wiederholen. Im Moment habe ich den so programmiert Mediaplayer,dass er beim start sofort aktiviert wird, unsichtbar ist . Eigentlich geht er schon, bis auf, dass er nicht das Lied wiederholt.


Danke schonmal im Voraus und bitte möglichst einfache Antworten, weil ich erst seit 1 Woche Erfahrungen mit programmieren habe.

Flocke 4. Feb 2006 17:27

Re: Repeat Funktion
 
Als Alternative zum Media-Player kann ich dir anbieten, den Hintergrundsound als Ressource in dein Programm einzubinden und einfach so abzuspielen:

Delphi-Quellcode:
{$R hintergrund.res}

procedure Hintergrundklang(AnAus: boolean);
begin
  if AnAus then
    PlaySound('BACKGROUND', hInstance, SND_ASYNC or SND_LOOP or SND_RESOURCE)
  else
    PlaySound(nil, hInstance, 0);
end;
Um die Datei hintergrund.res aus einer MP3-Datei zu machen, kannst du dieses Tool von mir nehmen.

lebbesch007 5. Feb 2006 11:32

Re: Repeat Funktion
 
Komischerweise erhält man aber dann diesen Fehler:

[Fehler] E2161 RLINK32: Too many resources to handle.

3_of_8 5. Feb 2006 11:35

Re: Repeat Funktion
 
Hast du überhaupt eine Ressource eingebunden? Und wenn ja, dann entferne kurz die Direktive zum Einbinden, kompiliere, und dann schreib sie wieder rein.

lebbesch007 5. Feb 2006 11:47

Re: Repeat Funktion
 
"Direktive zum Einbinden"? :gruebel: ,Ressource?

Airblader 5. Feb 2006 11:49

Re: Repeat Funktion
 
{$R hintergrund.res} ist die Direktive und die Ressource solltest du schon einbinden, denn er kann ja nicht abspielen, was nicht da ist ;)

air

lebbesch007 5. Feb 2006 11:51

Re: Repeat Funktion
 
hintergrund.res hatte ich probiert und drin, aber was für ne ressource?- was muss man da eintippen?

Flocke 5. Feb 2006 14:37

Re: Repeat Funktion
 
Hast du die Datei hintergrund.res denn auch erstellt?
Was für Ressourcen sind denn da drin?

Hier eine Anleitung für das Tool von mir:
1. Tool starten
2. MP3-Datei per Drag&Drop aus dem Explorer draufziehen
3. Den Button "Convert to wave / res" klicken
4. Dort die Option "(*) Convert to RES file" aktivieren
5. Bei "Name" einen Namen ausdenken und merken (hier: hintergrund)
6. Bei "Filename" dein Projektverzeichnis plus hintergrund.res auswählen
7. Den "OK"-Button klicken

Dann hast du eine Ressourcendatei hintergrund.res, die du mit {$R hintergrund.res} in dein Programm einbinden kannst.

lebbesch007 5. Feb 2006 19:28

Re: Repeat Funktion
 
Vielen Dank für deine Bemühungen aber irgendwie scheint es, obwohl ich alles so gemacht habe immer noch nicht zu Funtionieren (mein Code:)
Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm2 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.nfm}

{$R hintergrund.res}

procedure TForm2.FormCreate(Sender: TObject);
begin

end;

procedure Hintergrundklang(AnAus: boolean);
begin
  if AnAus then
    PlaySound('hintergrund', hInstance, SND_ASYNC or SND_LOOP or SND_RESOURCE)
  else
    PlaySound(nil, hInstance, 0);
end;

end.

PlaySound, hinstance etc, streicht Delphi rot an!
Die Datei hintergrund.res befindet sich im Verzeichnis.

Flocke 5. Feb 2006 21:27

Re: Repeat Funktion
 
Für PlaySound brauchst du MMSystem in der uses-Liste. So etwas findest du leicht, indem du einfach den Cursor auf PlaySound positionierst und F1 drückst bzw. in der Hilfe über den Index nach PlaySound suchst.

Nachtrag:

Ich sehe gerade das {$R *.nfm} - dein Projekt ist ein VCL.NET-Projekt? Dann vergiss bitte alles, was ich bisher geschrieben habe...


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz