![]() |
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:
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.
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; Kann mir da vieleicht jemand Helfen ? Gruss Darkchild |
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:
gesehen?
ShowMessage ('Aufstehen Du faule Sau');
Irgendwie solltest du deine Zeitroutine mal überdenken, ich steige da nicht durch :| Auch
Delphi-Quellcode:
erscheint mir sehr "riskant" ...
weckzeit = startzeit
|
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 |
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 |
Re: Abspielen einer sounddatei über Mediaplayer
Aha, gut.
Habe mal als Test:
Delphi-Quellcode:
Die 'Lach.wav' im aktuellen Verzeichnis, klappt ohne zu murren.
procedure TForm1.Button1Click(Sender: TObject);
begin Mediaplayer1.AutoEnable := true; Mediaplayer1.AutoOpen := true; Mediaplayer1.DeviceType := dtWaveAudio; MediaPlayer1.FileName := 'lach.wav'; MediaPlayer1.Play; end; Grüße, MJ |
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 |
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 |
Re: Abspielen einer sounddatei über Mediaplayer
Delphi-Quellcode:
Edit: oder AutoOpen auf True stellen.
wecksoundpfad := statusbar1.Panels[0].text;
MediaPlayer1.FileName := wecksoundpfad; MediaPlayer1.Open; <- ! MediaPlayer1.Play; ShowMessage ('Aufstehen Du faule Sau'); // Das hier! Edit2: Was soll eigentlich der Unsinn? :gruebel:
Delphi-Quellcode:
Gleich so:
wecksoundpfad := statusbar1.Panels[0].text;
MediaPlayer1.FileName := wecksoundpfad;
Delphi-Quellcode:
MediaPlayer1.FileName := statusbar1.Panels[0].text;
|
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:
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".
Procedure TfrmweckerMain.playsound();
begin Mediaplayer1.AutoEnable := true; Mediaplayer1.DeviceType := dtWaveAudio; MediaPlayer1.FileName := wecksoundpfad; Mediaplayer1.AutoOpen := true; MediaPlayer1.Play; end; 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 |
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:26 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