Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi How to play WAV files with Wave API (https://www.delphipraxis.net/103087-how-play-wav-files-wave-api.html)

DIET3RIX 9. Nov 2007 18:22


How to play WAV files with Wave API
 
Hallo Leute,

ich habe mich ein bissle mit low-level-api beschäftigt, wozu ich leider zu wenig Lesestoff gefunden habe.
Nun bin ich an dem Punkt angelangt, wo ich mich frage wie ich MP3 Dateien (oder andere Formate wie ogg, wma usw.) abspielen kann.

Hat da einer Ahnung von und kann mir ein bissle dabei helfen? Lesestoff zu low-level-api allg. wäre auch sehr hilfreich.

Ich bedanke mich voraus.

MFG
DIET3RIX


PS: Ich weiss das es viele MP3-Player usw. gibt, aber ich mache es für mich und um mein Wissen zu erweitern, aber auch weil Musik mein Hobby ist :)

[edit=SirThornberry]Titel geändert - Mfg, SirThornberry[/edit]

Muetze1 9. Nov 2007 20:23

Re: low-level-api: MP3 abspieln
 
Die Frage die sich für mich stellt ist: was ist für dich eine "Low-Level-API". Also entweder ich spiele sie über die WinAPI ab (ACM->WaveOut) oder ich gehe auf "low-level" und decodiere die MP3 Datei selber. Ganz Low Level wäre dann das direkte ansprechen der Soundkarte mit einem Treiber und Ausgabe des Sounds oder um hier ein wenig mehr die "higher-level API" zu nutzen, falle ich auf WaveOut zurück.

Wie schön doch solche Modewörter sind - sie sind genauso schwammig wie auch die Definition der Leute. Jeder stellt sich was anderes darunter vor, darum: was stellst du dir unter dem Begriff vor?

DIET3RIX 10. Nov 2007 09:53

Re: low-level-api: MP3 abspieln
 
Hi,

sagen wir es mal so.
- MCI (Media Controll Interface) zu verwenden will ich vermeiden.
- Hab leider nichts gefunden, wie ich die Soundkarte direkt ansprechen kann.
- Dann würde ich doch sagen, dass ich das ganze über die "higher-level API" (waveOutWrite) probieren möchte. (Es sei denn du hast Lesestoff zum 2. Punkt)

Ich hab mir schon gedacht, dass ich die MP3-Dateien selber decodieren muss, aber wie schnell bzw. wie langsam ist solch eine Methode?


MFG
DIET3RIX

BullsEye 10. Nov 2007 11:22

Re: low-level-api: MP3 abspieln
 
http://www.delphipraxis.net/internal...t.php?t=119063

http://www.delphipraxis.net/internal...=bassdllplayer
<--runterladen,installieren und nutzen ;)

Progman 10. Nov 2007 11:33

Re: low-level-api: MP3 abspieln
 
@BullsEye: Das ist ihm zu einfach, er will doch Low-Level-API-Programmieren und mp3 selbst entschlüsseln..... ;)

Muetze1 10. Nov 2007 16:40

Re: low-level-api: MP3 abspieln
 
Das schrottige MCI Interface hatte ich auch nicht vermutet. Grundlegend kannst du die MP3 Dateien auch dekodieren lassen, schliesslich ist genau dafür der ACM geschaffen worden und er liefert schon ein Datenformat welches du direkt an WaveOut weitergeben kannst. Weiterer Vorteil: Du kannst durch den ACM auch viele weitere Formate unterstützen, so lange es den entsprechenden Codec gibt. (MP3 Codec zum dekodieren ist in Windows vorinstalliert).

Und zum zweiten Punkt: Es gibt genug und genauso keine Informationen dazu. Jeder Hersteller kocht sein Süppchen beim HW Interface zu den Soundkarten etc. Manche sind gut dokumentiert, andere total schlecht bzw. gar nicht. Ausserdem müsstest du dann für jede beliebige Soundkarte bzw. Hersteller eine extra Unterstützung bauen. Dies nehmen dir sonst die Treiber vom Hersteller für Windows ab. Das ist aber nichtmal das einzige Problem. Wenn du die HW Informationen hättest, müsstest einen Treiber programmieren - und lass dir gesagt sein, dass die Welt in Windows eine komplett andere ist. Es ist nichtmal ansatzweise einfach sowas zu machen - selbst für einen erfahrenen Windows GUI Programmierer. Vor allem kannst du mit dem Teil sehr leicht für Verstimmung im System sorgen und vom totalen Hardwareverlust bis zum dauerhaften Blue-Screen System alles hinbekommen - und das noch nicht mal mit Absicht...

DIET3RIX 10. Nov 2007 17:35

Re: low-level-api: MP3 abspieln
 
Vielen Dank für die Information :thumb:

Dann werde ich den zweiten Punkt wieder schnell vergessen, da sich die Mühe nicht wirklich lohnt.

D.h. also das ich (wma, ogg usw.) MP3-Dateien in WAV-Dateien dekodieren muss und die dann abspielen, oder?
Dann muss ich wohl sehen, wie ich das Dekodieren umsetzen kann, ohne viel Performance zu verbrauchen.

Bitte korrigier mich, wenn ich falsch liege.

Progman 10. Nov 2007 17:53

Re: low-level-api: MP3 abspieln
 
Und warum nimmst du dazu nicht eine gängige DLL (bass.dll, fmod.dll, squall.dll)?
Da ist das alles schon realisiert. Man muss es nur noch nutzen.

Muetze1 10. Nov 2007 18:51

Re: low-level-api: MP3 abspieln
 
Zitat:

Zitat von DIET3RIX
D.h. also das ich (wma, ogg usw.) MP3-Dateien in WAV-Dateien dekodieren muss und die dann abspielen, oder?

Das machen die beim ACM registrierten Audio Codecs doch schon. Vor allem sind die garantiert performanter als jeder Code von dir.

DIET3RIX 10. Nov 2007 19:18

Re: low-level-api: MP3 abspieln
 
Ahso, ok, jetzt habe ich es verstanden. Vielen Dank!
Hast du evtl. bissle Lesestoff für mich? Wäre sehr hilfreich.

@ Progman

Weil ich die schon ausprobiert habe. Jetzt bin ich an dem Zeitpunkt angelangt, wo ich versuche das ganze selber zu programmieren.
So habe ich meinen eigenen Player wie ich den haben will und zusätzlich erweitere ich mein Wissen (höhrer Priorität).


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:08 Uhr.
Seite 1 von 3  1 23      

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