Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Problem mit WaveInAddBuffer (https://www.delphipraxis.net/161238-problem-mit-waveinaddbuffer.html)

iphi 23. Jun 2011 18:50

Problem mit WaveInAddBuffer
 
Hallo,

ich habe mit Hilfe der Windows MMAPI Funktionen ein Threadobjekt geschrieben, mit dem ich von einer Soundkarte aufnehmen kann.
So lange ich nur einen Aufnahmethread habe, geht das prima.
Wenn ich aber zwei Instanzen des Threads auf zwei verschiedene Soundkarten gleichzeitig laufen lasse, kommt es hin und wieder zu einem merkwürdigen Fehler.

WaveInAddBuffer liefert zuweilen den Fehlercode 33, den diese Funktion laut MSDN eigentlich gar nicht liefern dürfte.

Hat jemand eine Idee, was mir dieser Fehler sagen will und wie ich das Problem einkreisen könnte?

Gruß, Thomas

lbccaleb 23. Jun 2011 19:03

AW: Problem mit WaveInAddBuffer
 
Hast du dir mal den Fehler Text ausgeben lassen mit "waveInGetErrorText"??

iphi 23. Jun 2011 19:52

AW: Problem mit WaveInAddBuffer
 
Zitat:

Zitat von lbccaleb (Beitrag 1107975)
Hast du dir mal den Fehler Text ausgeben lassen mit "waveInGetErrorText"??

Gute Idee. Das liefert

"Die Funktion kann nicht durchgeführt werden, wenn noch Mediendaten wiedergegeben werden. Starten Sie das Gerät neu, oder warten"

Hier bricht der String ab.
Ich gebe ja gar nichts wieder, ich nehme auf.

???

EWeiss 23. Jun 2011 20:36

AW: Problem mit WaveInAddBuffer
 
Zitat:

Zitat von lbccaleb (Beitrag 1107975)
Ich gebe ja gar nichts wieder, ich nehme auf.

???

Und du bist der Meinung das wenn Daten über die Soundkarte aufgenommen werden
diese keine Mediendaten sind?

Kann auch nur raten :glaskugel: 2 verschiedene Sounddevice aber ein Thread?
Sollten das dann nicht zwei verschiedene Threads sein ?

gruss

iphi 23. Jun 2011 20:46

AW: Problem mit WaveInAddBuffer
 
Zitat:

Zitat von EWeiss (Beitrag 1107992)
Kann auch nur raten :glaskugel: 2 verschiedene Sounddevice aber ein Thread?
Sollten das dann nicht zwei verschiedene Threads sein ?

gruss

Das sind zwei unabhängige Threads desselben Objekttyps.
Die sind völlig unabhängig voneinander, außer dass sie nahezu gleichzeitig gestartet und gestoppt werden.

Einer alleine läuft ewig, beide miteinander liefern nach 10..100 Start/Stop-Zyklen den beschriebenen Fehler.

P.S.
Zitat:

"Die Funktion kann nicht durchgeführt werden, wenn noch Mediendaten wiedergegeben werden.
Mir ist auch schleierhaft, wie nach WaveInReset und anschließendem waveInClose das Aufnahmegerät noch irgendetwas störendes machen könnte.
Trotzdem tritt der Fehler zumeist beim Starten der Aufnahme auf.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:58 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