Entwickler-Ecke

Multimedia / Grafik - Sound abspielen, wie?


T1g3r - Fr 06.05.05 15:21
Titel: Sound abspielen, wie?
ich will einfach nen sound abspielen lassen der a.wav heißt!!!
der sound ist in dem gleichem ordner wie des prog!
Wie geht des gibt es einen befehl???


mlspider - Fr 06.05.05 22:35

versuchs mal mit:


Delphi-Quelltext
1:
mciSendString(PChar('open "'a.wav'" alias ' + fAliasName), nil00)                    


in die uses gehört noch mmsystem.


mlspider - Fr 06.05.05 22:52

Sorry, habe mich jetzt selber etwas verarscht. So sollte es funktionieren:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure //(zB: TForm1.FormCreate(Sender: TObject);
        const
        FileName = 'a.wav';
        begin
        MCISendString(PChar('play ' + FileName), nil00);
        end;


feivel3333 - Sa 07.05.05 00:56

Sound abspielen geht auch mit

Delphi-Quelltext
1:
SndPlaySound( 'SOUNDDATEI.WAV', SND_ASYNC );                    

Dabei gibt es SND_ASYNC und SND_SYNC. Der Unterschied ist, dass bei ASYNC das Programm weiterläuft, während der Sound abgespielt wird, und bei SYNC das Programm wartet, bis der Sound zu Ende gespielt ist.

mmSystem ist auch hier in der Uses-Sektion einzufügen.

Moderiert von user profile iconmatze: Delphi-Tags hinzugefügt.


Fabian W. - Sa 07.05.05 07:18

SndPlaySound( 'SOUNDDATEI.WAV', SND_ASYNC ); Hat bei mir noch nie funktioniert. Da kommt zwar keine FehlerMeldung aber wenn ich auf den entsprechenden Button klicke nur ein 'beep'.


F34r0fTh3D4rk - Sa 07.05.05 09:01


Delphi-Quelltext
1:
PlaySound('newmessage',HInstance, snd_ASync or snd_Memory or snd_Resource);                    


aus der ressource auch net ? (ok kommt aufn verwendungszweck an ^^)


T1g3r - Mo 09.05.05 08:43

wenn ich die sachen mache kommt immer


Delphi-Quelltext
1:
[Error] URennen.pas(646): Unknown directive: 'SndPlaySound'                    



als fehler warum?


feivel3333 - Mo 09.05.05 08:48

Hast du in der Uses-Sektion

mmSystem

eingefügt?


T1g3r - Mo 09.05.05 09:19

uses-system wo ist des :?:


feivel3333 - Mo 09.05.05 13:10

Nicht "System", sondern "Sektion" oder Bereich.
Ganz oben am Anfang in der Unit steht

USES ......, ...., und so weiter.

Dort muss es angefügt werden.


T1g3r - Mo 09.05.05 15:23

da kommt bei mir aber nen ganz anderer sound jetzt raus so ein "pep"
und net des was soll


feivel3333 - Mo 09.05.05 17:44

Was für ein Ton soll jetzt genau wo herauskommen? Sollen die Töne aus deinen Lautsprechern kommen, die über die Soundkarte laufen, oder willst du nur ein schlichtes Piep, das aus dem PC-Lautsprecher auf dem Mainboard kommt?


Fabian W. - Mo 09.05.05 17:48

seht ihr, das ist das von mir beschriebene Problem, mehr als n beep, kommt da nich.


matze - Mo 09.05.05 20:06

habt ihr das schonmal so probiert:

Delphi-Quelltext
1:
PlaySound(PChar('c:\wave.wav'), hInstance, SND_FileName or SND_ASYNC)                    


Fabian W. - Mo 09.05.05 20:10

Jetzt kommt bei mir n peeb vom Mainboard.


matze - Di 10.05.05 14:49

mit dem code von mir ?
das kann aber eigendlich nicht sein.
existiert die wave datei auch ?
evtl kannste mal den code auf einem anderen rechner testen !


Blackheart - Di 10.05.05 15:10

Funktioniert (Getestet) Wav Datei in den Ordner der Exe


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:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  PlaySOUND(PChar('.\Test.wav'),hInstance,snd_ASync );
end;

end.


T1g3r - Di 10.05.05 15:10

bei mir war das problem einfach das die datei einfach anders hieß.
Ich hab die Datei a.wav genannt aber bei Win xp steht des .wav ja nicht mehr da!!!

So ich hab aber noch ne frage wie geht dass wenn ein lied wiederholt werden soll wenn es fertig ist und wie stopppe ich ein lied das läuft??

mfg Michel


Blackheart - Di 10.05.05 15:17

Oder Mal in der Delphihilfe unter den Begriffen nachschlagen !


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
uses mmsystem;

begin
 {Folgende Flags können benutzt werden:
  SND_SYNC = Spielt den Sound ab, die Anwendung "steht"
  SND_ASYNC = Spielt den Sound ab, die Anwendung läuft weiter
  SND_LOOP = Spielt den Sound endlos}


  {Es können auch mehrere Flags kombiniert werden:}
  flag:=SND_SYNC or SND_LOOP;

  {Abspielen kann man einen Sound dann ganz einfach so:}
  sndPlaySound('sound.wav', Flag);

  {Um einen endlosen Sound zu stoppen, ruft die Funktion mit folgenden
  Parametern auf:}

  sndPlaySound(NIL,0);
end;


T1g3r - Di 10.05.05 15:41

kk ich hab die deutsch delphi-Hilfe nicht!!!
kennt jemand ne seite wo ich lieder als wav datei runterladen kann oder wo ich nen prog bekommen des mp3's in wav umwandelt???


Blackheart - Di 10.05.05 16:12

Schau mal unter google nach CDex ist ein Top Programm und wandelt so ziehmlich jedes Format um, und ist auch noch Freeware.


T1g3r - Di 10.05.05 17:40

irgendwie kann ich des net downloaden


matze - Di 10.05.05 19:03

Suche bei Google RAZORLAME


T1g3r - Mi 11.05.05 15:04

