BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

Programar un reproductor multimedia propio en C++ ¿dónde empezar?

PezDeRedes

Tengo que hacer un proyecto para la universidad, algo relacionado con "multimedia" (sí, esos son todos los detalles de los que dispongo, no es que no quiera dar más, es que no tengo más). He pensado en hacer un reproductor de medios (podría ser audio, o vídeo), idealmente en C++ porque Python no lo manejo y Java entre que necesitas el JRE donde lo quieras ejecutar y demás… si es posible, lo prefiero en C++.

El problema es que no tengo la menor idea de por dónde empezar: conozco un poco la librería FFmpeg pero ni siquiera sé si es lo que necesito.

Por tanto, si tenéis alguna indicación para ver por dónde empiezo a documentarme, alguna sugerencia sobre otro proyecto… lo que sea, me viene perfecto.

lhacc

¿En qué plataforma?

🗨️ 2
PezDeRedes

Como quiera yo. En pricipio he pensado para Windows

🗨️ 1
P B Fierro

Hombre… Si es para Windows con C# Windows Forms (.NET Frameworks) es mucho mas fácil, entre otras cosas la interfaz y todo es mucho mas sencillo y hay multitud de ejemplos.

Tengo hecho algún reproductor en C# para entretenerme y lo que mas trabajo me dio eran las listas de reproducción (que en principio no piensas en ellas…)

🗨️ 2
P B Fierro

En C# metiendo todo el código (que usando el diseñador es mas sencillo aún) un programa que reproduzca archivos .Wav (para otros tipos de archivos multimedia se puede usar Axmediaplayer, pero el código es básicamente el mismo.)

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Media;

namespace Reproductor_cachondo

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

this.Load += new EventHandler(On_Load);

}

Button boton1 = new Button();

Button boton2 = new Button();

OpenFileDialog open = new OpenFileDialog();

System.Media.SoundPlayer SP = new System.Media.SoundPlayer();

private void On_Load(object sender, EventArgs e)

{

this.BackColor = Color.Black;

boton1.AutoSize = true;

boton1.Text = "Abrir archivo";

boton1.ForeColor = Color.White;

boton1.Location = new Point(10, 50);

boton2.AutoSize = true;

boton2.ForeColor = Color.White;

boton2.Text = "reproducir";

boton2.Location = new Point(10, 100);

Controls.Add(boton1);

Controls.Add(boton2);

boton1.Click += new EventHandler(Boton1_Click);

boton2.Click += new EventHandler(Boton2_Click);

}

private void Boton1_Click(object sender, EventArgs e)

{

open.Filter = "Archivo WAV | *.wav";
open.ShowDialog();

SP.SoundLocation = open.FileName;

SP.LoadAsync();

}

private void Boton2_Click(object sender, EventArgs e)

{

SP.Play();

}

}

}
vukits

Si es algo para la facultad, te recomiendo encarecidamente que lo ejecutes en ÑU/Linux… Así, incluso lo puedes probar dentro de máquinas virtuales.

De librerías gráficas, quizás te interese usar QT5

Hay muchísimos reproductores que Software Libre, y que tienen su código fuente disponible.

Conozco dos o tres ramas de reproductores:

  • librerías Mplayer y derivados (mpv).
  • librerías VLC
  • librerías FFMPEG
🗨️ 11
PezDeRedes

En principio carezco de interés porque esto funcione en Linux. La cosa va de demostrar que soy capaz de hacer un proyecto relacionado con la multimedia, y mi manejo de Windows es superior al de Linux.

Usar QT5 o algo similar, que nunca he tocado, requerirá de mi parte un proceso de documentación bastante grande que con otras 4 asignaturas y otros dos proyectos gordos entre manos es jodido.

Saludos!

🗨️ 10
vukits
2

Por supuesto, hay maneras mucho más rápidas de hacer una pieza de software.

Tienes razón.

Ahora bien. Un consejo:

ningún producto de Microsoft te va a dar de comer en el mercado laboral, o por lo menos no encontrarás sueldos de más de 1200 mensuales.

(Mención especial para Azure… pero eso ya es otra historia)

🗨️ 9
PezDeRedes

Eso es evidente. De hecho en C++ sí que programé en Linux bastante. Y de scripts bash me harté. Pero en este caso me interesa más el rollo multimedia que otra cosa. Más que nada porque tengo también una web app completa (cosa de gran futuro) y una app móvil completa.

P B Fierro
1

Eso es cierto, cualquiera con Visual Studio puede hacer sus pinitos (Hasta yo…)

Schezard

Discrepó con que no te daría de comer nada hecho para MS.

Aparte de eso, yo lo que veo es una clara vagancia, en no querer innovar o salir de lo fácil.

Los proyectos de la universidad/FP son tus primeros pasos para destacar y encontrar algo donde puedas sentirte cómodo.

No descartaba nada, ni hacer un servidor DLNA que si te lo curras te puede servir hasta para ti (en Linux) y mira que de todo estos hay alternativas.

🗨️ 3
Schezard
1
🗨️ 1
lhacc

ningún producto de Microsoft te va a dar de comer en el mercado laboral, o por lo menos no encontrarás sueldos de más de 1200 mensuales.

Lo que hay que oír.

skizoy
1

Eso de los 1200 euros era hace 10 años…

🗨️ 1
vukits
PezDeRedes

Os agradezco a todos las respuestas. Conforme vaya pudiendo iré mirando cosas que me habéis pasado y usaré este hilo por si tengo que preguntar algo. Os iré comentando.

Saludos!