AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Viele Sound Dateien möglichst schnell abspielen / vorladen?
Thema durchsuchen
Ansicht
Themen-Optionen

Viele Sound Dateien möglichst schnell abspielen / vorladen?

Ein Thema von gee21 · begonnen am 31. Mär 2023 · letzter Beitrag vom 4. Apr 2023
Antwort Antwort
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Viele Sound Dateien möglichst schnell abspielen / vorladen?

  Alt 31. Mär 2023, 17:27
Du kannst natürlich ganz viele TMediaPlay-Instanzen erstellen und die Dateien damit vorladen.

Auch kann man der BASS-Lib, sndPlaySound und Co. nicht nur DateiNamen oder Ressourcen (wobei die RES in aktuell geladenen DLLs/EXE ebenfalls schon vorgelasen sind) übergeben,
sondern auch direkt Zeiger auf Speicher, wo die Datei bereits im RAM bereitliegt.



Auch könntest du, vor dem Abspielen, aus den vielen Dateien, einfach eine Datei erstellen und Diese dann absspielen.
[edit] Jupp, könntest du
Vielen Dank für deine schnelle Antwort. jetzt werde ich bestimmt eine Lösung finden.
Robert
  Mit Zitat antworten Zitat
klaus schaaff

Registriert seit: 25. Jul 2009
24 Beiträge
 
#2

AW: Viele Sound Dateien möglichst schnell abspielen / vorladen?

  Alt 3. Apr 2023, 12:57
Hallo Robert,

für mich hört sich Deine Aufgabenstellung an, als ob Du einen Sprachsynthesizer bauen möchtest. Viele einzelne Sounddateien, die gleichzeitig abgespielt werden sollen und zusammengestellt werden anhand bestimmter Parameter.

Deine Idee eine große Sounddatei zu erstellen ist schon mal gut.

Dafür Bass oder ähnliche (FMod) zu verwenden ist schwer oder geht gar nicht. Außerdem sind das proprietäre Systeme mit Dll (kein Quellcode) und da steh' ich gar nicht d'rauf. Aber, um einen einfachen *.mp3 Player damit aufzubauen - dafür sind die Dinger gut.

Ein ähnliches Modell FM-Synthesizer habe ich mal mit MMSystem Low-Level aufgebaut und kam damit auf < 15 ms Latenz.

Hier muss mit Zeigern gearbeitet werden, welche Abschnitte einer MemoryMapped Raw-Sounddatei aufaddiert werden und das für jeden Bufferwechsel. Ziemlich aufwendig!

Man muss sich genau fragen, welche Rahmenparameter (Buffergrößen, Anzahl der Buffer, Latenzen, Frequenzgang, Auflösung, threaded oder nicht) die Software erfüllen soll.
Dann kommt die Frage, mit welcher Methode komme ich am schnellsten zum Ziel.


Liebe Grüße
Klaus Schaaff

Geändert von klaus schaaff ( 3. Apr 2023 um 14:31 Uhr)
  Mit Zitat antworten Zitat
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Viele Sound Dateien möglichst schnell abspielen / vorladen?

  Alt 4. Apr 2023, 20:01
@Klaus hab dir ne PN geschrieben. Vielen Dank für deine ausführliche Antwort.

Wollte noch kurz Rückmeldung:
Ich habe es nun so gelöst das ich alle Audio Files zusammengefügt habe in ein grosses MP3, dies beim starten in den Mediaplayer lade und dann nur noch die Position wechseln wenn ein Sound abgespielt werden soll. Ist sehr einfach und reagiert sehr schnell und gut. Die Lautstärke kann man über den Windows Audio Mixer steuern.

Beim start des Programm
Delphi-Quellcode:
  
mediaplayer1.FileName:=Programmpfad+'\Files\German Audio Files\MeinGrosses.mp3';
mediaplayer1.Open;

Wenn ein Sound abgespielt werden soll.
Delphi-Quellcode:
mediaplayer1.StartPos:=strtoint(edit1.Text);
mediaplayer1.EndPos:=strtoint(edit2.Text);

trackbar1.Min:=strtoint(edit1.Text);
trackbar1.Max:=strtoint(edit2.Text);
trackbar1.Position:=mediaplayer1.StartPos;

mediaplayer1.play;
Robert
  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 03:22 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