![]() |
Re: Audiodateien einbinden
das bsp von jens läuft bei mir problemlos, werde es mal mit anderen ressourcen testen
raik |
Re: Audiodateien einbinden
Moin Häcki,
eigentlich steht hier im Thread schon alles was Du brauchst. Ich fasse das mal zusammen: Du erstellst eine Textdatei mit der Endung RC. In dieser schreibst Du eine (ggf. auch mehrere) Zeile, die folgenden Aufbau hat: NameDerResource TypDerResource PfadZuDerDateiDieDieResourceEnthält NameDerResource meint die Bezeichnung, unter der Du die Resource später im Programm ansprechen kannst. TypDerResource bezeichnet einen vordefinierten Resourcentyp, z.B. WAVE oder BITMAP, oder einen selbsterdachten, was hier aber keine Rolle spielen wird. PfadZuDerDateiDieDieResourceEnthält gibt den Namen der Resourcendatei an, und den Pfad, der auch relativ zur Lage der RC Datei angegeben werden kann (bei Leerzeichen im Pfad in "" einschliessen) Beispiel: bild BITMAP Graphics\Photo.bmp es soll eine Resource vom Typ BITMAP eingebunden werden, die im Programm mit der Bezeichnung bild angesprochen werden kann. Hierzu soll die Datei Photo.bmp hinzugefügt werden, die sich im Verzeichnis Graphics befindet, das sich im gleichen Verzeichnis befindet, wie die RC Datei. Du könntest jetzt also eine Datei erstellen, als Beispiel nenne ich sie SOUNDFILE.RC. Da hinein kommt eine Zeile: MySound WAVE MySound.wav Nur zur Sicherheit, falls Jens' Variante nicht funktioniert, kannst Du jetzt eine Resourcendatei erstellen: Konsole öffnen, BRCC32 eingeben, und die SOUNDFILE.RC per Drag&Drop in das Konsolenfenster ziehen. Enter. Jetzt sollte der Resourcencompiler eine SOUNDFILE.RES im gleichen Verzeichnis angelegt haben, in der sich auch die SOUNDFILE.RC befindet. Und jetzt folgt nur noch ein Ausschnitt aus der Unit in der die Datei abgespielt werden soll (wichtig: unter uses die unit mmsystem mit einbinden):
Delphi-Quellcode:
Fertig.
implementation
uses mmsystem; {$R *.DFM} {$R SOUNDFILE.RES} // Abspielen der Wavedateiresource procedure TForm1.Button1Click(Sender: TObject); begin // 'MySound' = Name der Resource (erster Wert in der RC Datei) // 0 = Handle zur Datei aus der die Resource geladen werden // soll. Wird hier nicht gebraucht, da diese EXE auch // die Resource enthält. Man kann auch hInstance angeben // SND_RESOURCE = Der erste Parameter gibt den Namen einer Resource an // SND_ASYNC = Die Funktion startet das Abspielen, und kehrt dann // sofort zurück. // Ansonsten würde das Ende des Abspielens abgewartet, // und das Programm würde an dieser Stelle stehenbleiben PlaySound('MySound',0,SND_RESOURCE or SND_ASYNC); end; // Abspielen stoppen procedure TForm1.Button2Click(Sender: TObject); begin // nil = Das Abspielen der aktuellen Wavedatei wird beendet PlaySound(nil,0,0); end; Jetzt kann man mit Button1 die Wavedatei aus der Resource abspielen, und das Abspielen mit Button2 stoppen. |
Re: Audiodateien einbinden
Vielen dank!!!!!!!!!!
Das ist sehr ausführlich und verständlich geschrieben.Ich habe es ausprobiert und mein programm läuft jetzt. :dancer2: :dancer2: :dancer2: :bounce1: :bounce1: :bounce1: :hello: :hello: :hello: Gruss häcki :hi: |
Re: Audiodateien einbinden
hmmm kann mir vllt einer sagen wo mein fehler liegt???
Delphi-Quellcode:
ich weiss nicht warum aber wenn ich auf den button klicke dann passiert nichts....
unit Unit1;
interface uses Windows, mmsystem, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} {$R song2.RES} procedure TForm1.Button1Click(Sender: TObject); begin PlaySound('song2' ,0,SND_RESOURCE or SND_ASYNC); end; end. die dateien song2.wav song2.rc und song2.res befinden sich alle im Ordner ....\DELPHI\BIN |
Re: Audiodateien einbinden
Zitat:
N8i, Fabian |
Re: Audiodateien einbinden
wenn es nur um sounddateien geht, warum nutzt ihr nicht den mediaplayer? :gruebel:
|
Re: Audiodateien einbinden
Hallo,
ich erhalte folgende Fehlermeldung beim Kompilieren: [Fehler] WARNING. Duplicate resource(s): [Fehler] Type WAVE, ID WAVERESOURCE: nachdem ich eine Sounddatei als Ressource eingebunden habe. .wav, .rc und .res sind alle im Projektordner, wo auch die brcc32.exe ist. Der Progcode des implementation Teils:
Delphi-Quellcode:
implementation
uses mmsystem; {$R *.DFM} {$R bicasso.res} procedure TForm1.Button1Click(Sender: TObject); begin // Sounds stoppen PlaySound(nil,0,0); // Wavedatei aus Resource abspielen (SND_RESOURCE) und // nicht warten, bis das Abspielen beendet ist (SND_ASYNC) PlaySound('Waveresource',hInstance,SND_RESOURCE or SND_ASYNC); end; procedure TForm1.Button2Click(Sender: TObject); begin // Sounds stoppen PlaySound(nil,0,0); end; end. Wo liegt mein Fehler? Kann mit der Fehlermeldung rehct wenig anfangen... Jan |
Re: Audiodateien einbinden
Also ich verwende die mediaplayer in Delphi für soundwiedergabe.... sind easy zu benutzen:
Delphi-Quellcode:
Eigenschaften vom player selbst auf visible=false setzen, dann sieht man ihn nicht, und bedienen kannst Du ihn auch über buttons oä marke eigenbau
MediaPlayer20: TMediaPlayer;
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin MediaPlayer1.filename:=(ExtractFilePath(ParamStr(0)) + 'data\musik\chargeneration1.mp3'); MediaPlayer1.open; MediaPlayer1.play; end; usw :wink: just my 2 cents... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz