![]() |
Und nochmal 2 Sounds Gleichzeitig abspielen...
Hallo Freunde :hi: ,
ich weiss, das gabs schon öfter, aber ich fand nix geeignetes.. bass.dll is mir zu schwierig und DelphiX gib s wohl für Delphi 6 nicht so richtig (?!) Also: Ich hab in meinem Snake-spiel ein problem mit den sounds, zu dessen Beseitigung ich den Code eigentlich extra in den Thread verfrachtet hab... das bringt aber nix denn das problem ist nicht weggegangen: Ich will mit dem Thread eine Hintergrundmusik abspielen, und dann soll, wenn die Schlange einen Apfel frisst, auch ein Sound abgespielt werden. Wenn dieser "Fress-Sound" abgespielt wird, wird der Hintergrundsound abgebrochen! (mit snd_PlaySound rufe ich beide waves auf) Eigentlich will ich zwei Musikdateien also gleichzeitig abspielen! (Hatte das auch mit einer 2. exe, die nur zum soundabspielen gestartet wurde, das war aber unpraktisch und sehr unelegant...) Was könnte ich noch machen, damit es funktioniert?!? MfG Lefko. |
Re: Und nochmal 2 Sounds Gleichzeitig abspielen...
nur mal so´ne frage:
WARUM PROGRAMMIERT IHR ALLE SO EIN SNAKE-SPIEL? :shock: ist das irgendwie die standard-Hausaufgabe für informatik-studenten? naja egal.... was dein problem betrifft.... Bei delphi7 könntest ja einfach 2 mediaplayer einbauen, und jeden mit seinem eigenen sound behaften, dann wäre das kein problem.. nur kenn ich delphi6 nicht...daher KA :zwinker: |
Re: Und nochmal 2 Sounds Gleichzeitig abspielen...
unter delphi6 gehts nicht, da kommt das, das gerät bereits verwendet wird - wird wahrscheinlich versucht über die gleiche geräteid was abzuspielen ohne mixer.
|
Re: Und nochmal 2 Sounds Gleichzeitig abspielen...
Zitat:
Hab zwar Informatik nur in der Schule und mache das als selbstgewähltes Projekt, aber ist halt ein gut umzusetzendes Spiel.... Kann ich das wohl so machen, dass ich den Hintergrund mit nem Mediaplayer abspiele und den Fresssound mit snd_Playsound? oder wird dann auch eins von beiden abgebrochen? MfG Lefko. |
Re: Und nochmal 2 Sounds Gleichzeitig abspielen...
von Swissdelphicenter.com:
Delphi-Quellcode:
Edit:
uses
MMSystem; procedure SendMCICommand(Cmd: string); var RetVal: Integer; ErrMsg: array[0..254] of char; begin RetVal := mciSendString(PChar(Cmd), nil, 0, 0); if RetVal <> 0 then begin {get message for returned value} mciGetErrorString(RetVal, ErrMsg, 255); MessageDlg(StrPas(ErrMsg), mtError, [mbOK], 0); end; end; procedure TForm1.Button1Click(Sender: TObject); begin SendMCICommand('open waveaudio shareable'); SendMCICommand('play "C:\xyz\BackgroundMusic.wav"'); SendMCICommand('play "C:\xyz\AnotherMusic.wav"'); SendMCICommand('close waveaudio'); end; Die Variante hat leider den nachteil das man damit keine mp3s abspielen kann |
Re: Und nochmal 2 Sounds Gleichzeitig abspielen...
Wenn Geld keine Rolle spielt guck mal bei
![]() |
Re: Und nochmal 2 Sounds Gleichzeitig abspielen...
PlaySound verwenden mit dem Flag ASYNCHRON.
|
Re: Und nochmal 2 Sounds Gleichzeitig abspielen...
Zitat:
wenn eins aktiv ist, kann das doch nicht nocheins abspielen? @SirTornberry: hey, das sieht gut aus! ich werd s ausprobieren... (das sendMCIcommand('close waveaudio') ist nur zum schließen ne?) MfG Lefko. |
Re: Und nochmal 2 Sounds Gleichzeitig abspielen...
@SirTornberry:
Mist, diese Variante klappt auch nicht, es kommt jedes mal der Error: "MMSYSTEM263 Dies ist kein registriertes MCI-Gerät" was mach ich nur.... MfG Lefko PS: Das einzige, was wirklich gut klappt ist, dass ich ne extra-Sound-exe mache, die per shellexecute aufgerufen wird.... soll ich das wieder machen? |
Re: Und nochmal 2 Sounds Gleichzeitig abspielen...
Huhu! s.o. :D
|
Re: Und nochmal 2 Sounds Gleichzeitig abspielen...
Also, dass man über das normale Multimedia-API zwei Sounds auf einem Gerät (Ausgang) gleichzeitig abspielen kann, wäre mir neu (auch nicht aus zwei verschiedenen Anwndungen heraus). Während ein Stück wiedergegeben wird ist der Ausgang blockiert, bzw. dieses Stück wird abgebrochen, wenn ein anderes abgespielt werden soll.
Die einzigen Möglichkeit die ich kenne um das Problem zu lösen, sind: DirectX verwenden (DirectX kann mehrere Stücke gleichzeitig wiedergeben) oder aus beiden Stücken selbst die Mischung berechnen und diese dann wiedergeben (FMOD, SwiftSoft und wahrscheinlich auch Bass machen das so). Grundsätzlich würde ich mich SirThornberrys Empfehlung für SwiftSoft anschließen, für deine Zwecke würde ich aber eher FMOD (kostenlos) empfehlen (Bass kenne ich nicht näher). Damit reichen drei, vier Zeilen Code, um zwei Stücke abzuspielen. |
Re: Und nochmal 2 Sounds Gleichzeitig abspielen...
danke für die tipps!
also das mit den 2 verschiedenen exes klappt super... eine spielt nur den background-sound, die andere das spiel mit fresssounds. beide werden wunderbar abgespielt. nur: es sind ZWEI exes! grmbl... ich werd mir mal fmod anschauen, danke :) MfG Lefko. |
Re: Und nochmal 2 Sounds Gleichzeitig abspielen...
Zitat:
beschäftige dich mal mit der bass.dll so schwer ist das nicht. z.B.: meine unit: ![]() könnte ein guter Einstieg sein. (einfach 2 Objekte instanzieren und fertig) |
Re: Und nochmal 2 Sounds Gleichzeitig abspielen...
Zitat:
Hey Gandalfus, danke, is ja wunderbar übersichtlich erstellt von dir, damit werd ich mal werkeln :) MfG Lefko. |
AW: Re: Und nochmal 2 Sounds Gleichzeitig abspielen...
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 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