Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Wav Dateien mit minimaler Verzögerung abspielen. (https://www.delphipraxis.net/109705-wav-dateien-mit-minimaler-verzoegerung-abspielen.html)

simon790 6. Mär 2008 09:07


Wav Dateien mit minimaler Verzögerung abspielen.
 
Hallo zusammen
Ich möchte einen (vorerst) einfachen Jingle-Player programmieren.
Mit dem können bestimmt kurze Wav-dateien bei Klick auf einen Hot-Button (Touchscreen oder Numpad) direkt wiedergegeben werden.

Mit dem Mediaplayer konnte ich das soweit schon mal lösen.
Nun das Problem:
Bei der Wiedergabe gibt es stets eine minimale Verzögerung am Anfang da das File zuerst von der Festplatte gelesen werden muss. Bzw. besteht das Risiko dass die Festplatte gerade anderseitig beschäftigt ist.

Gibt es die Möglichkeit Die Wav-Files gleich bei Programmstart in der Arbeitsspeicher zu laden und damit die Latenz zu verkürzen?

Besten Dank und Gruss

Simon

SirThornberry 6. Mär 2008 09:09

Re: Wav Dateien mit minimaler Verzögerung abspielen.
 
die möglichkeit besteht. Wenn aber die Jingles nicht genutzt werden landen sie nach einiger zeit in der Auslagerungsdatei und dann dauert das abspielen auch wieder eine Weile.

Medium 6. Mär 2008 09:35

Re: Wav Dateien mit minimaler Verzögerung abspielen.
 
In Bei Google suchenDelphiX ist eine WaveList vorhanden, über die sich kurze Sounds mit recht schneller Ansprechzeit via DirectSound ausgeben lassen. DelphiX ist an sich zwar ein wenig outdated, für diese Aufgabe ließe es sich aber denk ich gut missbrauchen (bevor man das manuell implementiert).

SirThornberry 6. Mär 2008 09:39

Re: Wav Dateien mit minimaler Verzögerung abspielen.
 
dann würde ich doch lieber PlaySound verwenden, da ist das abspielen mit einer Zeile implementiert.

Medium 6. Mär 2008 09:52

Re: Wav Dateien mit minimaler Verzögerung abspielen.
 
Mit der DX Liste auch - sobald sie ein mal ordentlich versorgt ist :]
PlaySound würde dann aber nur einigermaßen Sinn machen, wenn man die Sounds dann als Resource anhängt o.ä., weil das zu lösende Problem lautet ja nicht "generell was abspielen", sondern "möglichst kurze Verzögerung". Mit der DirectSound Variante ist gesichert, dass die Sounds gepuffert vorliegen und nicht erst von der Platte gelesen werden müssen (Fall der Auslagerung mal ausgenommen, da hab ich keine Ahnung ob DirectSound daran was dreht).

SirThornberry 6. Mär 2008 10:01

Re: Wav Dateien mit minimaler Verzögerung abspielen.
 
bei PlaySound müssen die Sounds nicht als Ressource vorliegen sondern können auch ganz normal in den ram geladen werden. So kann man eine WaveDatei einfach in einen MemoryStream laden und diesen dann mit PlaySound abspielen.

hathor 6. Mär 2008 13:18

Re: Wav Dateien mit minimaler Verzögerung abspielen.
 
RAMDISK

Medium 6. Mär 2008 13:34

Re: Wav Dateien mit minimaler Verzögerung abspielen.
 
@SirThornberry
YourWords := true;

Garnicht an Memorystreams gedacht :oops:

simon790 7. Mär 2008 15:07

Re: Wav Dateien mit minimaler Verzögerung abspielen.
 
Super vielen Dank!
Gruss
Simon


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 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