portiert ich die MSDN-Capture-Stream Beispiel - https://msdn.microsoft.com/en-us/library/windows/desktop/dd370800Endlosschleife Lesepaketdaten in 1sec Loopback Aufnahme
und modifiziert es für Loopback, genau wie hier zu sehen -
https://github.com/slavanap/WaveRec/blob/754b0cfdeec8d1edc59c60d179867ca6088bbfaa/wavetest.cpp
Also ich bin anfordernden Dauer von 1 Sekunde Aufzeichnung, und tatsächliche Dauer überprüft, dass es 1 Sekunde ist.
Jedoch habe ich in einer Endlosschleife stecken bin in diesem Paket hier zu lesen, packetLength
ist immer ein Wert von 448
(numFramesAvailable
ist auch 448
, ich bin nicht sicher, warum es nie 0 wird als die while-Schleife erwartet wird.
-Code ist -
while (packetLength != 0)
{
// Get the available data in the shared buffer.
hr = pCaptureClient->GetBuffer(
&pData,
&numFramesAvailable,
&flags, NULL, NULL);
EXIT_ON_ERROR(hr)
if (flags & AUDCLNT_BUFFERFLAGS_SILENT)
{
pData = NULL; // Tell CopyData to write silence.
}
// Copy the available capture data to the audio sink.
// hr = pMySink->CopyData(pData, numFramesAvailable, &bDone);
// EXIT_ON_ERROR(hr)
hr = pCaptureClient->ReleaseBuffer(numFramesAvailable);
EXIT_ON_ERROR(hr)
hr = pCaptureClient->GetNextPacketSize(&packetLength);
EXIT_ON_ERROR(hr)
}
Mein portierten Code in ctypes und ist hier - https://github.com/Noitidart/ostypes_playground/blob/audio-capture/bootstrap.js#L71-L180
Wird irgendetwas im System gespielt? Wie eine MP3-Datei im Media Player. Da Sie Loopback-Aufnahmen machen, dachte ich, es könnten einfach keine Daten an Sie und damit die Schleife weitergeleitet werden. –
Thansk @RomanR. Nein, nichts spielt, aber ich habe die Lautstärke angepasst, um den * ting * Sound zu hören, den Sie von hier kennen: http://i.imgur.com/bqbG56a.png – Noitidart
@RomanR. Ich habe gerade versucht, mit einem Youtube-Video zu spielen, und jetzt bekomme ich 'packetLength: 896' und' numFramesAvailable: 896' aber wieder Endlosschleife. :( – Noitidart