AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit PlaySound-Befehl

Ein Thema von Christian.Ossi · begonnen am 19. Apr 2006 · letzter Beitrag vom 20. Apr 2006
Antwort Antwort
Christian.Ossi

Registriert seit: 23. Mai 2004
Ort: Greußen
91 Beiträge
 
Delphi 2006 Architect
 
#1

Problem mit PlaySound-Befehl

  Alt 19. Apr 2006, 00:52
Der PlaySound - Befehl vom MMSystem ruft in meinem Programm aus einer Ressourcen-DLL einen Sound auf.
Das Abspielen des Sounds funktioniert zwar, jedoch wird das ganze Programm für die Dauer des Abspielens angehalten bzw. eben lahm gelegt. Kann man das verhindern bzw. umgehen.
Ich hab diesen PlaySound in einen eigenen Timer gelegt, doch das bringt nichts.
Das ganze Programm reagiert nicht mehr. Der Sound ist 20 Sek. lang und solange kann man nichts mehr machen.

Gibt's dafür ne Lösung? z.B. einen Ersatz für PlaySound oder eine andere Einstellung?
Christian Rose
© Christian.Ossi
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Problem mit PlaySound-Befehl

  Alt 19. Apr 2006, 01:22
Wieso fragen das jetzt auf einmal alle?

Hier im Forum suchenplaysound asynchron, erstes ergebnis... gute nacht...
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Christian.Ossi

Registriert seit: 23. Mai 2004
Ort: Greußen
91 Beiträge
 
Delphi 2006 Architect
 
#3

Re: Problem mit PlaySound-Befehl

  Alt 19. Apr 2006, 13:21
Wenn ich ASYNC nehme, dann spielt er gar nichts mehr ab.
Liegt das daran, dass die WAVE ja in der DLL als Ressource liegt?

Delphi-Quellcode:
DLLHandle:=LoadLibraryEX(SoundsDLL,0,LOAD_LIBRARY_AS_DATAFILE);
PlaySound('Intro',DLLHandle,SND_ASYNC Or SND_RESOURCE);
Christian Rose
© Christian.Ossi
  Mit Zitat antworten Zitat
Christian.Ossi

Registriert seit: 23. Mai 2004
Ort: Greußen
91 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Problem mit PlaySound-Befehl

  Alt 20. Apr 2006, 18:57
Delphi-Quellcode:
Var DLLHandle: THandle;

PlaySound(Nil,0,0);
DLLHandle:=LoadLibraryEX(SoundsDLL,0,LOAD_LIBRARY_AS_DATAFILE);
Try
Application.ProcessMessages;
PlaySound(PChar('Intro'),DLLHandle,SND_ASYNC Or SND_MEMORY Or SND_RESOURCE);
Finally
FreeLibrary(DLLHandle);
End;

(SoundsDLL ist eine Konstante mit dem Namen)

Was ist daran falsch?
Es kommt kein Sound? - Er kommt nur wenn ich SND_SYNC nehme - aber das will ich ja nicht.
Christian Rose
© Christian.Ossi
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#5

Re: Problem mit PlaySound-Befehl

  Alt 20. Apr 2006, 19:56
Jane, ist klar. Du musst das laden der Resource global machen. Windows läd zur Wiedergabe nur einen Teil der Resource.
In deinem Fall heisst dass das wenn der Sound wiedergegeben wird nicht die Resource nachgeladen werden kann und somit hängt das Programm...

So wird es richtiger:

Delphi-Quellcode:
//...

const
  SoundsDLL = 'MediaRes.dll';

var
  DLLHandle: THandle;

procedure TForm.ButtonClick...
begin
  PlaySound(Nil, 0, 0);

  if DLLHandle > 0 then
  begin
    if not PlaySound(PChar('SNDOK'), DLLHandle, SND_ASYNC Or SND_MEMORY Or SND_RESOURCE) then
      MessageBox(Handle, 'Sound konnte nicht abgespielt werden', 'Information', MB_OK);
  end else
  begin
    MessageBox(Handle, 'DLL-Ladefehler', 'Information', MB_OK);
  end;
end;

procedure TForm.FormCreate...
begin
  DLLHandle := LoadLibraryEx(SoundsDLL, 0, LOAD_LIBRARY_AS_DATAFILE);
end;

procedure TForm.FormDestroy...;
begin
  FreeLibrary(DLLHandle);
end;
//...
(ungetested)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:08 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