ich glaub ich bin zum bedinen zu dumm :( aber bei mir fängt der mit dem decodieren nicht an????
:cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry:


retnyg - Mi 11.05.05 15:57

du könntest deine mp3's auch direkt abspielen mit der Suche in: Delphi-Forum, Delphi-Library TMEDIAPLAYER komponente

mit ner alten winamp version (z.b. Suche bei Google WINAMP 2.666) kannst du dir mit dem diskwriter plugin auch ne wav aus mp3s erstellen lassen, einfach unter preferences - sound output - statt directX diskwriter plugin auswählen.


Fabian W. - Mi 11.05.05 17:23

Winamp ist doch der Player der Aus 3 einzelfenstern besteht die immer aneinander andocken. Der lädt doch auch'n Icon 'an die Uhr'? Kann ich eigentlich nicht empfehlen, wenn's der is, den ich mein.


T1g3r - Mi 11.05.05 18:05

des hab ich aus nem forum hier um mp3 abzuspielen jetzt habe ich noch eine Frage


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
with MediaPlayer1 do  
begin  
AutoRewind:=True;  
FileName:='C:\Dein Verzeichnis mit Dateiname';  
try  
Open;  
Play;  
finally  
Close; (Oder einfach "Close" weglassen und nichts hinschreiben)  
end;  
end;



Zitat:
Aber vorher natürlich ein TMediaPlayer1 Component erstellen!!


wie erstelle ich ein TMediaPlayer1 Component :?: :?:


Tobias1 - Mi 11.05.05 18:28

Einfach aus dem Reiter System aufs Formular ziehen.


T1g3r - Mi 11.05.05 18:35

Zitat:
Einfach aus dem Reiter System aufs Formular ziehen
:?: :?: :?:
:cry:


Tobias1 - Mi 11.05.05 18:37

Aus der Komponentenleiste in Delphi


T1g3r - Mi 11.05.05 18:42

er macht jetzt keine fehler mehr aber spielt keine musik ab!!!
Ich kann die knöpfe net drücken!!!


Tobias1 - Mi 11.05.05 18:44

Wo hast du den oberen Programmcode eingefügt?


T1g3r - Mi 11.05.05 18:47

bei den knöpfen


Fabian W. - Mi 11.05.05 18:48

bevor must du noch Mediaplayer.open einfügen. eas gibt auch die Eigenschaft autoopen.


Tobias1 - Mi 11.05.05 18:49

Zieh mal einen Button auf die Form, doppelklicke darauf, und füge da wo der Cursor ist den Code von oben ein


Fabian W. - Mi 11.05.05 18:53

Ups, bevor du n neue Datei in Filenam elädtst wäre es ratsam den Player vorher zu schließen.
Code folgt gleich...


Fabian W. - Mi 11.05.05 18:54


Delphi-Quelltext
1:
2:
Mediaplayer1.FileName := Opendialog1.FileName;
Mediaplayer1.Open;

Das müsste reichen. Das kannst de auf nen Button lgen der Vorher Opendialog1.execute gemacht hat.


Tobias1 - Mi 11.05.05 18:57

Soll ein bestimmter Sound abgespielt werden oder soll der Benutzer den Sound öffnen&abspielen können


Fabian W. - Mi 11.05.05 18:59

das ist doch jetzt wurscht, Haupsache er bekommt das ganze jetzt mal irgendwie zum Laufen. Immer über's Ziel hinaus :motz:


T1g3r - Mi 11.05.05 19:03

sorry hey aber ich hab davon keine ahnung kann mir jemand mal ne unit geben die ich nur des einfügen muss und des funzt?


Fabian W. - Mi 11.05.05 19:07


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
if Opendialog1.Execute then
  begin
  Mediaplayer1.FileName := Opendialog1.FileName;
  Mediaplayer1.Open;
  Mediaplayer1.Play;
  end;

Einfach auf Buootn-klick legebn.


Tobias1 - Mi 11.05.05 19:10

Probiers erstmal einfach nur mit der MediaKompo
Wähle im OE
AutoOpen : true
FileName : Irgendeine wav oder mp3 Datei

und klicke auf das Play-Zeichen


Fabian W. - Mi 11.05.05 19:13

Der oben genannte Code funzt. ER braucht nur nen Button die Mediakompo und nen Opendialog. Wie wärs wenn du ihn ersmal das ausprobieren läst??


retnyg - Mi 11.05.05 19:21

user profile iconFabian W. hat folgendes geschrieben:
Winamp ist doch der Player der Aus 3 einzelfenstern besteht die immer aneinander andocken. Der lädt doch acuh n Icon 'an die Uhr'? Kann ich eigentlich nicht empfehlen, wenn's der is, den ich mein.

winamp ist der bekannteste mp3-player... wenn man ihn nur zum mp3->wav konvertieren her nimmt, ist er gut genug. ein jammer, dass er keine mod's abspielen kann...


T1g3r - Mi 11.05.05 19:22

ich will nur das ein lied wenn ich auf nen knopf drücke im hintergrund abgespielt wird


retnyg - Mi 11.05.05 19:23

user profile iconFabian W. hat folgendes geschrieben:
Der oben genannte Code funzt. ER braucht nur nen Button die Mediakompo und nen Opendialog. Wie wärs wenn du ihn ersmal das ausprobieren läst??

wie wärs wenn du ihm einen code ohne opendialog postet ?
für den ists ja schon schwer die mediaplayer kompo alleine einzubinden, soll er sich dann auch noch mit nem opendialog rumschlagen müssen ?


Fabian W. - Mi 11.05.05 19:23

Dann mach das ganze so wie das Tobi gesagt hat.


Fabian W. - Mi 11.05.05 19:24

Zitat:
wie wärs wenn du ihm einen code ohne opendialog postet ?
für den ists ja schon schwer die mediaplayer kompo alleine einzubinden, soll er sich dann auch noch mit nem opendialog rumschlagen müssen ?

ich hab's ihm doch vorgekaut. er braucht blos die drei Kompos einfügen.


retnyg - Mi 11.05.05 20:08

ich habe ein TMediaplayer Tutorial für Dummies erstellt, hier ist der link:
http://www.krazz.net/retnyg/tut/mptut1.htm


T1g3r - Mi 11.05.05 20:36

cool ich probiers nacher aus ^^


T1g3r - Mi 11.05.05 20:44

wenn ich auf den playbuttondrücke schließt des progeinfach


retnyg - Mi 11.05.05 20:45

hast du auch den richtigen pfad zu einem mp3-file angegeben ?


T1g3r - Mi 11.05.05 20:51

ja hab ich


Tobias1 - Mi 11.05.05 20:55

probiers mal mit ner wav File obs da auch abstürzt


retnyg - Mi 11.05.05 20:57

dann poste mal deinen kompletten quellcode, von Unit unit1 bis end.


Blackheart - Mi 11.05.05 21:25

Sag doch einfach mal was Du vor hast, einen Sound abspielen (Wie zum Anfang gefragt) oder einen MP3 Player programmieren ?
Wie Du Sound abspielen kannst wurde beantwortet - Für den MP3 Player hattest du einen Link mit Source Code !
Woran liegt es nun genau !!!


T1g3r - Do 12.05.05 17:02

geht jetzt er schließt des prog wenn ich bei delphi auf play gehe ichmuss des prog nochmal extra öffnen dann gehts


F34r0fTh3D4rk - Fr 13.05.05 14:57

http://www.findsounds.com


retnyg - Fr 13.05.05 14:58

user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
http://www.findsounds.com

was willst du uns damit sagen ?


F34r0fTh3D4rk - Fr 13.05.05 15:02

user profile iconT1g3r hat folgendes geschrieben:
kk ich hab die deutsch delphi-Hilfe nicht!!!
kennt jemand ne seite wo ich lieder als wav datei runterladen kann oder wo ich nen prog bekommen des mp3's in wav umwandelt???


die antwort


mick - Do 07.07.05 11:06

ist es auch moeglich, die .wav-datei in die kompilierte .exe meines delphi-progs zu integrieren, so dass nicht "extern" auf die - bei weitergabe des progs auf einem anderen rechner vielleicht nicht vorhandene - .wav-datei zugegriffen werden muss?

ciao,
mijozi.


nachtrag:
habe schon selbst etwas gefunden:
http://www.delphi-forum.de/viewtopic.php?t=35857&highlight=sound+einbinden


Mischn - Mi 25.10.06 15:32

Kann man eigentlich damit auch mehrere wave-Sounds gleichzeitig abspielen?
Weil wenn im Programm 2-mal eine solche Anweiung steht:
PlaySOUND('blablabla.wav'),hInstance,snd_ASync); dann wird immer der jeweilige, aktuelle Sound durch den anderen ersetzt und läuft nicht mehr weiter! :?

