Por Geymer Morales Cruz

Compartiendo Información...

Ajustar Volumen Pocket PC Visual Basic Net 2008

En esta ocasión nos enfocaremos a la programación en dispositivos móviles más específicamente en las Pocket PC, para esto daré por hecho que ya han desarrollado algún pequeño “hola mundo” en dicho dispositivo.


Ok perfecto para seguir con el “Tip” primero que nada les comento que esta idea de bajar o subir el volumen a la Pocket PC surgió de un amigo para un proyecto que ya está establecido y que se piensa mejorar.









Primero que todo diseñamos un formulario sencillo como el que se muestra en la imagen:



Bien, recordarles nada más que en mi caso yo al botón le puse el nombre de “bton_volumen” y a los RadioButton “rbt_01”, “rbt_02”, “rbt_03”, “rbt_04”, “rbt_05”, “rbt_06”, respectivamente ya que asi se hace referencia a 6 niveles de volumen, y al formulario le llame "Frm_principal”.

Una vez que diseñamos, primeramente importamos las siguientes librerías a como se muestra en el código siguiente.

Imports System
Imports System.Linq
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms


Perfecto, luego de esto declaramos los siguientes métodos que nos permitirán interactuar mediante la librería “coredll.dll” con el dispositivo, estas métodos van después de “Partial Public Class Form1” no al inicio del código, además si quieren saber más de esta librería no duden en preguntarle a Google que de una vez les adelanto tiene muchas funciones…
<System.Runtime.InteropServices.DllImport("coredll.dll", SetLastError:=True)> _
Public Shared Function waveOutSetVolume(ByVal device As IntPtr, ByVal volume As Integer) As Integer
End Function


<System.Runtime.InteropServices.DllImport("coredll.dll", SetLastError:=True)> _
Public Shared Function waveOutGetVolume(ByVal device As IntPtr, ByRef volume As Integer) As Integer
End Function



Ok en mi caso realice un método que retorna el nivel de volumen dependiendo del “RadioButton” seleccionado, acá el código..

Private Function nivel_volumen(ByVal nivel As Integer) As String


Dim volumen As Integer

Select Case nivel '' dependiendo del numero que se reciba por parametro


Case 0
volumen = 0 ''no hay sonido
Case 1
volumen = 858993459 'volumen bajo
Case 2
volumen = 1717986918 'volumen normal
Case 3
volumen = -1717986919 'volumen medio
Case 4
volumen = -858993460 'volumen alto
Case 5
volumen = -1 'volumen muy Alto

End Select


Return volumen

End Function

Ok excelente solo queda el código que ira en el botón el cual se los muestro a continuación…
  Private Sub bton_volumen_Click(ByVal
sender As System.Object, ByVal e As System.EventArgs) Handles bton_volumen.Click


If rbt_01.Checked = True Then
waveOutSetVolume(IntPtr.Zero, nivel_volumen(0)) ' el 0 es para indicarle al case el nivel de volumen
End If

If rbt_02.Checked = True Then
waveOutSetVolume(IntPtr.Zero, nivel_volumen(1))
End If

If rbt_03.Checked = True Then
waveOutSetVolume(IntPtr.Zero, nivel_volumen(2))
End If

If rbt_04.Checked = True Then
waveOutSetVolume(IntPtr.Zero, nivel_volumen(3))
End If

If rbt_05.Checked = True Then
waveOutSetVolume(IntPtr.Zero, nivel_volumen(4))
End If

If rbt_06.Checked = True Then
waveOutSetVolume(IntPtr.Zero, nivel_volumen(5))
End If

End Sub

Una vez esto ejecutamos nuestro código veremos cómo interactuamos con el volumen de la PDA...



Acá todo el código del formulario completo:


Imports System
Imports System.Linq
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms


Partial Public Class Frm_principal


 <System.Runtime.InteropServices.DllImport("coredll.dll", SetLastError:=True)> _
 Public Shared Function waveOutSetVolume(ByVal device As IntPtr, ByVal volume As Integer) As Integer
 End Function


 <System.Runtime.InteropServices.DllImport("coredll.dll", SetLastError:=True)> _
 Public Shared Function waveOutGetVolume(ByVal device As IntPtr, ByRef volume As Integer) As Integer
 End Function

 Private Sub bton_volumen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bton_volumen.Click


     If rbt_01.Checked = True Then
         waveOutSetVolume(IntPtr.Zero, nivel_volumen(0)) ' el 0 es para indicarle al case el nivel de volumen
     End If

     If rbt_02.Checked = True Then
         waveOutSetVolume(IntPtr.Zero, nivel_volumen(1))
     End If

     If rbt_03.Checked = True Then
         waveOutSetVolume(IntPtr.Zero, nivel_volumen(2))
     End If

     If rbt_04.Checked = True Then
         waveOutSetVolume(IntPtr.Zero, nivel_volumen(3))
     End If

     If rbt_05.Checked = True Then
         waveOutSetVolume(IntPtr.Zero, nivel_volumen(4))
     End If

     If rbt_06.Checked = True Then
         waveOutSetVolume(IntPtr.Zero, nivel_volumen(5))
     End If

 End Sub

 Private Function nivel_volumen(ByVal nivel As Integer) As String

     Dim volumen As Integer

     Select Case nivel '' dependiendo del numero que se reciba por parametro

         Case 0
             volumen = 0 ''no hay sonido
         Case 1
             volumen = 858993459 'volumen bajo
         Case 2
             volumen = 1717986918 'volumen normal
         Case 3
             volumen = -1717986919 'volumen medio
         Case 4
             volumen = -858993460 'volumen alto
         Case 5
             volumen = -1 'volumen muy Alto

     End Select


     Return volumen

 End Function
End Class


Ok espero que este tip le ayude montones...

Hasta la Proxima :)

0 comentarios: