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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  C# Problemas con filtros de archivos de musica, solo permite .wav
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: C# Problemas con filtros de archivos de musica, solo permite .wav  (Leído 13,191 veces)
SeniorX


Desconectado Desconectado

Mensajes: 1.347


Programador Novato


Ver Perfil WWW
C# Problemas con filtros de archivos de musica, solo permite .wav
« en: 2 Junio 2006, 03:39 am »

Hola a todos... espero que me puedan ayudar, si no saben, pero por lo menos saben donde me podrian ayudar, les agradeceria que postearan un link a otro foro o algo por el estilo.
Les expongo mi problema:
Estoy haciendo un despertador en c#, lo unico que me falta es hacer que el programa reproduzca un archivo de audio especificado por el usuario.
(Voy a mostrar las partes de codigo en especifico, pero si necesitan mas codigo para lograr una solucion, no tengo problemas en postearlo)
Invoco a un reproductor:
Código:
private System.Media.SoundPlayer musica = new System.Media.SoundPlayer();
Le agrego un openFileDialog y lo llamo archivo y agrego el filtro (empiezan los problemas):
Código:
private void button1_Click(object sender, EventArgs e)
        {

            archivo.Filter = "Solo archivos .wav |*.wav";
            if (archivo.ShowDialog() == DialogResult.OK)
            {
                archivoDeAlarma = archivo.FileName;
                txtArchivoAlarma.Text = archivoDeAlarma;
            }
        }
Donde el button1 es el que dice Examinar.
El problema de raiz está acá ya que me veo obligado a usar archivos .wav ya que al invocar musica.PlayLoops() me dice que es para archivos .wav y nada más, al igual que musica.Play().



Entonces acá va mi pregunta:¿¿ Como hago para que pueda reproducir un archivo mp3?? o midi?


En línea

Código:
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}
Precaución: La programacion puede producir adiccion
BADBYTE-K
Knowledge is power, Diesel-K


Desconectado Desconectado

Mensajes: 2.329


Aprende todo lo que este a tu alkance


Ver Perfil WWW
Re: C# Problemas con filtros de archivos de musica, solo permite .wav
« Respuesta #1 en: 2 Junio 2006, 07:33 am »

Hola

Tu problema empieza debido a la limitacion que te provee el mismo .net framework con la clase SoundPlayer que estas usando , ya que esta especificada solo para la reproduccion de archivos .wav

Entonces lo que debes hacer es cambiar todo el modelo de la reproduccion del audio de tu despertador si es que deseas lograr reproducir mp3's

Puedes hacerlo de varias formas, la mas facil es haciendo uso de interoperabilidad COM haciendo referencia al componente "ActiveMovie COM" (C:\WINDOWS\system32\quartz.dll)


Aqui te pego el codigo para que veas como es el funcionamiento basico de dicho componente:

Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using QuartzTypeLib;


namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter =
            "Media Files|*.wav;*.mp3;*.mp2;*.wma|All Files|*.*";
            if (DialogResult.OK == openFileDialog.ShowDialog())
            {
               
                QuartzTypeLib.FilgraphManager graphManager =
                new QuartzTypeLib.FilgraphManager();
                QuartzTypeLib.IMediaControl mediacontrol =
                (QuartzTypeLib.IMediaControl)graphManager;

                mediacontrol.RenderFile(openFileDialog.FileName);
               
                mediacontrol.Run();
            }
        }
    }
}

Ese codigo es el standar para el uso del componente lo encuentras en libros, webs, etc. pruebalo y veras como funciona la reproduccion.

sigue estos detalles por si tienes problemas al compilar:

Crea un nuevo proyecto windows C#
Agrega una referencia al componente
Agrega un boton al formulario
agrega un OpenFileDialog

para los detalles de la programacion del componente, lo encuentras en cualquier sitio de la red, avisa en caso de dudas.

Y con respecto a otras formas, pues podrias hacerlo jugando con api's pero es mas trabajoso.

saludos!


« Última modificación: 2 Junio 2006, 07:35 am por BADBYTE-K » En línea

SeniorX


Desconectado Desconectado

Mensajes: 1.347


Programador Novato


Ver Perfil WWW
Re: C# Problemas con filtros de archivos de musica, solo permite .wav
« Respuesta #2 en: 2 Junio 2006, 18:08 pm »

Hey men, muchas gracias por la respuesta, pero mira lo que pasó:
Código:
public partial class Form1 : Form
    {
        string archivoDeAlarma;
        private DateTime alarmaHora;
        bool alarmaHabilitada;
        public QuartzTypeLib.FilgraphManager graphManager = new QuartzTypeLib.FilgraphManager();
        public QuartzTypeLib.IMediaControl mediacontrol = (QuartzTypeLib.IMediaControl)graphManager;
       

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            archivo.Filter = "Media Files|*.wav;*.mp3;*.mp2;*.wma|All Files|*.*";
            if (archivo.ShowDialog() == DialogResult.OK)
            {
               
                 mediacontrol.RenderFile(archivo.FileName);
                mediacontrol.Run();
                archivoDeAlarma = archivo.FileName;
                txtArchivoAlarma.Text = archivoDeAlarma;
            }
        }
Me destaca
Citar
public QuartzTypeLib.FilgraphManager graphManager = new QuartzTypeLib.FilgraphManager();
        public QuartzTypeLib.IMediaControl mediacontrol = (QuartzTypeLib.IMediaControl)graphManager;
Dice:
Citar
Error   1   A field initializer cannot reference the nonstatic field, method, or property 'WindowsApplication1.Form1.graphManager'   C:\Documents and Settings\pietro\Mis documentos\Visual Studio 2005\Projects\Despertador\Despertador\Form1.cs   18   88   Despertador

A ver si me indican que hago mal...
En línea

