Delphi-PRAXiS
Seite 5 von 10   « Erste     345 67     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Tutorials und Kurse (https://www.delphipraxis.net/36-tutorials-und-kurse/)
-   -   Delphi Sound aufnehmen (https://www.delphipraxis.net/7803-sound-aufnehmen.html)

Tropby 6. Dez 2006 17:23

Re: Sound aufnehmen
 
Wie geht denn das mit dem einzufügen ??

So ? :

Delphi-Quellcode:
 
Result := waveInOpen(@fHandle, aDevice, @Format, Cardinal(@waveInProc), cardinal(self), CALLBACK_FUNCTION);
for I := 1 to 5 do
  begin
    fWaveData := TWaveData.Create;
    fWaveData.Header.lpData := fWaveData.Data;
    fWaveData.Header.dwBufferLength := cWaveBufferSize;
    fWaveData.Header.dwFlags := 0;
    Result := waveInPrepareHeader(fHandle, @fWaveData.Header,cWaveBufferSize);
    Result := waveInAddBuffer(fHandle, @fWaveData.Header, cWaveBufferSize);
  end;

Und dann noch mal da wo ich die daten auswerte oder wie ??

Sunlight7 6. Dez 2006 17:40

Re: Sound aufnehmen
 
Jepp:
Delphi-Quellcode:
 
Result := waveInOpen(@fHandle, aDevice, @Format, Cardinal(@waveInProc), cardinal(self), CALLBACK_FUNCTION);
for I := 1 to 5 do
  begin
    fWaveData[i] := TWaveData.Create;
    fWaveData[i].Header.lpData := fWaveData[i].Data;
    fWaveData[i].Header.dwBufferLength := cWaveBufferSize;
    fWaveData[i].Header.dwFlags := 0;
    Result := waveInPrepareHeader(fHandle, @fWaveData[i].Header,cWaveBufferSize);
    Result := waveInAddBuffer(fHandle, @fWaveData[i].Header, cWaveBufferSize);
    // Aber eigentlich sollte man das Ergebnis vom Result prüfen ;)
  end;

Zitat:

Zitat von Tropby
Und dann noch mal da wo ich die daten auswerte oder wie ??

Noch n Jepp
In der WIM_DATA Nachricht steht drinne, welcher Buffer es ist, den schickste zurück in die Liste.

Am besten, Du machst Dir ein Array mit den Buffern.
Ich nutzte immer den dwUser, um einen Index vom Array zu setzen, so weiß ich einfach, welcher Buffer zurück in die Liste muß.

Tropby 6. Dez 2006 18:04

Re: Sound aufnehmen
 
Das mit dem dwUser verstehe ich nicht :oops:

Ich hab da nur das :
Delphi-Quellcode:
procedure waveInProc(hwi: HWAVEIN; uMsg: UINT; dwInstance, dwParam1, dwParam2 : DWord); stdcall;
Oder wie kann ich das übergeben ??

Sonst schreib ich da nachher noch den Falschen rein XD

Sunlight7 6. Dez 2006 18:11

Re: Sound aufnehmen
 
Das kannst Du in der WAVEHDR Struktur angeben :wink:

Zb:
Delphi-Quellcode:
fWaveData[i].Header.dwUser := i;

Tropby 6. Dez 2006 18:20

Re: Sound aufnehmen
 
Ich verstehe es einfach nicht :wall: :wall: :wall:

Delphi-Quellcode:
procedure waveInProc(hwi: HWAVEIN; uMsg: UINT; dwInstance, dwParam1, dwParam2 : DWord); stdcall;
var
  classinstance: TWaveIn absolute dwInstance;
begin
 if umsg = WIM_DATA then
 begin
   with classinstance do
   begin
     if fWaveData[???].Header.dwBytesRecorded = 0 then exit;
     fWaveData[???].Stream.Write(fWaveData[???].Data, fWaveData[???].header.dwBytesRecorded);
     if fWaveData[???].Header.dwFlags and MHDR_DONE = MHDR_DONE then
     begin
Wie komm ich da an die Indexe von dem Array ??

Sunlight7 6. Dez 2006 18:36

Re: Sound aufnehmen
 
In dem Parameter dwParam1 steht die Adresse vom WAVEHDR, den kannste "anzapfen".

Delphi-Quellcode:
...
var pwh:TWaveHeader;
...
pwh:=PWaveHeader(lParam)^;
...
WaveInAddBuffer(fHandle, @fWaveData[pwh.dwUser], cWaveBufferSize));
Eigentlich müsste das auc hfunktionieren, oder? :gruebel:
Delphi-Quellcode:
WaveInAddBuffer(fHandle, @pwh, cWaveBufferSize));
Weiß grad net, ich mach das mit der Callback Procedure...

Tropby 6. Dez 2006 18:45

Re: Sound aufnehmen
 
Das geht bei mir nicht da kommt immer :

Delphi-Quellcode:
pwh:=PWaveHeader(lParam)^;

Klammer auf erwartet aber Klammer zu gefunden ^^

Edit : PWaveHeader gibts bei mir nicht :( bei mir gibts nur PWaveHdr

Sunlight7 6. Dez 2006 18:57

Re: Sound aufnehmen
 
Jepp, dann mach dwParam1 draus, bei mir heißen die lParam und wParam, deshalb, hab nur von meinem Code rauskopiert :mrgreen:

Edit: Dann nimm den, PWaveHdr, is eh das gleiche :wink:

Edit: Fix, immer diese Tippfehler :roll:

Tropby 6. Dez 2006 19:05

Re: Sound aufnehmen
 
Misst jetzt stürtzt mir immer Delphi ab sobalt ich das ding starte :( :( :(

Sunlight7 6. Dez 2006 19:12

Re: Sound aufnehmen
 
Willkommen im Club, das hat ich auch mal ne Zeit bei meinem Projekt, läuft es ohne die IDE?


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:50 Uhr.
Seite 5 von 10   « Erste     345 67     Letzte »    

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