Moderiert von user profile iconmatze: Delphi-Tags hinzugefügt


_Tyrael_ - Sa 24.07.10 16:51

ich habe programmiere gerade ein spiel, das beim start ein lied abspielt, das durchgehend laufen soll:


Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.FormCreate(Sender: TObject);
begin  
  SndPlaySound('Material\Musik.WAV', SND_ASYNC);
end;



wenn jetzt aber eine Figur schießt, kommt der Befehl:


Delphi-Quelltext
1:
 SndPlaySound('Material\Schuss.WAV', SND_ASYNC);                    


welcher auch einwandfrei abgespielt wird, aber sobald der Schuss erklingt, ist die Musik weg, was nicht passieren soll. kann mir da vielleicht jemand helfen?

Moderiert von user profile iconmatze: Delphi-Tags hinzugefügt


elundril - Sa 24.07.10 17:03

Verwend einfach ein paar dynamisch erstellte TMediaPlayer. ;) Oder du steigst komplett auf Bass.dll um, falls du n paar Optionen mehr haben willst (ist aber auch aufwändiger).

lg elundril


_Tyrael_ - So 25.07.10 13:42

vielen dank, das mit dem player war eine gute idee und funktioniert


Lsm09 - Mi 12.01.11 19:14

google mal nach XMedia Recorde. das is ein guter audio und video konverter!


elundril - Mi 12.01.11 23:59

Danke fürs Jesus spielen, jetzt lebt der thread gottseidank wieder...