Windows7 Problem bei Aufnahme und Abspielen von Audio

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Windows7 Problem bei Aufnahme und Abspielen von Audio

    Hallo!

    Ich habe folgendes Problem:

    Ich nutze die winmm.dll zum Aufnehmen und Abspielen von Audio.

    Dazu hole ich mir das Audio Device per waveInOpen(), allociere die Audio Puffer,
    mache waveInPepareHeader() und waveInAddBuffer(), und lasse mir die MM_WIM_DATA
    Messages an einen HWnd schicken, mache dann ein waveInUnprepareHeader() und dann
    geht das wieder von vorne los.
    Das Programm lauscht ständig auf den Audio Input auf diese Weise, mit insgesamt
    8 Puffern die als Ring angeordnet sind.
    Ab und an will ich einen Sound abspielen, und nutze dazu PlaySound().

    Das ganze funktioniert auch wunderbar unter WinXP und Vista.
    Unter Windows7 hingegen passiert es manchmal (zufällig, etwa 1 aus 10), dass es einen Deadlock
    gibt in PlaySound(). Wenn ich PlaySound() mit SND_SYNC Flag abspiele, hängt das Programm
    für genau die Länge aller meiner Puffer zusammen. Wenn ich mit SND_ASYNC abspiele,
    hängt es sich komplett auf.

    Hat jemand eine Ahnung woran das liegt? Ich kann doch nicht der einzige sein,
    der dieses Problem hat.
    Muss ich den Code beim Empfangen der MM_WIM_DATA Message per Semaphore oder
    CritricalSection schützen, damit es keine Komplikationen mit gleichzeitig laufendem
    PlaySound() gibt?

    Viele Dank für Hinweise!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Der_Wanderer ()