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 6 von 10   « Erste     456 78     Letzte »    
Tropby

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

Re: Sound aufnehmen

  Alt 6. Dez 2006, 19:21
Kann es sein das ich den @fWaveData[pwh.dwUser].header erstmal leeren muss ??
  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, 19:34
Was willst Du da ausleeren?

Evtl. ein Un/PrepareHeader.
Ich mach das nicht, aber wie gesagt, ich mach es mit der CallBack.

Aber eher denke ich an einen Pointer Fehler.
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, 20:04
Hm gut dass ich mich damit nicht so gut auskenne XD

Edit : Wenn ich langsam durch gehe kommt kein Fehler aber wenn ich das Programm einfach laufen lasse dann kommt der Fehler

Edit 2 :

Der Fehler leigt bei :
   pwh:=PWaveHdr(dwParam1)^;
  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, 20:40
Sag ich doch, Pointer Fehler, scheint bei der Nachrichtenmethode etwas anders zu funktionieren.

Definiere "Fehler"
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, 20:49
Also wenn ich das Projekt starte kommt da so nen Fehler (siehe Bilder)

Und dann geht halt nichts mehr. Könnte aber auch an diesem Code liegen :

Delphi-Quellcode:
procedure waveInProc(hwi: HWAVEIN; uMsg: UINT; dwInstance, dwParam1, dwParam2 : DWord); stdcall;
var
  classinstance: TWaveIn absolute dwInstance;
  pwh:TWaveHdr;
begin
 if umsg = WIM_DATA then
 begin
   pwh:=PWaveHdr(dwParam1)^;
   with classinstance do
   begin
     fWaveData[pwh.dwUser].Stream.Write(fWaveData[pwh.dwUser].Data, fWaveData[pwh.dwUser].header.dwBytesRecorded);

     if fWaveData[pwh.dwUser].Header.dwFlags and MHDR_DONE = MHDR_DONE then
     begin
       fWaveData[pwh.dwUser].Stream.Position := 0;
       if Assigned(fOnData) then
         fOnData(fWaveData[pwh.dwUser].Stream);
       fWaveData[pwh.dwUser].Stream.Clear;
     end;

// fWaveData[pwh.dwUser].Header.lpData := fWaveData[pwh.dwUser].Data;
     fWaveData[pwh.dwUser].Header.dwBufferLength := cWaveBufferSize;
     fWaveData[pwh.dwUser].Header.dwFlags := 0;
     fWaveData[pwh.dwUser].Header.dwBytesRecorded := 0;


     waveInPrepareHeader(fHandle, @fWaveData[pwh.dwUser].Header, SizeOf(fWaveData[pwh.dwUser].data));
     waveInAddBuffer(fHandle, @fWaveData[pwh.dwUser].Header, SizeOf(fWaveData[pwh.dwUser].data));
   end;
 end;
end;
Angehängte Grafiken
Dateityp: jpg fehler_530.jpg (391,8 KB, 29x aufgerufen)
Dateityp: jpg fehler2_181.jpg (1,18 MB, 36x aufgerufen)
  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, 21:15
1.8 MB Screenshot
Mit meinem Modem lad' ich mir das net runter

waveInPrepareHeader(fHandle, @fWaveData[pwh.dwUser].Header, SizeOf(fWaveData[pwh.dwUser].data)); Ist IMHO nach unnötig.

Hmm, hab jetzt den Code kompiliert, läuft ohne Fehler
Mal abgesehen von den Compilermeldungen, etwas sehr nachlässig programmiert...

Edit: Was machste eigentlich in der OnData?
Genaugenommen darfste da nicht auf die VCL Zugreifen und (fast) keine API Funktionen aufrufen.
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 7. Dez 2006, 10:29
Oh hab vergessen die Screenshots zu komprimieren


Das ist mein OnData :


Delphi-Quellcode:
procedure TForm1.OnData(const aStream: TMemoryStream);
var header: TWaveHdr;
begin
  header.lpData := aStream.Memory;
  header.dwBufferLength := cWaveBufferSize;
  header.dwFlags := 0;
  waveOutPrepareHeader(fhandle, @header, cWaveBufferSize);
  waveOutWrite(fhandle, @header, cWaveBufferSize);
end;
Zitat:
Hmm, hab jetzt den Code kompiliert, läuft ohne Fehler Grübelnd...
Mal abgesehen von den Compilermeldungen, etwas sehr nachlässig programmiert...
Ähm ja ich bin ja noch nicht wirklich drin was das alles mit den pointern und so angeht ^^
und das ist eher bei mir im Moment ein ausprobieren als ein wissen.
  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 7. Dez 2006, 13:57
Zitat von Tropby:
Oh hab vergessen die Screenshots zu komprimieren
Dann mach es jetzt noch

Zitat von Tropby:
Ähm ja ich bin ja noch nicht wirklich drin was das alles mit den pointern und so angeht ^^
und das ist eher bei mir im Moment ein ausprobieren als ein wissen.
Der Original Source ist nachlässig programmiert, das war nicht gegen Dich, ich weiß, das Du n Neuling bist
Schau Dich mal bei Hier im Forum suchenResult um, Rückgabewerte sollten überprüft werden, sonst hat es gar keinen Sinn diese zu speichern.

Zitat von Tropby:
Das ist mein OnData :
Delphi-Quellcode:
procedure TForm1.OnData(const aStream: TMemoryStream);
var header: TWaveHdr;
begin
  header.lpData := aStream.Memory;
  header.dwBufferLength := cWaveBufferSize;
  header.dwFlags := 0;
  waveOutPrepareHeader(fhandle, @header, cWaveBufferSize);
  waveOutWrite(fhandle, @header, cWaveBufferSize);
end;
Ich meine, genau da hakts, Editiere mal da alles raus, obs dann auch zu nem Fehler kommt, IMHO darfste genau das nicht machen.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
zahor

Registriert seit: 27. Jun 2006
Ort: im hintersten Winkel des RAMs
182 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Sound aufnehmen

  Alt 7. Dez 2006, 16:15
Kann man auch den Soundkartenausgang "abhören", d.h. aufnehmen???
Real Programmers always confuse Christmas and Halloween because Oct31 = Dec25. - Andrew Rutherford
  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 7. Dez 2006, 16:51
Was meinst Du?
WaveOut?

Da kannst Du schon aufnehmen, Du brauchst nur die Quelle im Mixer einstellen.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 10   « Erste     456 78     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