![]() |
Re: Sound aufnehmen
Kann es sein das ich den @fWaveData[pwh.dwUser].header erstmal leeren muss ??
|
Re: Sound aufnehmen
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. |
Re: Sound aufnehmen
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 :wall: Edit 2 : Der Fehler leigt bei :
Delphi-Quellcode:
pwh:=PWaveHdr(dwParam1)^;
|
Re: Sound aufnehmen
Sag ich doch, Pointer Fehler, scheint bei der Nachrichtenmethode etwas anders zu funktionieren.
Definiere "Fehler" :wink: |
Re: Sound aufnehmen
Liste der Anhänge anzeigen (Anzahl: 2)
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; |
Re: Sound aufnehmen
1.8 MB Screenshot :shock:
Mit meinem Modem lad' ich mir das net runter :wink:
Delphi-Quellcode:
Ist IMHO nach unnötig.
waveInPrepareHeader(fHandle, @fWaveData[pwh.dwUser].Header, SizeOf(fWaveData[pwh.dwUser].data));
Hmm, hab jetzt den Code kompiliert, läuft ohne Fehler :gruebel: 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. |
Re: Sound aufnehmen
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:
und das ist eher bei mir im Moment ein ausprobieren als ein wissen. |
Re: Sound aufnehmen
Zitat:
Zitat:
Schau Dich mal bei ![]() Zitat:
|
Re: Sound aufnehmen
Kann man auch den Soundkartenausgang "abhören", d.h. aufnehmen???
|
Re: Sound aufnehmen
Was meinst Du?
WaveOut? Da kannst Du schon aufnehmen, Du brauchst nur die Quelle im Mixer einstellen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:15 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 by Thomas Breitkreuz