Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Daten aus Sounddatei auslesen (https://www.delphipraxis.net/85511-daten-aus-sounddatei-auslesen.html)

blablab 2. Feb 2007 16:20

Re: Daten aus Sounddatei auslesen
 
das problem ist, die hab ich ja drin...

beim befehl bass.BASS_StreamGetLength(stream) meckert er ja nur rum, dass er den befehl StreamGetLength nicht kennt. Bass kennt er...

EWeiss 2. Feb 2007 16:22

Re: Daten aus Sounddatei auslesen
 
Zitat:

Zitat von blablab
das problem ist, die hab ich ja drin...

beim befehl bass.BASS_StreamGetLength(stream) meckert er ja nur rum, dass er den befehl StreamGetLength nicht kennt. Bass kennt er...

Abhängig von der Version möglich das der Befehl in der 1.8 zu finden ist.

gruss

omata 2. Feb 2007 16:23

Re: Daten aus Sounddatei auslesen
 
In Version 2.1 gab es noch BASS_StreamGetLength, jetzt gibt es nur noch BASS_ChannelGetLength.
Nimm also BASS_ChannelGetLength.

Gruss
Thorsten

blablab 2. Feb 2007 16:33

Re: Daten aus Sounddatei auslesen
 
danke!

weißt du vielleicht noch, in welcher Unit TWaveData deklariert ist???

omata 2. Feb 2007 17:40

Re: Daten aus Sounddatei auslesen
 
Das kannst du selber deklarieren...

Delphi-Quellcode:
type
  TBassWaveDataDWORD = array[0..2048] of DWORD;
  TBassWaveDataSMALLINT = array[0..2048] of smallint;
  TBassWaveDataLong = array[0..8192] of smallint;
kommt eben darauf an, was du für Daten erhalten möchtest bzw. mit welchen Datentypen du weiterarbeiten möchtest.
ggf. musst du noch den dritten Parameter von BASS_ChannelGetData deinen Bedürfnissen anpassen.

Gruss
Thorsten

blablab 2. Feb 2007 19:28

Re: Daten aus Sounddatei auslesen
 
Also ich mach das bis jetzt so:

Delphi-Quellcode:
   if not BASS_Init(-1,44100,0,Application.Handle,nil) then
      ShowMessage('Can''t initialize device');

   chan := BASS_StreamCreateFile(FALSE, PChar(filename),0,0,0);
   for len := 0 to Ceil(bass.BASS_ChannelGetLength(chan) / WaveDataLength) do begin
      BASS_ChannelSetPosition(chan, len*WaveDataLength);
      BASS_ChannelGetData(chan, @WaveData, WaveDataLength);
      for i := 0 to WaveDataLength-1 do
         ShowMessage(IntToStr(WaveData[i]));
   end;
aber WaveData[i] ist immer 0!!!
(für WaveData hab ich einen array[0..WaveDataLength] of SmallInt genommen)

Was mach ich nur falsch???


Edit:
Kann ich für WaveData auch einen array of ShortInt nehmen?

omata 2. Feb 2007 19:31

Re: Daten aus Sounddatei auslesen
 
Die Auswertung geht nur, wenn der Channel auch abgespielt wird oder BASS_STREAM_DECODE/BASS_MUSIC_DECODE als Flag gesetzt wird...

Delphi-Quellcode:
  Channel := BASS_StreamCreateFile(false, PChar(filename), 0, 0, BASS_STREAM_DECODE);
  if (Channel = 0) then
    Channel := BASS_MusicLoad(false, PChar(filename), 0, 0, BASS_MUSIC_DECODE, 0);
Siehe auch hier.

Gruss
Thorsten

blablab 2. Feb 2007 22:11

Re: Daten aus Sounddatei auslesen
 
Danke Thorsten, du kennst dich echt perfekt aus!!! :thumb:

Jetzt funktionert das ganze eigentlich einwandfrei!!!
Aber dann ist da noch ein weiteres Problem aufgetreten: Auf einem alten Rechner (für den das ganze eigentlich gedacht ist) läuft das nicht mehr. Der kann die Bass.dll nicht initialisieren und dann kann er die Datei natürlich auch nicht öffnen.

Ich denk das liegt entweder daran, dass der Rechner irgendwelche Codecs nicht hat (Windows 98)oder weil er keine Soundkarte hat...

Nur ich weiß nicht, was ich dagegen machen kann.

Fällt dir oder jemand anderem dazu noch etwas ein???

omata 2. Feb 2007 22:15

Re: Daten aus Sounddatei auslesen
 
Zitat:

Zitat von blablab
Ich denk das liegt entweder daran, dass der Rechner irgendwelche Codecs nicht hat (Windows 98)oder weil er keine Soundkarte hat...

Das funktioniert auch wunderbar unter Windows98, aber eine Soundkarte muss das System natürlich haben!
Wie soll man den sonst irgendetwas mit Sounds machen?

Verwirrte Grüsse
Thorsten

blablab 2. Feb 2007 22:24

Re: Daten aus Sounddatei auslesen
 
Ja, ich weiß, ist etwas widersprüchlich...
Aber ich will ja nur eine mp3 öffnen, ich will sie ja nicht abspielen.
eigentlich ist das ja kein problem...
Aber wahrscheinlich prüft er erst, ob ich ne soundkarte hab. Und wenn ich keine hab dann verweigert er mir auch das öffnen von dateien, auch wenns eigentlich möglich wäre, oder?

Bedeutet das, mit der bass.dll hab ich keine chance dateien auszulesen ohne eine soundkarte...?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 Uhr.
Seite 2 von 3     12 3      

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