Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Sounds gleichzeitig abspielen (https://www.delphipraxis.net/156882-sounds-gleichzeitig-abspielen.html)

smart 24. Dez 2010 22:25

AW: Sounds gleichzeitig abspielen
 
Zitat:

Zitat von w4rheart (Beitrag 1070359)
Sooo, Freunde der Sonne ;)
Ich habe es immer noch nicht hingekriegt :D

Hi, mal eine dumme Frage, wieso nimmst Du nicht den MediaPlayer so wie lbccaleb es Dir vorgeschlagen hat. Da hast Du überhaupt keine Probleme und kannst so viele Sounds paralel abspielen wie Du möchtest und weniger Code hast Du auch?

w4rheart 24. Dez 2010 22:45

AW: Sounds gleichzeitig abspielen
 
Nunja, es hat bei mir nicht geklappt.
Bzw. wenn ich sounds übereinander abspielen wollte, oder den gleichen sound mehrmals, brach der eine immer ab.

MfG

Daniel Schuhmann 24. Dez 2010 22:53

AW: Sounds gleichzeitig abspielen
 
Zitat:

Zitat von w4rheart (Beitrag 1069288)
Wie mache ich das am besten? Bass.dll würde ich am liebsten vermeiden.

Back to the roots. Wenn Du BASS verwenden willst, dann mach es doch einfach. Für jedes abzuspielende Ereignis einen eigenen Channel erstellen und schon laufen die Sounds parallel ohne Probleme.

Edit: Gibts hier ein Stroke-Out-Tag? Zu viel Weihnachten tut nicht gut. Verwenden und vermeiden klingt aber auch zu ähnlich. Naja. Mit Bass würde es jedenfalls trotzdem gehen :)

smart 24. Dez 2010 23:37

AW: Sounds gleichzeitig abspielen
 
Ich würde das ganze so machen
Delphi-Quellcode:
var
MediaPlayer1: TMediaPlayer;
MediaPlayer2: TMediaPlayer;

MediaPlayer1 := TMediaPlayer.Create(Application);
MediaPlayer1.Parent := Self;
MediaPlayer2 := TMediaPlayer.Create(Application);
MediaPlayer2.Parent := Self;


MediaPlayer1.FileName := 'C:\Sound1.wav';
MediaPlayer1.Open;
MediaPlayer1.Play;


MediaPlayer2.FileName := 'C:\Sound2.wav';
MediaPlayer2.Open;
MediaPlayer2.Play;

turboPASCAL 24. Dez 2010 23:43

AW: Sounds gleichzeitig abspielen
 
Ich so: http://www.delphipraxis.net/1069276-post2.html

hathor 25. Dez 2010 02:02

AW: Sounds gleichzeitig abspielen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von hathor (Beitrag 1069293)
Der Mediaplayer kann als Komponente mehrfach ins Programm eingebunden werden und funktioniert parallel und unabhängig.

Bedingung ist: Ein Soundfile darf nur einmal geöffnet werden.
Soll es mehrmals gleichzeitig gespielt werden, muss es unter verschiedenen Namen mehrfach vorhanden sein.
Offensichtlich glaubt das keiner, deshalb hier ein Beispiel:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, MPlayer, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    MediaPlayer1: TMediaPlayer;
    MediaPlayer2: TMediaPlayer;
    MediaPlayer3: TMediaPlayer;
    MediaPlayer4: TMediaPlayer;
    MediaPlayer5: TMediaPlayer;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Mediaplayer1.Play;
Sleep(20);
Mediaplayer2.Play;
Sleep(20);
Mediaplayer3.Play;
Sleep(20);
Mediaplayer4.Play;
Sleep(20);
Mediaplayer5.Play;
end;

end.

turboPASCAL 25. Dez 2010 15:10

AW: Sounds gleichzeitig abspielen
 
Der Nachteil vom MediaPlayer ist, das er bei dem öffnen einer Datei erst ein mal eine ganze Weile rumrödelt (irgend was sucht und oder vergleicht etc pp.).
Also eine "schöne" Lösung ist das nicht gerade.

hathor 25. Dez 2010 17:25

AW: Sounds gleichzeitig abspielen
 
Das liegt nicht am Mediaplayer, sondern an der Vorschaufunktion des Explorers
(ausschalten: regsvr32 /u shmedia.dll) oder am Virenscanner (den kann man auch konfigurieren - immer nur meckern tun die Doofen...)

BUG 25. Dez 2010 18:17

AW: Sounds gleichzeitig abspielen
 
BloodyQuest benutzt openAL, den Code kannst du dir angucken und wenn du dort einen (Code-)Happen findest, der dir schmeckt, darfst du ihn behalten.

w4rheart 31. Dez 2010 00:45

AW: Sounds gleichzeitig abspielen
 
Hallo nochmal!

Danke für den Link BUG, aber es klappt immer noch nicht.
Hab mir das Programm von BloodyQuest angeschaut und versucht es zu übernehmen, allerdings erhalte ich eine Fehlermeldung;
Invalid pointer operation in dieser Zeile:
Delphi-Quellcode:
procedure TSounds.loadFile(path, name: string);
var
  buffer: PBuffer;
  format: TALEnum;
  size: TALSizei;
  freq: TALSizei;
  loop: TALInt;
  data: TALVoid;
begin
  if not assigned(self) then exit;
  new(buffer);
  buffer^.name := name;
  AlGenBuffers(1, @buffer^.id);
  AlutLoadWavFile(path, format, data, size, freq, loop);
  AlBufferData(buffer^.id, format, data, size, freq);
  AlutUnloadWav(format, data, size, freq);
  FList.Add(buffer); // --> HIER!
end;
Ich habe Openal installiert und auch die OpenAl32.dll in das Verzeichnis kopiert, kein Erfolg.
Was könnte der Fehler sein?

MfG


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr.
Seite 2 von 5     12 34     Letzte »    

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