elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 ... 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 [875] 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 ... 1253
8741  Programación / .NET (C#, VB.NET, ASP) / [SOLUCIONADO] ¿Como modificar el nivel de audio (ganancia) de un archivo wav? en: 13 Julio 2013, 05:46 am
Pues eso, si alguien me puede explicar como puedo modificar la ganancia de un Wav...

En un form reproduzco un Wav que lo tengo como archivo de Recurso (my.resources.wave), lo que quiero es poder ajustar el nivel de audio de este Recurso para reproducirlo con un nivel más bajo del máximo (1.000f = Máximo).

Se supone que con la librería NAudio se puede conseguir esto, pero sólo he llegado hasta aquí:
Código
  1. Public wavefile As New NAudio.Wave.WaveFileReader("C:\Archivo.wav")

la class tiene miles de métodos y no son nada claros para mi, no sé como hacerlo.

Si alguien conoce otro método para conseguir esto no tiene importancia, no dependo de dicha librería, sólo es que ...es lo único que he encontrado sobre el tema.





Aquí tienen la Lib, por si alguien puede ayudar echándole un vistazo:
http://naudio.codeplex.com/
PD: Los ejemplos son en C#,
hay una "demoApp" que hace exáctamente lo que quiero, pero todo el code es demasiado Pro para mi nivel a la hora de intentar trasladar lo que necesito a VB.



Creo que la parte interesante del source de la Demo está aquí:

Código
  1.        namespace NAudioDemo.AudioPlaybackDemo
  2.  
  3.        this.fileWaveStream = plugin.CreateWaveStream(fileName);
  4.        var waveChannel =  new SampleChannel(this.fileWaveStream, true);
  5.        this.setVolumeDelegate = (vol) => waveChannel.Volume = vol;
  6.        waveChannel.PreVolumeMeter += OnPreVolumeMeter;
  7.  
  8.        var postVolumeMeter = new MeteringSampleProvider(waveChannel);
  9.        postVolumeMeter.StreamVolume += OnPostVolumeMeter;
...Obviamente falta mucho más código necesario, pero es que es muy, muy, muy extensa.

Saludos
8742  Programación / .NET (C#, VB.NET, ASP) / Re: [Pregunta] (C#) ¿Qué significan las variables 'e' y 'sender'? en: 13 Julio 2013, 05:13 am
Para añadir algo de información a la respuesta de Novlucker he hecho un ejemplo práctico:

EDITO: Justo ahora leí que era para C#, sorry, pero igual te puede servir.

Código
  1. Public Class Form1
  2.  
  3.    ' Creamos dos objetos de tipo {Button} con algunas propiedades :
  4.  
  5.    Dim WithEvents objeto1 As Button = New Button _
  6.    With {.Name = "Boton1", _
  7.          .AutoSize = True, _
  8.          .Tag = "Botoncito 1", _
  9.          .Text = "Soy el botón 1, púlsame!", _
  10.          .Font = New Font("Microsoft Sans Serif", 16, FontStyle.Bold), _
  11.          .Dock = DockStyle.Top}
  12.  
  13.    Dim WithEvents objeto2 As Button = New Button _
  14.    With {.Name = "Boton2", _
  15.          .AutoSize = True, _
  16.          .Tag = "Botoncito 2", _
  17.          .Text = "Soy el botón 2, púlsame!", _
  18.          .Font = New Font("Microsoft Sans Serif", 16, FontStyle.Bold), _
  19.          .Dock = DockStyle.Bottom}
  20.  
  21.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  22.        ' Asociamos un {evento} de los objetos a un {eventhandler} :
  23.        AddHandler objeto1.MouseDown, AddressOf objeto_Click
  24.        AddHandler objeto2.MouseDown, AddressOf objeto_Click
  25.        ' Añadimos los controles al formulario :
  26.        Me.Controls.Add(objeto1) : Me.Controls.Add(objeto2)
  27.    End Sub
  28.  
  29.    Private Sub objeto_Click(sender As Object, e As MouseEventArgs) ' Handles objeto1.MouseDown, objeto2.MouseDown
  30.  
  31.        ' El objeto que recibe el sender es de tipo {Button}, el sender equivale a uno de nuestros botones :
  32.  
  33.        MsgBox(String.Format("Name: {0}Tag: {1}Text: {2}", _
  34.                             sender.Name & Environment.NewLine, _
  35.                             sender.tag & Environment.NewLine, _
  36.                             sender.Text & Environment.NewLine))
  37.  
  38.        ' Pero en algunos casos querremos convertir el sender al tipo de objeto en cuestión,
  39.        ' por ejemplo en este caso para diferenciar entre un botón y otro :
  40.  
  41.        Dim Boton As Button = CType(sender, Button)
  42.  
  43.        Select Case Boton.Name
  44.            Case "Boton1" ' El botón se llama "Boton1"
  45.                MsgBox("Esto sucede al pulsar el botón: " & Boton.Name)
  46.                ' Código...
  47.            Case "Boton2" ' El botón se llama "Boton2"
  48.                MsgBox("Esto otro sucede al pulsar el botón: " & Boton.Name)
  49.                ' Más código...
  50.        End Select
  51.  
  52.        ' Una muestra de como manejar {e} para el tipo de evento {MouseEventArgs} :
  53.        MsgBox("Pulsaste el botón de tu mouse: " & e.Button.ToString)
  54.  
  55.    End Sub
  56.  
  57. End Class

Saludos.
8743  Programación / Scripting / Re: QPF to Chapter file en: 13 Julio 2013, 04:10 am
No me molesta aunque si te fijas esto más bien es un tutorial express, lo del cint, el for y los "tokens", y etc no te habría costado nada encontrarlo en Google xD, de hecho yo estaba usando el Split como si fuese un método porque estoy acostumbrado a eso en el resto d elenguajes, y tuve que Googlear para ver que en VBS Split es una función y por lo tanto se escribe delante.

un saludo.
8744  Programación / Scripting / Re: QPF to Chapter file en: 13 Julio 2013, 04:01 am
vbs me redondea automaticamente los valores de los resultados inmediatos a su numero entero superior

Es lo que hace la función "Cint", usa "Int" en su lugar.

Por cierto, podrías evitar el uso de if's anidados, no lo soporto, con lo bonito y organizado que queda un Case:

Código
  1. ' Variables
  2. Const constante = 0.0417083
  3.  
  4. ' Do until qpfile.AtEndOfStream
  5.  
  6. set qpfile=createobject("scripting.filesystemobject").Opentextfile("C:\Users\Isra\Desktop\Nueva carpeta\10. QPFILE_NAME.qpf",1)
  7. qpfile.readline()
  8.  
  9. 'Filtrar linea, para quedarnos con el numero del frame
  10. For each token in split(qpfile.readline())
  11.     tratar(token)
  12. exit For
  13. Next
  14.  
  15. ' Loop
  16.  
  17. Wscript.quit
  18.  
  19. 'Subrutina para transformar numero entero en timestamp
  20. Sub Tratar(Frame)
  21.  
  22. 'Establecemos criterio de comparación
  23. calculo  = (Frame * constante)
  24. p_entera = int(calculo)
  25.  
  26. Select Case p_entera
  27.  
  28. Case p_entera >= 216000 'Mensaje de error
  29. hora=normalizar(calculo)
  30. msgbox("Error. Un video no puede tener una duracion continua igual a un o mas días.")
  31.  
  32. Case p_entera >= 3600 'Calculo de timecodes partiendo de horas
  33. msgbox("hola1")
  34.  
  35. Case p_entera < 3600 AND p_entera >= 60 ' Calculo de timecodes partiendo de minutos
  36. min=calculo\60
  37. seg=calculo mod 60
  38. ms=round(((((calculo/60)-min)*60)-seg),3)*1000
  39. msgbox(min & " min. " & seg & " seg. " & ms & " ms. ")
  40.  
  41. Case p_entera < 60 AND p_entera >= 0 'Calculo de timecodes partiendo de segundos
  42. msgbox("hola3")
  43.  
  44. Case ELSE
  45. msgbox("Error. No pueden existir valores negativos.")
  46.  
  47. End select
  48.  
  49. End Sub

PD: No lo he testeado, pero ya te haces una idea.

Saludos!
8745  Programación / Scripting / Re: QPF to Chapter file en: 13 Julio 2013, 03:41 am
¿Más que un procedimiento, no debería ser una función?

Vamos a ver, no veo que intentes retornar ningún valor ni que tengas planeado hacerlo en un futuro, tal y como lo estás haciendo vas bien, aunque yo lo haría todo dentro del For, pero usa un proc si sigues así ...usa una función si quieres tratar los valores fuera del bloque de la subrutina, en el Ciclo del For.

Óbviamente si deseas "tratar" las variables del proc fuera del proc primero tienes que declararlas...

Código
  1. dim hora
  2.  
  3. sub blabla
  4.   hora = X
  5. end sub
  6.  
  7. msgbox(hora)

saludos
8746  Programación / Scripting / Re: QPF to Chapter file en: 13 Julio 2013, 02:39 am
Si el problema es que necesitas saltar la primera línea del archivo pues ejecuta esta instrucción 2 veces:

Código
  1. ...
  2.  
  3. qpfile.readline() : linea=qpfile.readline() ' leemos dos lineas, pero nos quedamos con la segunda.
  4.  
  5. For each token in split(linea, " ") ...
  6. ...

EDITO: Si no es eso pues da más detalles... pero ten en cuenta antes de preguntar que puedes usar condicionales...

Código
  1. if not "a" = "A" then   : Wscript.Echo "no" : end if
  2. if Instr("a", "a") then : Wscript.Echo "si" : end if

Saludos
8747  Sistemas Operativos / Windows / Re: "Enviar a " en: 12 Julio 2013, 21:30 pm
Como te ha dicho drvy siempre se copian, y NO SE PUEDE MODIFICAR.

Aquí tienes una alternativa que hice en Ruby:

[RUBY] (APORTE) MoveIt (Complemento para el menú SendTo de Windows)

Es bien fácil de usar y en el post tienes las instrucciones,
la idea fue modificar la ruta en las propiedades de los accesos directos para ejecutar mi aplicación y pasarle como argumento dicha carpeta, y así trabajar con esa carpeta (mover archivos), por esa razón no es necesario crear nuevas entradas como dijo drvy, ni nada parecido, símplemente se ejecuta la aplicación y mueve los archivos, aquí tienes unas imágenes:





PD: Compila el script para que no te muestre la ventana del intérprete de Ruby y listo, todo será "oculto" ;).

Saludos.
8748  Programación / Scripting / Re: QPF to Chapter file en: 12 Julio 2013, 20:32 pm
¿Se puede hacer como en dos, crear una etiqueta (procedimiento) desde el interior del bucle??

Cualquier cosa que haga Batch se puede hacer en otro lenguaje, y mejor xD :

Código
  1. Set   TextFile = createobject("scripting.filesystemobject").Opentextfile("C:\Users\Isra\Desktop\Nueva carpeta\10. QPFILE_NAME.qpf",1)
  2. Const Constant = 0.0417083
  3.  
  4. Do Until TextFile.AtEndOfStream
  5.  
  6. For Each Token in split(TextFile.readline()) ' Te hago saber que por defecto un token es separado por un "espacio".
  7.        Tratar(Token)
  8. Next
  9.  
  10. Loop
  11.  
  12. Wscript.quit
  13.  
  14. Sub Tratar(Token)
  15. MsgBox(Token)
  16. End Sub
8749  Programación / Scripting / Re: QPF to Chapter file en: 12 Julio 2013, 19:37 pm
Código
  1. set qpfile=createobject("scripting.filesystemobject").Opentextfile("C:\Users\Isra\Desktop\Nueva carpeta\10. QPFILE_NAME.qpf",1)
  2.  
  3. Do until qpfile.AtEndOfStream
  4. linea=qpfile.readline()
  5. ' o msgbox(qpfile.readline())
  6. Loop

saludos
8750  Programación / Scripting / Re: QPF to Chapter file en: 12 Julio 2013, 18:50 pm
Se puede hacer un filtrado por tokens de un for de dos, en vbs??

Código
  1. str = "a-b-c-d-e-f"
  2.  
  3. For each token in split(str, "-")
  4.    wscript.echo(token)
  5. next

Saludos
Páginas: 1 ... 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 [875] 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 ... 1253
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines