trrunde Skrevet 13. mars 2005 Del Skrevet 13. mars 2005 Har lagt til et program som spiller lyd ved hjelp av playsound api'en men jeg vil gjøre slik at jeg ikke trenger å kopiere med meg lydfilen men bare selve programmet, hvordan kan jeg gjøre dette? Lenke til kommentar
Richard87 Skrevet 13. mars 2005 Del Skrevet 13. mars 2005 (endret) du kan bruke resource filer til og lagre lyden i og laste den inn i programmet under runtime.. husk og legg til VB 6 Resource Editor i add-inn menyen... så legger du til en ny resource fil i Project -> Add New Resource File... Using Resources in Code Visual Basic provides three functions for retrieving data from the resource file for use in code. Function Description LoadResString Returns a text string. LoadResPicture Returns a Picture object, such as a bitmap, icon, or cursor. LoadResData Returns a Byte array. This is used for .wav files, for example. ^^ fra MSDN Endret 13. mars 2005 av Richard87 Lenke til kommentar
aadnk Skrevet 13. mars 2005 Del Skrevet 13. mars 2005 Dersom du av en eller annen grunn ikke finner Resource Editoren (som jeg uheldigvis til stadighet opplever), kan du gjøre dette manuelt. Les denne artikkelen. Ellers spiller du av WAV-filen som følger: ' Source = http://support.microsoft.com/kb/q141505/ Private Declare Function sndPlaySound Lib "winmm" Alias "sndPlaySoundA" (lpszSoundName As Any, ByVal uFlags As Long) As Long Private Const SND_SYNC = &H0 Private Const SND_NODEFAULT = &H2 Private Const SND_MEMORY = &H4 Private Const SND_LOOP = &H8 Private Const SND_NOSTOP = &H10 Public Sub PlayWaveRes(vntResourceID As Variant, Optional vntFlags) '----------------------------------------------------------------- ' WARNING: If you want to play sound files asynchronously in ' Win32, then you MUST change bytSound() from a local ' variable to a module-level or static variable. Doing ' this prevents your array from being destroyed before ' sndPlaySound is complete. If you fail to do this, you ' will pass an invalid memory pointer, which will cause ' a GPF in the Multimedia Control Interface (MCI). '----------------------------------------------------------------- Dim bytSound() As Byte ' Always store binary data in byte arrays! bytSound = LoadResData(vntResourceID, "WAVE") If IsMissing(vntFlags) Then vntFlags = SND_NODEFAULT Or SND_SYNC Or SND_MEMORY End If If (vntFlags And SND_MEMORY) = 0 Then vntFlags = vntFlags Or SND_MEMORY End If sndPlaySound bytSound(0), vntFlags End Sub Lenke til kommentar
trrunde Skrevet 14. mars 2005 Forfatter Del Skrevet 14. mars 2005 Har noen et eksempel på hvordan jeg kan få implentert den wav filen i selve exe filen jeg får det ikke til. Har lagt til den resource greia og skriver PlaySound(LoadResData 101, "Custom"), 0&, SND_RESOURCE or SND_ASYNC men dette virker ikke Lenke til kommentar
aadnk Skrevet 14. mars 2005 Del Skrevet 14. mars 2005 Nei, naturligvis ikke. Du må jo gjøre det på den måten jeg siterte til deg. Se bare på dette programmet: Sounds.zip Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå