Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi .wav abspielen? (https://www.delphipraxis.net/56251-wav-abspielen.html)

Rastaman 2. Nov 2005 22:02


.wav abspielen?
 
Moin.

Gleich zum Anfang: Es kommt jetzt nicht, wie ihr denkt, ich frage nämlich NICHT, wie man einfach ne .wav abspielt, sondern wie man das macht, ohne sndPlaySound zu verwenden.
Hab schon gesucht, aber nur was mit Mediaplayer, BASS und playsound gefunden.
Hab auch schon versucht, alles Byteweise einzulesen und mit Beep auszugeben...klappt nicht wirklich :lol:
Da ich mich noch nie mit Audio-Dateien befasst habe, würd ich mich freuen, wenn da einer n kleinen Ansatz hätte.
MP3s sind ja sowieso für den Anfang viel zu kompliziert.

Danke schonma!

3_of_8 2. Nov 2005 22:17

Re: .wav abspielen?
 
Also mit Mediaplayer wäre es am einfachsten.

xaromz 2. Nov 2005 22:28

Re: .wav abspielen?
 
Hallo,

ich hab das mal vor Jahren mit DirectX gemacht. Da hatte ich ein schönes Projekt mit 'nem Software-Synthesizer. Wenn ich das richtig in Erinnerung habe musste man da das Soundformat (Kanäle, SampleRate, Bitanzahl) und eine Callback-Funktion angeben. Die Callback-Funktion hat dann einen Puffer gefüllt, der dann abgespielt wurde. Vielleicht war's auch etwas anders, das ist aber der klassische Weg (ging schon unter DOS so).

Gruß
xaromz

Speedmaster 2. Nov 2005 22:29

Re: .wav abspielen?
 
Zitat:

Zitat von 3_of_8
Also mit Mediaplayer wäre es am einfachsten.

Ich glaube das wollte er nicht hören!

Du musst den Soundtreiber direkt ansprechen, nähere Informationen dazu habe ich allerdings nicht!

3_of_8 2. Nov 2005 22:35

Re: .wav abspielen?
 
Haha, auslesen und dann jeden Ton selber an die Soundkarte schicken.

xaromz 2. Nov 2005 22:37

Re: .wav abspielen?
 
Hallo,
Zitat:

Zitat von 3_of_8
Haha, auslesen und dann jeden Ton selber an die Soundkarte schicken.

genau so wird's gemacht! :mrgreen:

Gruß
xaromz

3_of_8 2. Nov 2005 22:39

Re: .wav abspielen?
 
Vollkommen logisch. Warum es sich einfach machen und vorgefertigte Kompos hernehmen? :mrgreen:

Rastaman 3. Nov 2005 13:30

Re: .wav abspielen?
 
Zitat:

Zitat von 3_of_8
Vollkommen logisch. Warum es sich einfach machen und vorgefertigte Kompos hernehmen? :mrgreen:

Weil ich keine Lust habe, dass meine exe wegen dem Mediaplayer von 16 auf 370 kb wächst :?


Zitat:

Zitat von xaromz
Hallo,
Zitat:

Zitat von 3_of_8
Haha, auslesen und dann jeden Ton selber an die Soundkarte schicken.

genau so wird's gemacht! :mrgreen:

Gruß
xaromz

Und wie soll das gehen?
Wie gesagt, noch nie mit Sound-Dateien beschäftigt.
Hatte gestern vorm Posten versucht, jedes Byte auszulesen und das Highword als Frequenz und das LoWord als Länge zu nehmen und umgekehrt.
Nix is passiert :(

Master_RC 3. Nov 2005 13:35

Re: .wav abspielen?
 
nur mal ne frage:
Warum willst du nicht sndPlaySound nehmen?! Passt doch eigentlich.. :?

Rastaman 3. Nov 2005 13:36

Re: .wav abspielen?
 
Ja, aber wie soll man da die aktuelle Position zeigen :gruebel:

Master_RC 3. Nov 2005 13:39

Re: .wav abspielen?
 
Zitat:

Zitat von Rastaman
Ja, aber wie soll man da die aktuelle Position zeigen :gruebel:

oh ja, stimmt...
mit BASS kann man das aber, oder?
Und das kann man ja doch verkraften...
ansonsten weiß ich auch keine andere lösung, ich hab selbst nicht viel mit sound gemacht :oops:

Speedmaster 3. Nov 2005 13:40

Re: .wav abspielen?
 
Erster Link in Google gib Informationen über das wav-Format aus!
http://de.wikipedia.org/wiki/WAV_(Format)

TomKa 30. Dez 2006 11:01

Re: .wav abspielen?
 
Der Fred ist älter, aber das ist genau meine Frage. Bei Wiki find ich Info, wie isch die Wavedaten reinkrieg. Das stehen die ganzen Strukturen. Wie kieg ich das aber raus in die Soundkarte?

Tomka

Sunlight7 30. Dez 2006 12:36

Re: .wav abspielen?
 
Moin! :mrgreen:

Nun mal zur eigentlichen Frage... :wink:

WaveInfos bekommste mit Hier im Forum suchenTWaveFormatEx, einfach die 1. paar Bytes der Datei auslesen.
Abspielen zB. mit MSDN-Library durchsuchenWaveOutOpen, MSDN-Library durchsuchenWavOutPrepareHeader, MSDN-Library durchsuchenWaveOutWrite.
In der DP gibts auch was Hier im Forum suchenWaveOutOpen, Hier im Forum suchenWavOutPrepareHeader, Hier im Forum suchenWaveOutWrite

Tip: Mindestens 2 Buffer verwenden, besser sind jedoch 4 oder mehr, um Knackfreie Wiedergabe zu garantieren.

Grüßle!

Edit: Einen vergessen: MSDN-Library durchsuchenwaveOutGetPosition, damit bekommste die Position :wink:

flossinger 30. Dez 2006 12:56

Re: .wav abspielen?
 
Hallo,

das kann ich nur bestätigen. Der Zugriff auf die Soundkarte mittels WAVEFORM AUDIO bewährt sich in der Praxis gut. Damit sich der Fragesteller nicht durch die SERPS quälen muss, empfehle ich mal einen zentralen Link, wo man beginnen kann:WAVEFORM AUDIO REFERENCE der MSDN library.

grüsse,
der flossinger

SirThornberry 30. Dez 2006 13:13

Re: .wav abspielen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
zur Ergänzung von dem was Sunlight7 geschrieben hat: Es kommt nicht nur auf die Anzahl der Puffer an sondern auch auf die Größe derer. Bei vielen kleinen kommt es recht schnell zu aussetzern. Also lieber etwas größere Puffer nehmen. Dies hat jedoch als Nachteil das die Latenz höher ist. Wenn du also das ganze stopst sind schon jede Menge Daten an die Soundkarte geschickt wurden welche verworfen werden. Wenn du also nach dem Stop wieder los spielst musst du das einkalkulieren und die Daten erneut schicken. Oder man verwendet Pause aber dann bleiben die Daten weiterhin im Puffer der Soundkarte

[Edit]Weil ich heut gut gelaunt bin häng ich mal mein Projekt an welches die Verwendung demonstriert

Erst mit "FileOpen" eine Sounddate öffnen und dann wird mit den Buttons links von oben nach unten das ganze geladen, gestartet etc.
[/Edit]

TomKa 30. Dez 2006 17:15

Re: .wav abspielen?
 
Wau genau das habe ich gesucht. Danke an alle. Und Langeweile gibts jetzt in den Ferien auch nicht mehr.

tomka


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