Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Abspielen einer sounddatei über Mediaplayer (https://www.delphipraxis.net/81266-abspielen-einer-sounddatei-ueber-mediaplayer.html)

Darkchild 23. Nov 2006 18:12


Abspielen einer sounddatei über Mediaplayer
 
Nabend,

mal ne kurze Frage:

Ich bastel mir einen Wecker für den PC, habe einen Timer für das anzeigen der Realen Uhrzeit(Systemzeit) und habe einen bereich zum einstellen der Weckzeit.

So, wenn die Weckzeit erreicht ist habe ich zum Test eine Nachricht ausgeben lassen um zu sehen ob es Funktioniert und siehe da es klappt.
Jetzt möchte ich aber zum Wecken eine beliebige vom User ausgewählte Sounddatei (wav oder mp3)abspielen lassen bei erreichen der Weckzeit. Dafür habe ich den Mediaplayer eingebunden und habe einen Opendialog der den Pfad und den Dateinamen dann übergibt.

Mein Problem jetzt ist das iich es nicht auf die Reihe bekomme den Sound auch abspielen zulassen über den Mediaplayer. HAbe das wie folgt versucht anzubinden:

Delphi-Quellcode:
procedure TfrmweckerMain.TimerZeiteinstellenTimer(Sender: TObject);
var
Startzeit:ttime;
weckzeit:ttime;
lbweckzeit:string;
lbstartzeit:string;
Wecksoundpfad:String;
begin
lblZeitanzeige.caption := timetostr(now);
lbstartzeit := lblzeitanzeige.Caption;
startzeit := strtotime(lbstartzeit);
if lblweckzeitanzeige.caption <> '' then
   begin
   lbweckzeit := lblweckzeitanzeige.caption;
   weckzeit := strtotime (lbweckzeit);
      if weckzeit = startzeit then
        begin
        ShowMessage ('Aufstehen Du faule Sau');
        wecksoundpfad := statusbar1.Panels[0].text;
        MediaPlayer1.FileName := wecksoundpfad;
        MediaPlayer1.Play;
        end;
   end;
end;
So wie oben klappt es aber nicht, habe aber leider keine Idee was ich ändern muss und aus der Hilfe werde ich auch nicht schlau, meine alles so gemacht zu haben wie es in der Hilfe steht, aber es geht dennoch nicht.

Kann mir da vieleicht jemand Helfen ?

Gruss
Darkchild

Maja Jessica 23. Nov 2006 18:28

Re: Abspielen einer sounddatei über Mediaplayer
 
Hi,

Devicetype beachtet? AutoOpen?
Geschieht etwas wenn du einen gültigen Filenamen direkt angibst?

Gruß, MJ

// Edit:
Hast du denn jemals das
Delphi-Quellcode:
ShowMessage ('Aufstehen Du faule Sau');
gesehen?
Irgendwie solltest du deine Zeitroutine mal überdenken, ich steige da nicht durch :|
Auch
Delphi-Quellcode:
weckzeit = startzeit
erscheint mir sehr "riskant" ...

marabu 23. Nov 2006 19:01

Re: Abspielen einer sounddatei über Mediaplayer
 
Hallo,

ist ja nicht viel Code, aber dafür umständlich. Den mehrfachen Wechsel zwischen String-Darstellung und internem Zeitformat würde ich vermeiden wollen. Wenn dein Timer feuert ist die Prüfung auf Gleichheit nicht so gut - besser du prüfst auf Überschreitung der Weckzeit. Wenn dieser Fall eintritt, solltest du den Wecker abschalten bevor du den soundfile in Auftrag gibst. Sonst kann es passieren, dass dein Timerevent (1000 msec?) den MediaPlayer gerade noch laden lässt und das Abspielen von neuem starten will...

Freundliche Grüße

Darkchild 23. Nov 2006 19:29

Re: Abspielen einer sounddatei über Mediaplayer
 
Also die Nachricht "Aufstehen Du faule ***" sehe ich immer wenn die Weckzeit erreicht wurde, also daher klappt das ohne Probleme nur das mit dem Sound nicht, hatte auch schon AutoOpen auf True aber dennoch spielt der nichts ab, auch nicht wenn ich auf die Play Taste von der Mediaplayer Navigationsleiste klicke.

Das da noch ein wenig viel an Code ist was so nicht sein muss ist mir schon klar, habe die Routine ja auch in 3 Minuten gebastelt, möchte das erst alle sachen Funktionieren und dann wird das anständig umgesetzt, da es für mich jetzt Hauptsächlich um die Funktionalität des Mediaplayers und dem Abspielen der Dateien geht.

Gruss
Darkchild

Maja Jessica 23. Nov 2006 19:36

Re: Abspielen einer sounddatei über Mediaplayer
 
Aha, gut.

Habe mal als Test:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Mediaplayer1.AutoEnable := true;
  Mediaplayer1.AutoOpen := true;
  Mediaplayer1.DeviceType := dtWaveAudio;
  MediaPlayer1.FileName := 'lach.wav';
  MediaPlayer1.Play;
end;
Die 'Lach.wav' im aktuellen Verzeichnis, klappt ohne zu murren.

Grüße, MJ

Darkchild 23. Nov 2006 19:57

Re: Abspielen einer sounddatei über Mediaplayer
 
Also bei mir klappt das immer noch nicht, kann aber sein das ich den Pfad nicht komplett übergebe darf sondern nur den namen der Datei, muss ich mal gleich probieren.
Auch möglich das der Timer überlagert, habe dshalb jetzt von dem Timer eine Procedure aufgerufen die dann das Abspielen übernehmen soll.

Aber ich kann mir nicht vorstellen das der Timer das Problem ist, ich habe vor einem haben Jahr so etwas schonmal in VB - Programmiert und da ging das ohne Probleme.

Deshalb verstehe ich ja nicht warum das nicht klappt, aber OK Delphi tickt da ja schon ein wenig anders.

Gruss
Darkchild

Darkchild 23. Nov 2006 20:05

Re: Abspielen einer sounddatei über Mediaplayer
 
Wenn ich das jetzt auf einen Button lege dann gibt der mir die Fehlermeldung "Kein MCI-Gerät geöffnet" habe aber keine Ahnung was das jetzt sein soll ?

Gruss
Darkchild

Sunlight7 23. Nov 2006 20:10

Re: Abspielen einer sounddatei über Mediaplayer
 
Delphi-Quellcode:
wecksoundpfad := statusbar1.Panels[0].text;
MediaPlayer1.FileName := wecksoundpfad;
MediaPlayer1.Open; <- !
MediaPlayer1.Play;
ShowMessage ('Aufstehen Du faule Sau'); // Das hier!
Edit: oder AutoOpen auf True stellen.
Edit2: Was soll eigentlich der Unsinn? :gruebel:
Delphi-Quellcode:
wecksoundpfad := statusbar1.Panels[0].text;
MediaPlayer1.FileName := wecksoundpfad;
Gleich so:
Delphi-Quellcode:
MediaPlayer1.FileName := statusbar1.Panels[0].text;

Darkchild 23. Nov 2006 20:26

Re: Abspielen einer sounddatei über Mediaplayer
 
@sunlight 7

Habe ja gesagt wurde auf die schnelle gemacht, Ordnung bringe ich später rein.
Habe jetzt eine Procedure erstellt die so aussieht:

Delphi-Quellcode:
Procedure TfrmweckerMain.playsound();
begin
Mediaplayer1.AutoEnable := true;
Mediaplayer1.DeviceType := dtWaveAudio;
MediaPlayer1.FileName := wecksoundpfad;
Mediaplayer1.AutoOpen := true;
MediaPlayer1.Play;
end;
Und in der Variablen wecksoundpfad steht auch der Pfad mit der Datei drin, habe das gerade nochmal überprüft, aber dennoch geht das nicht bekomme immer die Meldung jetzt "Kein MCI-Gerät gefunden/geöffnet".

Und ich habe keine Ahnung warum es das so nicht tut.
Da muss etwas fehlen oder noch zusätzlich eingestellt werden oder der Timer blockiert nur ist das alles kein Grund für die Fehlermeldung (denke ich).

Gruss
Darkchild

Sunlight7 23. Nov 2006 20:37

Re: Abspielen einer sounddatei über Mediaplayer
 
Den brauchts nicht: Mediaplayer1.DeviceType := dtWaveAudio; :wink:

Und Du mußt .Open verwenden, AutoOpen ist zur Laufzeit nich' besonders geeignet.

Edit: AutoOpen ist da, wenn Du zB im OI eine FileName angibst, das er die beim Programmstart gleich aufmacht.

Maja Jessica 23. Nov 2006 20:39

Re: Abspielen einer sounddatei über Mediaplayer
 
Hi

Hatte auch Probleme damit, daher habe ich den Mediaplayer für mein
eigenen Wecker verbannt und einfach die Unit MMSYSTEM eingebunden.
Dann klappt es mit
Delphi-Quellcode:
PlaySound('wecker.wav',0,snd_Async);
einfach und gut.

(gibt es jemanden im Forum der noch kein Weckprogramm gebaut hat? ;-) )

MJ

Darkchild 23. Nov 2006 20:44

Re: Abspielen einer sounddatei über Mediaplayer
 
@maya jessica

werde ich mal ausprobieren, danke für Deine hilfe, auch danke dem rest, werde ich wohl ohne Mediaplayer auskommen müssen.

Gruss
Darkchild

Sunlight7 23. Nov 2006 20:46

Re: Abspielen einer sounddatei über Mediaplayer
 
@Maja: Ich glaub nicht' :mrgreen:
Ich habs anders rum gemacht, ich hab mir nen Player geschrieben, und da den Wecker eingebaut :???: :mrgreen:

Aber PlaySound kann nur Wave :wink:

@Darkchild: Warum?

Darkchild 23. Nov 2006 20:52

Re: Abspielen einer sounddatei über Mediaplayer
 
@sunlight 7

Das will mit dem MediaPlayer einfach nicht abspielen, keine Ahnung warum, aber der will nicht.
Habe auch schon Deine Anmerkungen umgesetzt, aber nix.

Was mich dabei nervt ist am Tage Entwickle ich Anwendungen für Betriebe die auch nicht gerade klein sind und abends bin ich zu dämlich um einen wav-Datei abspielen zu lassen, da kann dann was nicht stimmen :? .

Gruss
Darkchild

Sunlight7 23. Nov 2006 21:04

Re: Abspielen einer sounddatei über Mediaplayer
 
Was zeigt er, wenn Du ShowMessage(statusbar1.Panels[0].text) machst?

Bzw. warum speicherst Du nicht den ganzen Pfad, den Du vom OpenDialog bekommst in einer extra Variable?!
Zum öffnen von Dateien ohne Pfad kann ich Grundsätzlich nur abraten, das ist oft ne Fehlerquelle, besonders wenn man das Programm mal erweitert.

Kann der MCI generell Waves abspielen?
Ich hatt' das mal, das der Treiber futsch war :roll:

Darkchild 23. Nov 2006 21:17

Re: Abspielen einer sounddatei über Mediaplayer
 
Also ich übergebe ihm den kompletten Pfad zu der Wave Datei und wenn ich Delphi schliesse und einfach eine wave-Datei über den Mediaplayer starte dann spielt der die auch einwandfrei ab.

Muss ich bestimmte dll's mit in das Verzeichniss packen damit das klappt ?

Gruss
Darkchild

Sunlight7 23. Nov 2006 21:20

Re: Abspielen einer sounddatei über Mediaplayer
 
Nö, wenn Du magst, dann post mal das Projekt oder schicks mir per PN, dann sehe ich mir das gerne an, es kann ja net sein, das das net funktioniert.

Darkchild 23. Nov 2006 21:26

Re: Abspielen einer sounddatei über Mediaplayer
 
@Sunlight 7

Ich packe das mal in eine rar und schicks Dir rüber.
Muss nur jetzt mal kurz den Quellcode aufräumen.

Gruss
Darkchild

Sunlight7 23. Nov 2006 21:30

Re: Abspielen einer sounddatei über Mediaplayer
 
Gut.

Bevor es hier Missverständnisse oder Beschwerden gibt:

Wenn ich Fehler oder Anmerkungen finde, werden diese hier herein geschrieben :wink:

Darkchild 23. Nov 2006 21:33

Re: Abspielen einer sounddatei über Mediaplayer
 
@sunlight 7

Klar warum auch nicht, ist ja keine Geheime Datei und wenn es hilft andere vor den selben dummen Fehlern zu bewahren ist das nur gut.

Also daher, kein Thema.

Aber schon mal thx im vorraus !
Auch wenn nicht klappt !

Gruss
Darkchild

Darkchild 23. Nov 2006 21:46

Re: Abspielen einer sounddatei über Mediaplayer
 
@sunlight 7

Ein kleiner Fehler ist in der Datei die ich Dir geschickt habe, der Wecksoundpfad muss noch aus der Kommentar klammer raus, sonst erhält der den Pfad nicht, habe ich gerade beim Aufräumen und Auskommentieren in der Eile übersehen.

Sorry !

Gruss
Darkchild

Sunlight7 23. Nov 2006 21:54

Re: Abspielen einer sounddatei über Mediaplayer
 
Okay, jetzt hab ich den Fehler gefunden :???:

Der lag einmal da:
Delphi-Quellcode:
Procedure TfrmweckerMain.playsound();
begin
MediaPlayer1.FileName := wecksoundpfad;
Mediaplayer1.Open;
MediaPlayer1.Play;
end;
Du hattest das Open vor dem Zuweisen von FileName, das gehört, wie es hier gezeigt ist nachher.

Und Du mußt im OI dem MediaPlayer1.DeviceType auf dtAutoSelect stellen, sonst funkt das net. :wink:

PS: Cooler Wecksound, nur etwas leise, verschläfst Du das nicht?

Edit Hat etwas gedauert, die große Datei mit nem Modem zu laden...

Darkchild 23. Nov 2006 21:59

Re: Abspielen einer sounddatei über Mediaplayer
 
Muss ich dann mal umstellen und schauen obs klappt sage Dir dann gleich nochmal kurz bescheid.

Ich muss mal sehen ob ich die Alf Titelmelodie in sauber bekomme :-D .
Dann geht das bestimmt auch lauter !

Gruss
Darkchild

Sunlight7 23. Nov 2006 22:05

Re: Abspielen einer sounddatei über Mediaplayer
 
:mrgreen:

Nur Deine Uhrzeitprogrammierung würd' ich etwas ändern, zb:
Delphi-Quellcode:
Copy(TimeToStr(Now), 1, 5);
Dann mußt Du nicht Sekunden eingeben und läufst somit nicht Gefahr, das er drüber springt.

Wenn dazu mehr Fragen hast, bitte n neues Thema dazu machen :wink:

Darkchild 23. Nov 2006 22:06

Re: Abspielen einer sounddatei über Mediaplayer
 
@sunlight 7

Klappt jetzt.
Und das nur wegen dem Zeilendreher und der Einstellung im OI.

Wenn ich ehrlich bin dann wäre ich auf das Problem wohl nicht gekommen, zumindest nicht in den nächsten 2 Tagen :wall: .

Also daher vielen Dank für Deine Hilfe.

Gruss
Darkchild

P.S. : Wenn ich den dann jetzt die Tage weiter ausbaue dann werde ich auf die Sache mit der Uhrzeit zurückkommen und einen neuen Thread aufmachen. THX !!!!!!!!!!!!!!!!!!! :cheers:

Sunlight7 23. Nov 2006 22:09

Re: Abspielen einer sounddatei über Mediaplayer
 
Kleinigkeit für n alten MCI Hasen :mrgreen:

Grüßle!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:34 Uhr.

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