Associare al click di un pulsante un suono proveniente da un file esterno di Access.

Anonimo
2017-06-21T18:33:17+00:00

Ciao,

in un modulo ho inserito la seguente funzione:

Declare PtrSafe Function apisndPlaySound Lib "winmm" Alias "sndPlaySoundA" _

   (ByVal fnome As String, ByVal sndasync As Long) As Long

e l'ho richiamata in questo modo:

MsgBox apisndPlaySound("C:\Users\Vladimiro\Desktop\Telefono", 1)

però il suono è sempre quello predefinito di Access e non quello del file Telefono.

Vladimiro

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2017-06-22T15:48:29+00:00

Ciao Vladimiro

ti ringrazio. 

Il path al file, così come lo hai indicato, non è scritto correttamente.


sMusicFile = Application.CurrentProject.Path & "\Telefono" & ".Mp3"


Telefono è un file o una cartella?

Se è un file allora sarà:


sMusicFile = Application.CurrentProject.Path & "\Telefono.Mp3"


se invece è una cartella qual'è il nome del file da suonare?


sMusicFile = Application.CurrentProject.Path & "\Telefono" & "NOMEFILE.Mp3"


David

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2017-06-22T08:24:33+00:00

Ciao Vladimiro,

da quello che leggo in sndPlaySound Function

<The sndPlaySound function plays a waveform sound specified either by a file name or by an entry in the registry or the WIN.INI file. This function offers a subset of the functionality of the PlaySound function; sndPlaySound is being maintained for backward compatibility.>

Credo (ma non ho provato) che anche per la sua sostituta PlaySound ci sia lo stesso problema, ovvero può utilizzare solo file Wav.

Cercando nel web ho trovato però questa discussione "Play any audio file using vba excel" in cui è riportato del codice che ho utilizzato con successo per suonare un file mp3. Di seguito una versione leggermente modificata:


Private Declare PtrSafe Function mciSendString Lib "winmm.dll" Alias _

   "mciSendStringA" (ByVal lpstrCommand As String, ByVal _

   lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal _

   hwndCallback As Long) As Long

Private sMusicFile As String

Private Play

Public Sub PlaySound()

sMusicFile = "TuoFile.mp3"

Play = mciSendString("play " & sMusicFile, 0&, 0, 0)

If Play <> 0 Then 'this triggers if can't play the file

    'Play = mciSendString("'play " & sMusicFile & "'", 0&, 0, 0) 'i tried this aproach, but doesn't seem to work

End If

End Sub

Public Sub StopSound()

    sMusicFile = "TuoFile.mp3"

    Play = mciSendString("close " & sMusicFile, 0&, 0, 0)

End Sub


Qualcosa di molto simile è riportata anche da John Walkenbach nelle sue pagina "Playing Sound From Excel" a proposito di file MIDI. 


Private Declare Function mciExecute Lib "winmm.dll" _
  (ByVal lpstrCommand As String) As Long

Sub PlayMIDI()
    MIDIFile = "xfiles.mid"
    MIDIFile = ThisWorkbook.Path & "\" & MIDIFile
    mciExecute ("play " & MIDIFile)
End Sub

Sub StopMIDI()
    MIDIFile = "xfiles.mid"

    MIDIFile = ThisWorkbook.Path & "\" & MIDIFile
    mciExecute ("stop " & MIDIFile)
End Sub---

Cambiando il file il medesimo codice funziona perfettamente anche per MP3

David

La risposta è stata utile?

0 commenti Nessun commento

12 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2017-06-21T22:29:55+00:00

    Ciao Vladimiro,

    sembrerebbe che manchi il riferimento al file da suonare. Ammesso che il file sonoro si chiami "Telefono.wav"  prova con 

    MsgBox apisndPlaySound("C:\Users\Vladimiro\Desktop\Telefono.wav", 1)

    David

    Ciao David,

    il file è un Mp3 e comunque già l'avevo provato con l'estensione . Mp3

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-06-21T21:27:55+00:00

    ciao Vladimiro,

    da me viene riprodotto il suono predefinito nel caso in cui il path è non corretto o il file non esiste.

    Certo il il path sia corretto?

    Credo inoltre si possa omettere la funzione msgBox.

    Facci sapere.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-06-21T21:17:44+00:00

    Ciao Vladimiro,

    sembrerebbe che manchi il riferimento al file da suonare. Ammesso che il file sonoro si chiami "Telefono.wav"  prova con 

    MsgBox apisndPlaySound("C:\Users\Vladimiro\Desktop\Telefono.wav", 1)

    David

    La risposta è stata utile?

    0 commenti Nessun commento