Afspilning af bølgefil slutter straks (C ++, Windows)

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har fået følgende situation. På en maskine er der et Fritz ISDN kort. Der er en proces, der er ansvarlig for at spille en bestemt bølgefil på denne enheds bølge ud ( ISDN forbindelsen er lavet ved opstart og gjort vedvarende). Scenariet er nemt, når det er nødvendigt, kalder processen [[waveOutWrite() på den tidligere åbnede bølgeenhed (alt initialiseret uden problemer selvfølgelig) og en tilbagekaldsfunktion venter på MM\_WOM\_DONE msg for at vide, at afspilningen er færdig.


Siden nogle få dage dog (ingenting ændret hverken i processen eller i maskinen) er meddelelsen MM\_WOM\_DONE kommet umiddelbart efter at have ringet waveOutWrite(), selvom bølgen varer et par sekunder. Igen rapporteres der ingen fejl, det ser ud til, at filen blev spillet, men havde nul længde (hvilket ikke er tilfældet). Jeg er også sikker på, at waveOutReset() ikke blev kaldt af min proces (det ville også udløse at sende den nævnte besked). Jeg har allerede tidligere brugt nogle mærkelige problemer, hvor det kun blev løst ved at geninstallere TAPI drivere. Denne gang af en eller anden grund er det problematisk for mig at udføre det igen og jeg forsøger mere analytisk tilgang :). Eventuelle forslag, hvad der kan forårsage en sådan adfærd? Måske noget i den anden ende af ISDN -linjen?

Bedste reference


Baseret på din beskrivelse spiller du leget asynkront. Er du sikker på, at backuphukommelsen til wav-filen ikke bliver renset op i den tid?

Andre referencer 1


Jeg har ikke tid til Google for meget til dette, men jeg ved, at enten Larry Osterman eller Raymond Chen blogged om en lignende situation.


Jeg vil checke tilbage senere, når jeg har mere tid til at se om dette spørgsmål stadig er åbent.

Andre referencer 2


Hvad er returværdien, når lyden ikke afspilles? Hvis du får MMSYSERR\_NOERROR, der peger på, at driveren fejlagtigt rapporterer til OS'et, at bufferen blev behandlet.


Har WAV-filen selv ændret sig? Denne blogindgang indikerer, at nogle ret dybtgående validering er udført på metadata. [6]