Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   volumen en windows (https://www.clubdelphi.com/foros/showthread.php?t=6807)

Lepe 20-01-2007 19:10:37

Perdona, pero de momento no pienso leer ese código, edita tu mensaje y añade las etiquetas delphi, para que se distinga en el código la identación, palabras reservadas, etc. (igual que el código delphi que yo puse.

Después le echaré un vistazo.

Espero que entiendas que es muy incómodo leer ese código así puesto, sé que solo cuentas con 5 mensajes y por ello es lógico que no sepas usarlas. No lo tomes como un reproche, sino como crítica constructiva ;).

Saludos.

ascrnet 17-02-2008 22:47:17

ninguna de esta dos rutinas para controlar el volumen me funcionan :confused:

la de albertron no da error pero no baja el volumen :confused: eso que la llamo asi
Código:

SetVolume(0); //en silencio

y la otra de CHiCoLiTa me da error aqui :confused:
Código:

if WaveOutGetDevCaps(WAVE_MAPPER, @WaveOutCaps, SizeOf

lo cambio por
Código:

if WaveOutGetDevCaps(WAVE_MAPPER, @WaveOutCaps, SizeOf) then
y tambien sale error ?

he buscado en el foro y no he encontrado ninguna rutina buena que sirva, alguien tiene alguna que realmente sirva :confused:

saludos

cHackAll 18-02-2008 01:22:42

Talvez?

ascrnet 18-02-2008 02:30:52

Cita:

Empezado por cHackAll (Mensaje 266535)

ok funciona gracias por el dato , pero esta rutina no me dara problemas mas adelante :confused: es que la encuentro un poco sucia :)

saludos

Delphius 18-02-2008 14:54:23

Cita:

Empezado por ascrnet (Mensaje 266537)
ok funciona gracias por el dato , pero esta rutina no me dara problemas mas adelante :confused: es que la encuentro un poco sucia :)

saludos

:confused::confused: ¿Sucia?

¿Porqué no estás conforme?
Podrías optar por algún componente que lo haga por tí.
Podrías considerar lo dicho aquí, aquí, y/o aquí.

Saludos,

Lepe 18-02-2008 16:20:10

¿Sucia? ¿Ahora se le llama así a saber programar con la API de windows?

... Lo que hay que oir....

Saludos

ascrnet 18-02-2008 17:24:52

sucio por mi poca experiencia con manejar la API desde delphi :p

Delphius, no estoy conforme, por que encuentro que es muy enredado para mi entender :D y que el volumen sea de 0 a 65mil algo. no lo encuentro eficiente o sera por que la API no es eficiente :confused:


Lepe, sorry pero pense que era mas facil manejar la API.

bueno por lo que veo me combiene mas usar la API, ya que una libreria me puede restringir si cambio la version de delphi 7 que uso :D

gracias a todos por sus respuestas..

saludos

Delphius 18-02-2008 17:40:28

Cita:

Empezado por ascrnet (Mensaje 266660)
sucio por mi poca experiencia con manejar la API desde delphi :p

Delphius, no estoy conforme, por que encuentro que es muy enredado para mi entender :D y que el volumen sea de 0 a 65mil algo. no lo encuentro eficiente o sera por que la API no es eficiente :confused:


Lepe, sorry pero pense que era mas facil manejar la API.

bueno por lo que veo me combiene mas usar la API, ya que una libreria me puede restringir si cambio la version de delphi 7 que uso :D

gracias a todos por sus respuestas..

saludos

No quiero pensar mal pero esa cara sonriente al referirte hacia mi... ¿Es a modo de burla?

A ver... si estas probando mi componente no deberías tener problemas, De hecho no lo tuve yo estando empleando Windows Me en aquel momento cuando lo diseñé... sobre XP menos problemas deberías tener.
Mi componente ha sido hecho para ser usado en forma sencilla y cómoda. Lo que hace es alterar el volumen del sistema mediante una API de forma camuflada. ¿Tanto molesta el tener que hacer un SetVolume()?:confused:

El componente fácilmente puede ser ampliado. ¿Porqué no pruebas añadirle lo que gustes?

Independientemente de cualquier biblioteca que uses... todo al final se reduce a la API. Si deseas usar directamente la API pues hazlo, si deseas conseguir un paquete, biblioteca, o lo que fuese también puedes usarlo.

Pues los componentes se han diseñado para evitar tener que emplear la API en forma directa... ¡esa es su ventaja! Si tanto dices que te cuesta usar la API ¿porqué no usar un componente?

Al final... ¿en que quedamos?
Explicate mejor. ¿Porqué no nos muestras lo que estás haciendo?

Saludos,

ascrnet 18-02-2008 18:02:29

Delphius, mi idea no es ofender ha nadien. quisas me exprese mal. pero la idea es que yo estoy probando varias formas de hacer lo mismo con el tema del volumen. quisas para mi esa un poco complicado de entender ya que soy novato en delphi.

mira uso el siguiente codigo como bajar el volumen del TMediaPlayer, pero si veo el control de win no baja el volumen me refiero a lo grafico que no lo baja pero si a lo sonoro.

Código:

uses  MMSystem;

Type
 MCI_DGV_SETAUDIO_PARMS = record
 dwCallback : DWORD;
 dwItem : DWORd;
 dwValue : DWORD;
 dwOver : DWORD;
 lpstrAlgorithm : PChar;
 lpstrQuality : PChar;
 end;

Type
 MCI_STATUS_PARMS = record
 dwCallback : DWORD;
 dwReturn : DWORD;
 dwItem : DWORD;
 dwTrack : DWORD;
 end;

var
  Form1: TForm1;

const
 MCI_SETAUDIO = $0873;
 MCI_DGV_SETAUDIO_VOLUME = $4002;
 MCI_DGV_SETAUDIO_ITEM = $00800000;
 MCI_DGV_SETAUDIO_VALUE = $01000000;
 MCI_DGV_STATUS_VOLUME = $4019;

//***** rutina de sonido
 function GetMPVolume(MP : TMediaPlayer) : Integer;
 var p: MCI_STATUS_PARMS;
 begin
 p.dwCallback := 0;
 p.dwItem := MCI_DGV_STATUS_VOLUME;
 mciSendCommand(MP.DeviceID, MCI_STATUS, MCI_STATUS_ITEM, Cardinal(@p));
 Result:=p.dwReturn;
 end;

 procedure SetMPVolume(MP : TMediaPlayer; Volume : Integer);
 var p: MCI_DGV_SETAUDIO_PARMS;
 begin
 p.dwCallback := 0;
 p.dwItem := MCI_DGV_SETAUDIO_VOLUME;
 p.dwValue := Volume;
 p.dwOver := 0;
 p.lpstrAlgorithm := nil;
 p.lpstrQuality := nil;
 mciSendCommand(MP.DeviceID, MCI_SETAUDIO,
 MCI_DGV_SETAUDIO_VALUE or MCI_DGV_SETAUDIO_ITEM, Cardinal(@p));
 end;

//bajar el sonido
procedure TForm1.Timer1Timer(Sender: TObject);
begin
      SetMPVolume(MediaPlayer1,TrackBar1.Position)
end;

en cambio la que me dice cHackAll baja el master del volumen y tanto el sonoro como del control de win.

tu libreria todavia no la pruebo pero me gustaria saber si la haz probado en delphi superior a 7 , no se como 2007.

saludos

Delphius 18-02-2008 18:21:14

ascrnet,
Sería oportuno que me aclares algo: ¿Deseas trabajar con el volumen del sistema, ó sólo dentro de tu aplicación?

Porque buscando entre los hilos vas a encontrar algunos que hace una u otra forma. Por ejemplo mi componente trabaja con el volumen del sistema. Mientras que si te vas al último enlace que puse llegarás hacia un link donde hay un componente que lo hace en forma local (unicamente dentro de tu aplicación).

Me confunde el hecho de que hables de la barra de win, de que si baja o no baja... Y esto es lo que me hace dudar de que si lo que deseas es bajar el volumen del sistema o solo el de tu aplicación.

No he probado mi componente en versiones más nuevas, fue desarrollado en la 6, en la 7 no habría problemas aparentemente. Al menos nadie habrió un hilo quejandose de que falle mi componente.

Hace tiempo que no lo empleo, de hecho lo había perdido en un formateo. Y ahora el lugar en dode vive es este maravilloso lugar. Yo he cedido el componente para el uso del público. Y quien desee modificarlo puede hacerlo.

Saludos,

ascrnet 19-02-2008 00:23:24

Cita:

Empezado por Delphius (Mensaje 266672)
ascrnet,
Sería oportuno que me aclares algo: ¿Deseas trabajar con el volumen del sistema, ó sólo dentro de tu aplicación?

Porque buscando entre los hilos vas a encontrar algunos que hace una u otra forma. Por ejemplo mi componente trabaja con el volumen del sistema. Mientras que si te vas al último enlace que puse llegarás hacia un link donde hay un componente que lo hace en forma local (unicamente dentro de tu aplicación).

Me confunde el hecho de que hables de la barra de win, de que si baja o no baja... Y esto es lo que me hace dudar de que si lo que deseas es bajar el volumen del sistema o solo el de tu aplicación.

No he probado mi componente en versiones más nuevas, fue desarrollado en la 6, en la 7 no habría problemas aparentemente. Al menos nadie habrió un hilo quejandose de que falle mi componente.

Hace tiempo que no lo empleo, de hecho lo había perdido en un formateo. Y ahora el lugar en dode vive es este maravilloso lugar. Yo he cedido el componente para el uso del público. Y quien desee modificarlo puede hacerlo.

Saludos,

:D para el sistema, lo que pasa es que he probados varios y algunos bajan o suben el control de volumen de windows
Código:

WinExec('SNDVOL32.EXE',SW_SHOWNORMAL);
al mismo tiempo que lo bajas o subes en delphi. ha eso me refiero.

lo otro como adjunto tu volumen.pas a mi proyecto en delphi :o no entiendo como ? paso a paso pliz :D

saludos

Delphius 19-02-2008 14:39:45

Hola ascrnet,
Mi componente hace lo que dices.
Si bajas el volumen con mi componente notarás que en la barra del volumen de Windows baja. Si no deseas que suceda esto, la tendrás dificil. Al menos suena lógico que suceda esto: Si bajas el volumen de Windows, es lógico que este actue en base a dicho cambio.

Por lo segundo... no tengo Delphi a mano. Al menos en la versión 6 y 7 entre las opciones del menú hay una que dice claramante "Install Component", si no me falla la memoria es así: Component -> Install Component. Allí te aparecerá un cuadro de diáogo en el que debes suministrar la ruta al pas. Le das OK y sigues las instrucciones.

Saludos,

ascrnet 19-02-2008 19:58:58

Cita:

Empezado por Delphius (Mensaje 266910)
Hola ascrnet,
Mi componente hace lo que dices.
Si bajas el volumen con mi componente notarás que en la barra del volumen de Windows baja. Si no deseas que suceda esto, la tendrás dificil. Al menos suena lógico que suceda esto: Si bajas el volumen de Windows, es lógico que este actue en base a dicho cambio.

Por lo segundo... no tengo Delphi a mano. Al menos en la versión 6 y 7 entre las opciones del menú hay una que dice claramante "Install Component", si no me falla la memoria es así: Component -> Install Component. Allí te aparecerá un cuadro de diáogo en el que debes suministrar la ruta al pas. Le das OK y sigues las instrucciones.

Saludos,

mmm, no el codigo que te puse arriba no baja nada del controlador de windows, pero si baja el volumen del mp3 nomas.

no funciona, en Component -> Install Component solo permite .dpk y .dpkw . si pongo el .pas de tu lib me dice que no sirve :confused: uso delphi 7.
acuerdate que solo tengo el tvoulumen.pas nomas

saludos


La franja horaria es GMT +2. Ahora son las 12:53:53.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi