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


 


Tema destacado: [Aporte] Mejores practicas en Java


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderadores: Novlucker, seba123neo, kub0x, Eleкtro)
| | | |-+  incrustar música .mp3 en un formulario .
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: incrustar música .mp3 en un formulario .  (Leído 178 veces)
**Aincrad**

Desconectado Desconectado

Mensajes: 161



Ver Perfil
incrustar música .mp3 en un formulario .
« en: 12 Octubre 2017, 16:09 »

hola de nuevo. jeje

como dice el titulo , se podría meter una música en la pestaña resources . y después agregar el control de windows media player y el directorio poner esa musica?

osea yo se poner músicas en los formularios. pero la canción tiene que ir en la adjunto con el exe . y eso no es lo que quiero .

lo que quiero es hacer un exe que ya contenga dentro la canción y la reproduzca.

yo pienso que se debería incrustar como los txt en la parte de resources pero no se como poner el mp3
 
                                              gracias de antemano .  ;-)

                                                   


En línea

Eleкtro
🌍 🕉️ 🛏️ Novato Astral 🛏️ 🕉️ 🌍 y...
Moderador Global
***
Desconectado Desconectado

Mensajes: 9.220


El sentido común es el menos común de los sentidos


Ver Perfil
Re: incrustar música .mp3 en un formulario .
« Respuesta #1 en: 12 Octubre 2017, 17:47 »

se podría meter una música en la pestaña resources

Si, puedes añadir y embedir cualquier tipo de archivo a la tabla de recursos de tu executable.


yo pienso que se debería incrustar como los txt en la parte de resources pero no se como poner el mp3

Pues exactamente de la misma manera, ¿cual es el problema que le encuentras?, simplemente seleccionas el archivo que quieres añadir como recurso, o directamente desde el explorador de Windows usas el ratón para arrastrar el archivo a la IDE (teniendo la pestaña de recursos abierta) y así se añade...

En otro post te mostré un enlace a MSDN donde te explican como añadir recursos...

y después agregar el control de windows media player y el directorio poner esa musica?

Si, siempre y cuando primero extraigas los datos raw del recurso para generar un archivo local en el disco, y que así el host de WMP pueda reproducirlo, puesto que WMP solo acepta un nombre de archivo o una url. En otras palabras: no puedes usar WMP para reproducir un recurso de audio si no lo extraes al disco, lo cual no se si supone una complicación o no para las intenciones que tengas, de todas formas en otro post te mostré un código para extraer recursos y guardarlos en el disco...

Si lo que quieres es cargar diréctamente el stream del recurso de audio para reproducirlo, entonces puedes usar la clase System.Media.SoundPlayer (del set de librerías para la tecnología WPF) de la siguiente manera:

Código
  1. Imports System.Media
Código
  1. Using waveStream As UnmanagedMemoryStream = My.Resources.ResourceManager.GetStream("Nombre del recurso WAV"),
  2.      player As New SoundPlayer(waveStream)
  3.  
  4.    player.PlaySync()
  5. End Using

Nota: pero no reproduce archivos MP3, el archivo de recurso tiene que ser en formato WAV.
Nota 2: No te preocupes si programas bajo la tecnología Windows Forms, puedes usar los miembros de WPF igualmente.

Aquí tienes una guía:

Saludos


« Última modificación: 12 Octubre 2017, 18:33 por Eleкtro » En línea


[/cent
**Aincrad**

Desconectado Desconectado

Mensajes: 161



Ver Perfil
Re: incrustar música .mp3 en un formulario .
« Respuesta #2 en: 12 Octubre 2017, 19:40 »

Código
  1. Imports System.Media
Código
  1. Using waveStream As UnmanagedMemoryStream = My.Resources.ResourceManager.GetStream("Nombre del recurso WAV"),
  2.     Dim player As New SoundPlayer(waveStream)
  3.  
  4.    player.PlaySync()
  5. End Using

Nota: pero no reproduce archivos MP3, el archivo de recurso tiene que ser en formato WAV.

 convertí el archivo mp3 a wav y lo agregue a resources y puse el code que esta arriba .

pero cuando ejecuto el form, empieza a reproducir la música y no aparece el form hasta dentro de unos 4 seg y despues que aparece el form pa musica se detiene?.

como le hago?

.
En línea

Eleкtro
🌍 🕉️ 🛏️ Novato Astral 🛏️ 🕉️ 🌍 y...
Moderador Global
***
Desconectado Desconectado

Mensajes: 9.220


El sentido común es el menos común de los sentidos


Ver Perfil
Re: incrustar música .mp3 en un formulario .
« Respuesta #3 en: 12 Octubre 2017, 19:57 »

cuando ejecuto el form, empieza a reproducir la música y no aparece el form hasta dentro de unos 4 seg y despues que aparece el form pa musica se detiene?.

como le hago?

El método SoundPlayer.PlaySync, como su propio nombre indica es sincrónico, es lo que se conoce como una llamada bloqueante. En otras palabras: es así por defecto, la cola de mensajes del thread de la UI se bloqueará hasta que se termine de reproducir la canción. Lo mismo te ocurriría si iterases un búcle infinito antes de cargar la UI... o despues, cuando sea.

¿Solución?, prueba a usar el método SoundPlayer.Play a secas (en teoría es asincrónico), o sino, puedes ejecutar la llamada al método SoundPlayer.PlaySync desde un nuevo thread.


Saludos
« Última modificación: 12 Octubre 2017, 20:01 por Eleкtro » En línea


[/cent
**Aincrad**

Desconectado Desconectado

Mensajes: 161



Ver Perfil
Re: incrustar música .mp3 en un formulario .
« Respuesta #4 en: 12 Octubre 2017, 20:22 »

Gracias ya lo solucione .  ;-)  ;-)  ;-)  ;-)

pd: Si Tengo un formulario sin bordes y le quiero poner un picture box como border.

entonces que código le pongo al picturebox para que haga la funcion de borde. ?  :huh:
En línea

Eleкtro
🌍 🕉️ 🛏️ Novato Astral 🛏️ 🕉️ 🌍 y...
Moderador Global
***
Desconectado Desconectado

Mensajes: 9.220


El sentido común es el menos común de los sentidos


Ver Perfil
Re: incrustar música .mp3 en un formulario .
« Respuesta #5 en: 12 Octubre 2017, 21:09 »

Si Tengo un formulario sin bordes y le quiero poner un picture box como border.

No, esa no es la manera indicada de intentar simular un borde. De forma natural un control no puede sobresalir (visiblemente hablando) fuera de los límites (bounds) del contenedor padre de dicho control, es decir, el Form.

Sencillamente puedes recurrir a GDI+ para dibujar un borde alrededor de la ventana del Form. Luego puedes capturar cuando el usuario presiona click para responder al mensaje de ventana WM_NCHITTEST en el que puedes "falsificar" el identificador de la parte de la ventana que corresponde a las coordenadas donde se hizo click, y así simular que se presionó click izquierdo sobre una borde barra de título (titlebar) para iniciar la operación de arrastrar/mover la ventana del Form...

EDITO: O bien si lo prefieres puedes hacer eso mismo siguiendo la misma metodología que he descrito arriba pero para que en vez de mover la ventana lo que haga sea iniciar una operación de redimensionar (resize) el Form al presionar click sobre uno de los "bordes", aunque ello requeriría algo más de trabajo de implementación que lo que escribí en este código de aquí abajo.

...¿Y cómo se hace todo eso?, pues así:

Código
  1. Public NotInheritable Class Form1 : Inherits Form
  2.  
  3.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  4.        Me.FormBorderStyle = FormBorderStyle.None
  5.    End Sub
  6.  
  7.    Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
  8.        ' Asegúrate de escribir un valor de longitud que sea número par, para que encaje correctamente en los offsets.
  9.        Using pen As New Pen(Color.LimeGreen, SystemInformation.FrameBorderSize.Width)
  10.            e.Graphics.DrawRectangle(pen, Me.DisplayRectangle)
  11.        End Using
  12.    End Sub
  13.  
  14.    Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles Me.MouseDown
  15.        If (e.Button = MouseButtons.Left) Then
  16.            NativeMethods.ReleaseCapture()
  17.            NativeMethods.SendMessage(Me.Handle, NativeMethods.WindowsMessages.WM_NCLBUTTONDOWN,
  18.                                      New IntPtr(NativeMethods.NcHitTestFlags.HT_CAPTION), IntPtr.Zero)
  19.        End If
  20.    End Sub
  21.  
  22. End Class

Código
  1. Friend NotInheritable Class NativeMethods
  2.  
  3.    Private Sub New()
  4.    End Sub
  5.  
  6.    ' https://msdn.microsoft.com/en-us/library/windows/desktop/ff381405(v=vs.85).aspx
  7.    Friend Enum WindowsMessages As Integer
  8.        WM_NCLBUTTONDOWN = &HA1
  9.    End Enum
  10.  
  11.    ' https://msdn.microsoft.com/en-us/library/windows/desktop/ms645618(v=vs.85).aspx
  12.    Friend Enum NcHitTestFlags As Integer
  13.        HT_CAPTION = &H2
  14.    End Enum
  15.  
  16.    ' https://msdn.microsoft.com/en-us/library/windows/desktop/ms646261(v=vs.85).aspx
  17.    <DllImport("user32.dll")>
  18.    Friend Shared Function ReleaseCapture() As Boolean
  19.    End Function
  20.  
  21.    ' https://msdn.microsoft.com/en-us/library/windows/desktop/ms644950(v=vs.85).aspx
  22.    <DllImport("user32.dll", EntryPoint:="SendMessage", SetLastError:=True)>
  23.    Friend Shared Function SendMessage(
  24.              <MarshalAs(UnmanagedType.SysInt)> ByVal hwnd As IntPtr,
  25.                  <MarshalAs(UnmanagedType.U4)> ByVal msg As WindowsMessages,
  26.              <MarshalAs(UnmanagedType.SysInt)> ByVal wParam As IntPtr,
  27.              <MarshalAs(UnmanagedType.SysInt)> ByVal lParam As IntPtr
  28.    ) As Integer
  29.    End Function
  30.  
  31. End Class



Citar
que código le pongo al picturebox para que haga la funcion de borde. ?

La próxima vez no pidas tanto código así como si esto fuese un servicio gratis de entrega de códigos a domicilio con una base de datos de códigos en oferta para cualquier ocasión especial del año...

En general pedir "códigos" está muy mal visto internacionálmente en el mundillo de la programación..

Trata de buscar un poco antes de preguntar, que son cosas sencillas las que pides y podrías investigar por Google o donde sea y acabar hallando una solución. No te lo van a dar todo siempre hecho.


PD: Lo siento pero tenía que decirlo.

Saludos
« Última modificación: 12 Octubre 2017, 21:32 por Eleкtro » En línea


[/cent
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Incrustar web en una web
Desarrollo Web
Royportero 1 2,163 Último mensaje 28 Julio 2008, 12:58
por Royportero
[Consulta] Como incrustar musica en mi aplicacion?
Programación C/C++
Xephiro 1 1,074 Último mensaje 27 Diciembre 2010, 15:48
por ThunderCls
Incrustar video
Sugerencias y dudas sobre el Foro
Alt255 1 1,038 Último mensaje 21 Abril 2011, 22:54
por Novlucker
MOVIDO: Incrustar Scrip en Web1 que accede a formulario de web2
Ingeniería Inversa
.:UND3R:. 0 210 Último mensaje 3 Marzo 2016, 22:20
por .:UND3R:.
Incrustar un .exe dentro de un formulario .
.NET
**Aincrad** 8 476 Último mensaje 11 Octubre 2017, 23:26
por **Aincrad**
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines