none
Como Controlar o volume VB 2008 RRS feed

  • Pergunta

  • Como eu posso controlar o volume do meu programa, fazer que ele tenho a opções de baixar o volume e aumentar ?

    pq quando eu abrir ele e executo algum arquivo que tem audio ele mostra no controlador de som, que o som ta vindo dele, eu quero que eu conseguir baixar o som no próprio programa sem precisar baixar no windows ?

    terça-feira, 8 de setembro de 2015 19:47

Respostas

  • Everton, você já tinha criado um tópico sobre essa mesma questão. Não precisa ficar repetindo, se alguém puder e souber irá te ajudar.

    Para controlar o volume você precisar utilizar a api do windows waveOutSetVolume

    Crie uma nova classe no seu projeto chamada NativeMethods e dentro dela coloque o código:

    NotInheritable Class NativeMethods
      Private Sub New()
      End Sub
      <DllImport("winmm.dll", EntryPoint:="waveOutSetVolume")> _
      Public Shared Function WaveOutSetVolume(hwo As IntPtr, dwVolume As UInteger) As Integer
      End Function
    End Class

    E no load do seu form:

        NativeMethods.WaveOutSetVolume(0, 0)
    
    o segundo parâmetro indica o volume que você quer.


    Bruno Ferreira de Souza
    MVP - Microsoft Valuable Professional
    MCTS .NET Framework - Windows Applications
    MCPD .NET Framework - Windows Applications
    www.maestrodotnet.com.br
    @BrunoMaestro

    • Marcado como Resposta Marcos SJ sexta-feira, 11 de setembro de 2015 12:35
    sexta-feira, 11 de setembro de 2015 04:59

Todas as Respostas

  • Aqui há 2 respostas, acredito que ambas possam ajudar:

    http://stackoverflow.com/questions/4753009/control-volume-in-vb-net


    quarta-feira, 9 de setembro de 2015 13:04
  • esse comandos quando eu coloco no Vb 2008 eles não funcionar aparece um monte de erros !

    e do vb 2008 ou do vb 6

    quarta-feira, 9 de setembro de 2015 15:30
  • Olá Everton,

    Tudo bem?

    Você entendeu os códigos apresentados na solução?

    Eles fazem algum sentido para você?

    Que tipo de erros foram apresentados?

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 9 de setembro de 2015 16:15
  • Tem comandos nesses codigos, que não estão declarados no vb 2008, procuro algo para  tentar substituir  so que não acho nenhum comando no vb viavel, para isso, e uma coisa tão simples que quero fazer, so que acaba ficando tão dificil, 

    Eu so quero controlar o som do meu programa, tipo eu coloquei um Web Browser nele, e quando eu acesso o Youtube , e coloco um video ele começa a tocar a musica do video certo, eu quero ter uma opções nesse meu programa para que eu consiga, abaixar o volume aumentar e ate mesmo deixa ele mudo , sem ter que abaixar o video no proprio youtube 

    quarta-feira, 9 de setembro de 2015 16:29
  • entao,jovem,se está apresentando erros no codigo,poste aqui esses erros e as referencias que voce está usando no seu visual studio e qual net framework voce está usando,inclusive os imports,se voce colocou corretamente.

    Microsoft Technology Associate (MTA)


    • Editado Eduardo xUni quinta-feira, 10 de setembro de 2015 15:26
    quinta-feira, 10 de setembro de 2015 15:22
  • Alguem pode me explicar aonde coloco esses comandos, q ja tentei aqui e nn funciona , coloque no form1 da erro, no form load da erro so vai quando eu coloco la no topo de tudo, em cima do public class form1

    ai da certo so q não deixa mudo o programa

    Dim vol As New Sound(path_to_nircmd)
    vol.setVol(50)


    Public Class Sound  <-
        Dim nircmd <- As String 
        Const MAXVOL As Integer = 65535
    
        Public Sub New(ByVal nircmd_location <- As String)
            nircmd = nircmd_location <-
        End Sub
    
        Public Sub setVol(ByVal level As Integer)
    
            Dim p As New ProcessStartInfo
            p.FileName = nircmd
            p.Arguments = "setsysvolume " & (MAXVOL * (level / 100)).ToString
            Process.Start(p)
    
        End Sub
    End Class


    • Editado Evertton Lima quinta-feira, 10 de setembro de 2015 23:46
    quinta-feira, 10 de setembro de 2015 23:43
  • Everton, você já tinha criado um tópico sobre essa mesma questão. Não precisa ficar repetindo, se alguém puder e souber irá te ajudar.

    Para controlar o volume você precisar utilizar a api do windows waveOutSetVolume

    Crie uma nova classe no seu projeto chamada NativeMethods e dentro dela coloque o código:

    NotInheritable Class NativeMethods
      Private Sub New()
      End Sub
      <DllImport("winmm.dll", EntryPoint:="waveOutSetVolume")> _
      Public Shared Function WaveOutSetVolume(hwo As IntPtr, dwVolume As UInteger) As Integer
      End Function
    End Class

    E no load do seu form:

        NativeMethods.WaveOutSetVolume(0, 0)
    
    o segundo parâmetro indica o volume que você quer.


    Bruno Ferreira de Souza
    MVP - Microsoft Valuable Professional
    MCTS .NET Framework - Windows Applications
    MCPD .NET Framework - Windows Applications
    www.maestrodotnet.com.br
    @BrunoMaestro

    • Marcado como Resposta Marcos SJ sexta-feira, 11 de setembro de 2015 12:35
    sexta-feira, 11 de setembro de 2015 04:59