Ir para conteúdo
Fórum Script Brasil
  • 0

Controle De Volume Na Wmp.dll


bsmith

Pergunta

Olá pessoal, sou novo por aqui e por sinal ouvi falar muito bem da comunidade.

Pois bem, eu uso o componente wmp.dll mas gostaria de saber como faço pra alterar o volume do que esta sendo executado por comandos, uma vez que ao contrario da msdxm.ocx, não existe um valor "Volume" nele.

Abraços!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Bom, nunca utilizei nenhuma das duas para isso, mas sim as funções waveOutGetVolume() e waveOutSetVolume() da API Winmm. Você pode colocar isso em um módulo:

Private Declare Function waveOutGetVolume Lib "winmm.dll" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long
Private Declare Function waveOutSetVolume Lib "winmm.dll" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long

Public Sub SetVolume(ByVal level As Long)
    Dim tmp As String
    Dim Vol As Long
    tmp = Right((Hex$(level + 65536)), 4)
    Vol = CLng("&H" & tmp & tmp)
    waveOutSetVolume 0, Vol
End Sub

Public Function GetVolume()
    Dim a As Long, i As Long
    Dim tmp As String
    
    a = waveOutGetVolume(0, i)
    tmp = "&h" & Right(Hex$(i), 4)
    GetVolume = CLng(tmp)
End Function

E depois você poderá passar para SetVolume os valores de 0 (mudo, sem som) até 65534 (volume máximo) e utilizar GetVolume para saber o volume atual.

Certo? ;)

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Graymalkin

Certo cara, funcionou certinho...

Mas no caso ele alteraria o volume "Wave" do usuário, tendo efeitos nos demais programas que utilizam som sendo executado. No caso estou usando wmp.dll pra tocar um som proprio de meu programa, e queria ter controle de seu volume sem alterar os demais, sera que é possivel?

De qualquer forma, sua solução já me foi muito útil, muito obrigado amigo!

Abraços e novamente obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0
No caso estou usando wmp.dll pra tocar um som proprio de meu programa, e queria ter controle de seu volume sem alterar os demais, sera que é possivel?

Que eu saiba, não. O único jeito que imagino seria reprocessar o som todo, diminuindo o volume dele. E, isso não seria feito na hora da execução e sim antes (ou seja, você simplesmente colocaria um som mais baixo para tocar). Você pode ver que qualquer programa de áudio (Windows Media Player e MusicMatch Jukebox, por exemplo), alteram o volume do Windows e não da música.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...