Código:
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}
Precaución: La programacion puede producir adiccion
SeniorX


Desconectado Desconectado

Mensajes: 1.347


Programador Novato


Ver Perfil WWW
Re: C# Problemas con filtros de archivos de musica, solo permite .wav
« Respuesta #3 en: 2 Junio 2006, 20:00 pm »

hey... estaba pensando en el programa y se me ocurrio:
¿Se puede hacer que cuando sea la hora de despertar el programa le suba el volumen al pc? como se hace desde la barra inicio o el panel de control.
Si es que se puede, ojalá me puedan orientar a algun lado para estudiar.
En línea

Código:
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}
Precaución: La programacion puede producir adiccion
BADBYTE-K
Knowledge is power, Diesel-K


Desconectado Desconectado

Mensajes: 2.329


Aprende todo lo que este a tu alkance


Ver Perfil WWW
Re: C# Problemas con filtros de archivos de musica, solo permite .wav
« Respuesta #4 en: 3 Junio 2006, 02:58 am »

Aqui te adjunto todo el proyecto para que no tengas problemas


saludos
En línea

SeniorX


Desconectado Desconectado

Mensajes: 1.347


Programador Novato


Ver Perfil WWW
Re: C# Problemas con filtros de archivos de musica, solo permite .wav
« Respuesta #5 en: 3 Junio 2006, 04:21 am »

Men no sabes cuanto agradezco tu paciencia :). El programa anda perfecto  ::).
Solo me falta agregar que controlador en el cual el usuario indique el volumen del despertador. Entonces cuando sea la hora el volumen sube y se reproduce la cancion.
Realizado esto, posteo el codigo para que opinen, ayuden y aporten como optimizar código, segun yo... está bien.
En línea

Código:
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}
Precaución: La programacion puede producir adiccion
SeniorX


Desconectado Desconectado

Mensajes: 1.347


Programador Novato


Ver Perfil WWW
Re: C# Problemas con filtros de archivos de musica, solo permite .wav
« Respuesta #6 en: 7 Junio 2006, 01:07 am »

última pregunta... ya que nadie supo como subir el volumen de los parlantes  :-(.

El programa funciona de lujo... y ahora como hago para que el programa no dependa del framework?¿? Disculpen la ignorancia pero soy un aprendiz  :P
En línea

Código:
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}
Precaución: La programacion puede producir adiccion
BADBYTE-K
Knowledge is power, Diesel-K


Desconectado Desconectado

Mensajes: 2.329


Aprende todo lo que este a tu alkance


Ver Perfil WWW
Re: C# Problemas con filtros de archivos de musica, solo permite .wav
« Respuesta #7 en: 7 Junio 2006, 07:07 am »

Hola.

Lo que tu quieres hacer no es posible, ya que el .net framework es como el corazon de la ejecucion de tu aplicacion, es como un gran repositorio del cual tu app se apoyara en todo sentido. como biblioteca, rutinas, seguridad, etc.

Solo cuentanos, porque deseas una independencia del .net framework? cuenta con confianza, que aqui todos estamos para aprender.


saludos

En línea

JuszR


Desconectado Desconectado

Mensajes: 2.866


Programming & RI


Ver Perfil
Re: C# Problemas con filtros de archivos de musica, solo permite .wav
« Respuesta #8 en: 7 Junio 2006, 07:16 am »

El programa funciona de lujo... y ahora como hago para que el programa no dependa del framework?¿? Disculpen la ignorancia pero soy un aprendiz  :P
Es imposible. Es como que las aplicaciones en Java se ejecuten sin el JVM o las de Vb6 sin el msvbvm60.dll.


Solo cuentanos, porque deseas una independencia del .net framework? cuenta con confianza, que aqui todos estamos para aprender.
Por lo de siempre. No todos tienen banda ancha y el .Net Framework ocupa como 30Mb. Difícilmente el usuario ya lo tendrá instalado, a menos que tenga GNU/Linux con una distro como Suse donde MONO se instala fácil desde los cd's.

Es la desventaja de programar en lenguajes fuera de C, C++ y Asm. :-\
En línea

- No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes. [Herbert Mayer]
SeniorX


Desconectado Desconectado

Mensajes: 1.347


Programador Novato


Ver Perfil WWW
Re: C# Problemas con filtros de archivos de musica, solo permite .wav
« Respuesta #9 en: 8 Junio 2006, 01:07 am »

Solo cuentanos, porque deseas una independencia del .net framework? cuenta con confianza, que aqui todos estamos para aprender.
.Net Framework ocupa como 30Mb. Difícilmente el usuario ya lo tendrá instalado
Es la desventaja de programar en lenguajes fuera de C, C++ y Asm. :-\
Citar
Por eso mismo XD, casi nadie tiene el .netframework... a menos que programe en .NET :P
En línea

Código:
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}
Precaución: La programacion puede producir adiccion
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
La extensión 'Gee! No Evil' para Firefox permite neutralizar los filtros ...
Noticias
wolfbcn 1 2,491 Último mensaje 16 Junio 2011, 10:53 am
por .:UND3R:.
Red wifi que solo permite ciertas IP
Hacking Wireless
Ferbous 8 4,522 Último mensaje 16 Noviembre 2011, 15:18 pm
por Ferbous
problemas con mi router, se reinicia solo cuando subo archivos x ftp
Redes
jann 0 2,686 Último mensaje 30 Diciembre 2011, 03:23 am
por jann
Nuevo sistema permite reventa de música en MP3
Noticias
wolfbcn 0 1,433 Último mensaje 9 Febrero 2012, 23:15 pm
por wolfbcn
AutoRadios y USB problemas música
Multimedia
Superplay 1 4,916 Último mensaje 30 Octubre 2016, 09:30 am
por bettu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines