AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi Sounds Problem

Ein Thema von Windowscratcher · begonnen am 9. Mai 2012 · letzter Beitrag vom 20. Mai 2012
Antwort Antwort
Seite 1 von 2  1 2      
Windowscratcher

Registriert seit: 9. Mai 2012
24 Beiträge
 
#1

AW: Delphi Sounds Problem

  Alt 10. Mai 2012, 17:53
@p80286: Ich find die Option nicht... Ich habe jetzt aber den Befehl "ShowMessage(FilePath) Mal VOR den "IF" Satz getan und siehe da: Er erscheint. Wenn er aber im IF Satz steht, passiert nichts. Was muss ich jetzt machen?
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

AW: Delphi Sounds Problem

  Alt 10. Mai 2012, 18:01
Bist du dir sicher, das der Pfad und die Datei wirklich existieren?
Was steht in der Message?
  Mit Zitat antworten Zitat
Windowscratcher

Registriert seit: 9. Mai 2012
24 Beiträge
 
#3

AW: Delphi Sounds Problem

  Alt 10. Mai 2012, 18:03
[Window Title]
project1

[Content]
C:\Users\Filip\Documents\Schule\Physik und Technik\Physik und Technik\PT-Projekt\Programm\Modem.wav

[OK]

@BUG Das steht in der Message. Eigentlich der Dateipfad, wo die Datei enthalten ist. Ich versteh es echt nicht...
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#4

AW: Delphi Sounds Problem

  Alt 10. Mai 2012, 18:08
Ich habe jetzt aber den Befehl "ShowMessage(FilePath) Mal VOR den "IF" Satz getan und siehe da: Er erscheint. Wenn er aber im IF Satz steht, passiert nichts.
Ich hab den Code doch genau so gegeben. Die Anweisung ShowMessage steht vor der if-Bedingung. Insofern verstehe ich das Problem nicht.

Zitat:
[Window Title]
project1

[Content]
C:\Users\Filip\Documents\Schule\Physik und Technik\Physik und Technik\PT-Projekt\Programm\Modem.wav

[OK]

@BUG Das steht in der Message. Eigentlich der Dateipfad, wo die Datei enthalten ist. Ich versteh es echt nicht...
Ist das Verzeichnis "Physik und Technik" wirklich doppelt? Was passiert, wenn du genau diesen Pfad (ohne den Dateinamen Modem.wav) in die Adresszeile des Explorers kopierst und bestätigst?

MfG Dalai
  Mit Zitat antworten Zitat
Windowscratcher

Registriert seit: 9. Mai 2012
24 Beiträge
 
#5

AW: Delphi Sounds Problem

  Alt 10. Mai 2012, 18:11
@Dalai Der Dateipfad ist richtig, habs mit dem Explorer ausprobiert. Und sorry, dann hab ichs ausversehen nach dem IF Satz hingeschrieben
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#6

AW: Delphi Sounds Problem

  Alt 10. Mai 2012, 18:24
Wenn der Pfad stimmt, stimmt der Dateiname nicht. Denn die FileExists-Funktion gibt ja nicht ohne Grund False zurück.

MfG Dalai
  Mit Zitat antworten Zitat
Windowscratcher

Registriert seit: 9. Mai 2012
24 Beiträge
 
#7

AW: Delphi Sounds Problem

  Alt 10. Mai 2012, 18:33
@Dalai Ich hab jetzt das hier mal ergänzt (zu Testzwecken)
Code:
procedure PlayMySound(SndName: String); //uses mmSystem
var
  FilePath: String;
begin
  FilePath := ExtractFilePath(ParamStr(0))  + SndName + '.wav';
   ShowMessage(FilePath);
  if FileExists(FilePath) then
      //SndPlaySound(PAnsiChar(FilePath), SND_ASYNC ); //Alternative
     PlaySound(PChar(FilePath), hInstance, SND_ASYNC or SND_FILENAME)
     else //SndPlaySound(PAnsiChar(FilePath), SND_ASYNC ); //Alternative
     PlaySound(PChar(FilePath), hInstance, SND_ASYNC or SND_FILENAME)
end;
Also wird der Befehl ausgeführt, auch wenn "FileExists(Filepath)" false ist. Ich weiß, ich hätte da auch einfach nur den Befehl hinschreiben können, aber ... ich weiß es selber nicht

Natürlich kommt der Fehlerton, wie erwartet.
Ich bin unter Windows 7 und da werden ja keine Dateiendungen angezeigt. Muss ich die Datei dann umbenennen und die Dateiendung hinzufügen?
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#8

AW: Delphi Sounds Problem

  Alt 10. Mai 2012, 18:52
Ich bin unter Windows 7 und da werden ja keine Dateiendungen angezeigt. Muss ich die Datei dann umbenennen und die Dateiendung hinzufügen?
Lass dir die Dateiendungen anzeigen, alles andere ist Pfusch (verstehe eh nicht, warum MS diesen Unsinn seit Jahren vorgibt, der nur für Verwirrung sorgt und Angriffsflächen bietet). Systemsteuerung > Orderoptionen > Register "Ansicht" > Option "Erweiterungen bei bekannten Dateitypen ausblenden" deaktivieren.

MfG Dalai
  Mit Zitat antworten Zitat
Windowscratcher

Registriert seit: 9. Mai 2012
24 Beiträge
 
#9

AW: Delphi Sounds Problem

  Alt 10. Mai 2012, 18:59
Naja, klappt leider weiterhin nicht...
Mein Vater sagt (er war mal Programmierer, ist aber was länger her ), der Dateipfad müsste nicht von "C:" aus starten, sondern vom Projektordner. Stimmt das?
Und wie verfahre ich jetzt mit dem Fehler? (Tut mir leid, dass ich Druck mache, aber ich habe nicht mehr viel Zeit :/ )
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.752 Beiträge
 
Delphi 12 Athens
 
#10

AW: Delphi Sounds Problem

  Alt 10. Mai 2012, 20:36
[edit]
Zitat:
Danke,Danke,Danke!!!! Jetzt klappt es!
Na dann ist ja alles Gut.


Was mir grade aufgefallen ist.
MSDN-Library durchsuchenPlaySound ist natürlich besser und von sndPlaySound sollte man die Finger lassen. Eventuell hat das dann auch keine Probleme mit WAVEs in anderen Bitbreiten.
Wenn man mehr will, dann sollte man sich mal die anderen waveXXX-Funktionen ansehn.
Zitat:
MSDN-Library durchsuchensndPlaySound:

This function offers a subset of the functionality of the PlaySound function; sndPlaySound is being maintained for backward compatibility.
PS: Kann der Delphi-Referenz durchsuchenTMediaPlayer nicht auch WAVEs abspielen?
[/edit]



Delphi-Quellcode:
procedure PlayMySound(SndName: String); //uses mmSystem
var
  FilePath: String;
begin
  FilePath := ExtractFilePath(ParamStr(0)) + SndName + '.wav';
   ShowMessage(FilePath);
  if FileExists(FilePath) then
      //SndPlaySound(PAnsiChar(FilePath), SND_ASYNC ); //Alternative
     PlaySound(PChar(FilePath), hInstance, SND_ASYNC or SND_FILENAME)
     else //SndPlaySound(PAnsiChar(FilePath), SND_ASYNC ); //Alternative
     PlaySound(PChar(FilePath), hInstance, SND_ASYNC or SND_FILENAME)
end;
Ähhhh, du hast du eine Funktion gebaut, welche einen Alternativen Aufruf beinhaltet, hast aber am Ende alles ausgetauscht?

Im If-Then- und im Else-Block steht genau das Selbe drin.
Fazit: Es Das IF vollkommen sinnlos, da beise Male genau das Selbe gemacht wird.

Außerdem, wenn FileExists nichts findes, was soll dann abgespielt werden? Es wurde doch nichts gefunden.


Nonmal nachgefragt, weil ich langsam nicht mehr durchseh:
FileExists liefert immernoch False?

Wenn ja, dann solltest du rausfinden was mit deinem Pfad nicht stimmt und wo deine WAVE-Datei wirklich liegt.
Alles Anderer ist vollkommen sinnlos, denn wenn die Datei nicht dort gefunden werden kann, wohin der Pfad zeigt, dann kann man sonstwas versuchen, diese Datei wird niemals abgespielt.
Was nicht vorhanden ist, das kann auch nicht abgespielt werden.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (10. Mai 2012 um 20:53 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:25 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