Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [VB] sovrapporre 2 suoni .WAV !!!

    Salve ragazzi,

    ho necessità di sovrapporre 2 file .wav !!!

    Mi spiego meglio:
    sto realizzando un "giochino" tipo platform, in Visual Basic
    e tra le non poche difficoltà incontrate...
    c'è la necessità di sovrapporre 2 file sonori .wav
    il primo "parte" all'inizio del gioco e contiene
    la musica di sottofondo (e looppa infinitamente);
    il secondo invece deve essere chiamato "per esempio" quando sparo.

    Il problema è che al chiamare del secondo suono, il primo (cioè la musica di sottofondo) si "STOPPA!!!"

    Io vorrei sapere se c'è "APPUNTO" un metodo in VB per far si
    che chiamando una seconda API sndPlaySound() la prima continui
    a girare in sottofondo e che la seconda "lo sparo" si senta
    senza stoppare la prima!!!

    Spero di essere stato chiaro,
    attendo consigli utili

    Ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    sndPlaySound esegue un suono per thread (salvo procedura piu complicata)...

    Per ovviare a ciò creati un altro THREAD ed esegui sndPlaySound con il suono da eseguire.

  3. #3

    per $$$

    grazie per aver risposto...

    Ma purtroppo dichiarare + funzioni sndPlaySound()
    non funziona,

    cmq credo di aver risolto con una procedura che ho trovato
    in un sito su internet.

    Utilizza la libreria WAVMIX32.DLL

    per chi fosse interessato posto l'URL:

    http://www.vbexplorer.com/VBExplorer/sound.asp

    il progetto in questione si chiama WAVEMIX.

    Ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    ma nn dichiararne 2.... una x thread... cosi è come se ogni sndPlaySound fosse eseguito da un programma diverso!

  5. #5

    per $$$

    spiegami meglio

    io ho fatto in questo modo:

    codice modulo:
    codice:
    Declare Function sndPlaySound1 Lib "winmm" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
    Public Const SND_ASYNC1 = &H1
    Public Const SND_SYNC1 = &H0
    Public Const SND_LOOP1 = &H8
    
    Declare Function sndPlaySound2 Lib "winmm" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
    Public Const SND_ASYNC2 = &H1
    Public Const SND_SYNC2 = &H0
    Public Const SND_LOOP2 = &H8
    codice form:
    codice:
    Option Explicit
    Dim S1, S2 As Long
     
    Private Sub Form_Load()
        S1 = sndPlaySound1("C:\Documenti\backsound.wav", SND_ASYNC + SND_LOOP)
        S2 = sndPlaySound2("C:\Documenti\fire_gun.wav", SND_ASYNC)
    End Sub
    Ma... esegue solo il secondo cioè S2
    ma nn dichiararne 2.... una x thread... cosi è come se ogni sndPlaySound fosse eseguito da un programma diverso!
    postami un esempio di come faresti tu.

    Ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    non ho mai utilizzato VB x i thread... al massimo ti posto un esempio in ASSEMBLY ok?

  7. #7

    per $$$

    Ok ti ringrazio...

    è interessante vedere delle chiamate al sistema
    in ASSEMBLER

    anche se non credo che potrò adattare il codice ASM
    al VB mi farebbe cmq piacere vedere come si scrive.

    Ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    OK.... x le 20 credo di riuscire a farlo....OK?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.