Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Propiedades de sonido en VB6

Estas en el tema de Propiedades de sonido en VB6 en el foro de Visual Basic clásico en Foros del Web. Hola, buenas tardes. Estoy tratando de encontrar la forma de cargar un .wav en mi programa VB y poder manejar en el programa su volumen ...
  #1 (permalink)  
Antiguo 28/03/2010, 12:06
 
Fecha de Ingreso: abril-2007
Mensajes: 30
Antigüedad: 17 años
Puntos: 0
Sonrisa Propiedades de sonido en VB6

Hola, buenas tardes.

Estoy tratando de encontrar la forma de cargar un .wav en mi programa VB y poder manejar en el programa su volumen y balance a mi antojo.

Ustedes conocen algún método simple que lo haga?

Por ejemplo, con la declaración del sonido y luego el manejo de este tal como: misonido.play, misonido.setVolume o misonido.setPan ...


Muy agradecido por la ayuda.
  #2 (permalink)  
Antiguo 28/03/2010, 15:23
Avatar de A.H.H  
Fecha de Ingreso: mayo-2007
Ubicación: IRUN,(GUIPUZCOA) España
Mensajes: 178
Antigüedad: 16 años, 11 meses
Puntos: 4
Respuesta: Propiedades de sonido en VB6

Hola hay varios ejemplos en este enlace para la tarjeta de sonido
con ellos puedes bajar y subir el volumen
jugar con el balance etc......


http://www.recursosvisualbasic.com.a...-de-sonido.htm



y aqui el balance:

http://www.recursosvisualbasic.com.a...ar-balance.htm
  #3 (permalink)  
Antiguo 29/03/2010, 01:46
 
Fecha de Ingreso: abril-2007
Mensajes: 30
Antigüedad: 17 años
Puntos: 0
Respuesta: Propiedades de sonido en VB6

Muchas gracias A.H.H. pero no es exactamente lo que busco.

Ya me recorrí recursosvisualbasic.com.ar casi entero y vi y analicé esos ejemplos que me has mandado, pero no encontré lo que busco, que consiste en cargar un wav o mp3 en mi programa y variar localmente solo a ese sonido el volumen y el balance sin alterar los generales de la tarjeta de sonido.


Si alguien me puede echar un cable le estoy muy agradecido.
  #4 (permalink)  
Antiguo 29/03/2010, 07:57
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Propiedades de sonido en VB6

Yo sólo conozco un modo. El control Windows Media Player.
Busca algún ejemplo de su uso. Puede reproducir los wav y tiene una propiedad balance que solo le afecta a el (al igual que el volumen).

Suerte.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #5 (permalink)  
Antiguo 29/03/2010, 09:49
 
Fecha de Ingreso: abril-2007
Mensajes: 30
Antigüedad: 17 años
Puntos: 0
Respuesta: Propiedades de sonido en VB6

has gracias pkj, miraré por ese lado.

He encontrado un dll interesante, pero el que la programó no puso un ejemplo sencillo que digamos para mostrar todas las funciones y su uso y no soy tan experto como para desarmar un código así.

http://www.recursosvisualbasic.com.ar/htm/ocx-componentes-activex-dll/199-dll-activex-wave-mixer.htm


Sigo buscando algo simple. Gracias.
  #6 (permalink)  
Antiguo 30/03/2010, 01:00
 
Fecha de Ingreso: abril-2007
Mensajes: 30
Antigüedad: 17 años
Puntos: 0
Respuesta: Propiedades de sonido en VB6

Buenos días.
Parece que la cosa es complicada. Nunca lo hubiera imaginado.

He encontrado un ejemplo muy interesante con DirectX8, pero pasa una cosa curiosa, y es que cuando el programa pierde el foco el sonido se para, y lo vuelve a conectar cuando lo recupera.

Y no hay ningún evento en lostfocus. Alguien sabe por qué ocurre y cómo evitarlo?

Gracias
  #7 (permalink)  
Antiguo 03/04/2010, 08:37
 
Fecha de Ingreso: abril-2007
Mensajes: 30
Antigüedad: 17 años
Puntos: 0
Respuesta: Propiedades de sonido en VB6

Nadie tiene idea? No puede ser que algo tan esencial como manejar sonido no tenga una fácil solución, estoy alucinando.

Quizás alguien me recomiende pasarme a una versión más moderna, como el .net? o es igual de complejo manejar sonido?

Muchas gracias
  #8 (permalink)  
Antiguo 03/04/2010, 11:41
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Propiedades de sonido en VB6

Saludos, Solonova.

Ya te dí la única solución que conozco.
De todas formas si nos pasas el código que usas, igual alguien te sabe aconsejar.

Suerte
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #9 (permalink)  
Antiguo 03/04/2010, 12:49
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: Propiedades de sonido en VB6

el tema de que se corta el sonido en otras ventanas, lo podes solucionar con la api GetForegroundWindow y un Timer, algo asi:

Código vb:
Ver original
  1. Option Explicit
  2.  
  3. Private Declare Function GetForegroundWindow Lib "User32" () As Long
  4.  
  5. Dim DX           As DirectX8
  6. Dim DS           As DirectSound8
  7. Dim dsToneBuffer As DirectSoundSecondaryBuffer8
  8. Dim desc         As DSBUFFERDESC
  9.  
  10. Const SRATE = 44100
  11.  
  12. Private Sub Form_Load()
  13.  
  14.     Set DX = New DirectX8
  15.     Set DS = DX.DirectSoundCreate("")
  16.     DS.SetCooperativeLevel Me.hWnd, DSSCL_NORMAL
  17.    
  18.     Timer1.Enabled = True
  19.     Timer1.Interval = 1000
  20.    
  21.     desc.fxFormat.nFormatTag = WAVE_FORMAT_PCM
  22.     desc.fxFormat.nSize = 0
  23.     desc.fxFormat.lExtra = 0
  24.     desc.fxFormat.nChannels = 1
  25.     desc.fxFormat.lSamplesPerSec = SRATE
  26.     desc.fxFormat.nBitsPerSample = 16
  27.     desc.fxFormat.nBlockAlign = 2
  28.     desc.fxFormat.lAvgBytesPerSec = 2 * SRATE
  29.     desc.lFlags = DSBCAPS_STATIC Or DSBCAPS_CTRLVOLUME Or DSBCAPS_CTRLFREQUENCY Or DSBCAPS_CTRLPAN
  30.     desc.lBufferBytes = 2 * 1 * SRATE
  31.    
  32.    
  33.     Set dsToneBuffer = DS.CreateSoundBufferFromFile("C:\WINDOWS\media\Entrada de Windows XP.wav", desc)
  34.    
  35.     dsToneBuffer.SetVolume -4000 ' aca pones el volumen, fijarse en un tutorial caules son los valores aceptados por DirectX
  36.    dsToneBuffer.Play DSBPLAY_LOOPING
  37.    
  38. End Sub
  39.  
  40. Private Sub Timer1_Timer()
  41.     Dim vHwnd As Long
  42.     vHwnd = GetForegroundWindow
  43.     If vHwnd > 0 Then DS.SetCooperativeLevel vHwnd, DSSCL_NORMAL
  44. End Sub

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #10 (permalink)  
Antiguo 04/04/2010, 03:00
 
Fecha de Ingreso: abril-2007
Mensajes: 30
Antigüedad: 17 años
Puntos: 0
Respuesta: Propiedades de sonido en VB6

Muchas gracias seba123neo, lo del Timer es un buen parcheo a un absurdo inconveniente de DirectX (a mi parecer claro)

pkj, muchas gracias a ti tb.

Creo que la DLL del ejemplo que puse anteriormente debe ser la manera más potente de controlar un wav, pero, me ha sido complicado meterme en el código del ejemplo, si alguien con más experiencia se anima, le estaría muy agradecido si me pusiera un simple ejemplo de carga, ejecución y asignación de volumen y balance.

Gracias a todos
  #11 (permalink)  
Antiguo 04/04/2010, 08:42
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: Propiedades de sonido en VB6

voy a ver si me puedo meter en las apis que usa, si tengo novedades te aviso..

PD: pude ver lo que usa, la DLL el tipo la comprimio con el Armadillo. al final usa DirectX igual que el ejemplo que te pase antes, y "parchea" ese inconveniente tambien con la misma api que te puse jaja...
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein

Última edición por seba123neo; 04/04/2010 a las 08:49
  #12 (permalink)  
Antiguo 10/04/2010, 12:30
 
Fecha de Ingreso: abril-2007
Mensajes: 30
Antigüedad: 17 años
Puntos: 0
Desacuerdo Respuesta: Propiedades de sonido en VB6

Muchas gracias seba123neo

Pues si usa tb directx me parece que se ha complicado un poco.


Yo estoy bastante decepcionado con VB, por que he usado DirectX8 para gestionar sonidos y es de lo mas precario.

Estoy haciendo un juego donde los sonidos y efectos ambientales van del altavoz izquierdo al derecho y al revés para darle emoción y ambiente al juego, que es como una aventura gráfica de terror, pero sabes que pasa? Que cuando varío ràpidamente del balance del sonido (lo hago con un efecto easing (desaceleración)) se oyen unos crujidos, o cuando paro y reproduzco muy seguido los sonidos pasa igual, y queda fatal. Y no es culpa de los wavs que están editados, por si creo zumbidos o tonos del sistema y hago lo mismo suenan también.

Ahora no se que tecnología usar para esto pero VB 6 o .Net me han fallado, al menos en lo que se refiere a gestión de sonido.


Muchas gracias de nuevo.

Etiquetas: propiedades, sonido, vb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:58.