AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Sound aufnehmen
Tutorial durchsuchen
Ansicht
Themen-Optionen

Sound aufnehmen

Ein Tutorial von overmoon · begonnen am 21. Aug 2003 · letzter Beitrag vom 17. Jan 2016
Antwort Antwort
Seite 5 von 10   « Erste     345 67     Letzte »    
Tropby

Registriert seit: 4. Dez 2006
16 Beiträge
 
#1

Re: Sound aufnehmen

  Alt 6. Dez 2006, 17:23
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 ??
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#2

Re: Sound aufnehmen

  Alt 6. Dez 2006, 17:40
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 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ß.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Tropby

Registriert seit: 4. Dez 2006
16 Beiträge
 
#3

Re: Sound aufnehmen

  Alt 6. Dez 2006, 18:04
Das mit dem dwUser verstehe ich nicht

Ich hab da nur das :
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
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#4

Re: Sound aufnehmen

  Alt 6. Dez 2006, 18:11
Das kannst Du in der WAVEHDR Struktur angeben

Zb: fWaveData[i].Header.dwUser := i;
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Tropby

Registriert seit: 4. Dez 2006
16 Beiträge
 
#5

Re: Sound aufnehmen

  Alt 6. Dez 2006, 18:20
Ich verstehe es einfach nicht

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 ??
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#6

Re: Sound aufnehmen

  Alt 6. Dez 2006, 18:36
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?
WaveInAddBuffer(fHandle, @pwh, cWaveBufferSize)); Weiß grad net, ich mach das mit der Callback Procedure...
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Tropby

Registriert seit: 4. Dez 2006
16 Beiträge
 
#7

Re: Sound aufnehmen

  Alt 6. Dez 2006, 18:45
Das geht bei mir nicht da kommt immer :

pwh:=PWaveHeader(lParam)^;
Klammer auf erwartet aber Klammer zu gefunden ^^

Edit : PWaveHeader gibts bei mir nicht bei mir gibts nur PWaveHdr
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#8

Re: Sound aufnehmen

  Alt 6. Dez 2006, 18:57
Jepp, dann mach dwParam1 draus, bei mir heißen die lParam und wParam, deshalb, hab nur von meinem Code rauskopiert

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

Edit: Fix, immer diese Tippfehler
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Tropby

Registriert seit: 4. Dez 2006
16 Beiträge
 
#9

Re: Sound aufnehmen

  Alt 6. Dez 2006, 19:05
Misst jetzt stürtzt mir immer Delphi ab sobalt ich das ding starte
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#10

Re: Sound aufnehmen

  Alt 6. Dez 2006, 19:12
Willkommen im Club, das hat ich auch mal ne Zeit bei meinem Projekt, läuft es ohne die IDE?
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 10   « Erste     345 67     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 Uhr.
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