31. januar 2001 - 17:32Der er
9 kommentarer og 1 løsning
Afspil Wav-fil
Hvordan kan jeg, når en MDIForm eller MDIChild til at afspille en wav-fil eller en avi-fil når den startes op ? Avi-filen skulle helst gerne vises direkte på formen uden andre ting...d.v.s play eller stop-knapper.
Indsæt komponenten \"Windows Media Player\", i dens properties kan du indstille at knapperne ikke vises. Lyd kan du se et svar på under et spørgsmål som jeg svarede på forleden dag, skal lige finde det.
Hej Tommy. Sikke noget! Det må jo være fordi du ikke har filen i din \\windows\\system, den er ellers almindeligt udbredt. Er det en meget ny installation du anvender af styresystemet? Opgiv mail-adr. så kan jeg sende dig en kopi af min. Den fylder ca. 110 kB og er fra 5. maj 1999.
Hvilken VB arbejder du med? Du skal nok lære Microsofts Download-sider at kende gennem din VB-karriere.
Jeg regner med at du har forstået det 2-delte svar og indsat i et modul (modul.bas): Declare Function sndPlaySound Lib \"mmsystem.dll\" (ByVal lydfilnavn$, ByVal wflags%) As Integer
Koden er ikke genskrevet hertil, men kopieret fra en kildetekst, hvor den virker. VB5 på win98, men den virker også i VB3 på win311.
lyd = app.Path & \"\\filnavn.wav\" wflags% = snd_async And snd_nodefault Y = sndPlaySound(lyd, wflags%)
Y skal måske være long, det skader vel ikke. Lyd skal selvfølgelig være en string. Jeg går ud fra du \"dim\'er\". wav-filen skal eksistere, her i app.path.
Option explicit anvender jeg ikke, og det kan ikke have betydning for om VB kan finde mmsystem.dll. Prøv evt. med en Y as variant, det bliver den hvis du helt undlader at Dim\'me den, - og option explicit ikke er aktiv! Jeg anvender så få restriktioner i min kode, som muligt.
Nu har jeg fulgt din hjælp punkt for punkt...fjernet \'option explicit\' igen og den melder stadig fejl ved mmsystem.dll Wav-filen ligger i den samme mappe som projektet
Min form ser sådan ud :
Private Sub Form_Load()
Dim lyd As String, Y As Single (har prøvet Y as Long, og Y as Variant)
lyd = App.Path & \"\\Track01.wav\" wflags% = snd_async And snd_nodefault Y = sndPlaySound(lyd, wflags%) <--- Henviser altid hertil
End Sub
Mit modul ser sådan ud :
Declare Function sndPlaySound Lib \"mmsystem.dll\" (ByVal lydfilnavn$, ByVal wflags%) As Integer
Global Const SND_SYNC = &H0 Global Const SND_ASYN = &H1 Global Const snd_nodefault = &H2 Global Const SND_LOOP = &H8 Global Const SND_NOSTOP = &H10
Tommy. mmsystem.dll er jo en fil til 16-bit miljø, og mens den angivne kode fungerer i et VB3 projekt, kan jeg heller ikke få den til det i VB5. Jeg forsøger at finde en måde at angive at mmsystem.dll skal genkendes af projektet, men det er ikke lykkedes. Den kan næppe tilføjes som AktiveX-komponent. Har lavet projekt som indeholder både funktionen sndplaysound og wplany (som virker helt i baggrunden) så du kan få din lyd. Projektet er zippet til 53 kB.
M.v.h. Jørn
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.