Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Reproducción multimedia. Dudas del que empieza.

Estas en el tema de Reproducción multimedia. Dudas del que empieza. en el foro de C/C++ en Foros del Web. Buenas!! Hace poco que he empezado a darle al C++ y había pensado que una buena aplicación para empezar a practicar sería un reproductor multimedia ...
  #1 (permalink)  
Antiguo 16/08/2011, 18:44
 
Fecha de Ingreso: agosto-2011
Mensajes: 9
Antigüedad: 12 años, 8 meses
Puntos: 1
Pregunta Reproducción multimedia. Dudas del que empieza.

Buenas!!

Hace poco que he empezado a darle al C++ y había pensado que una buena aplicación para empezar a practicar sería un reproductor multimedia (sencillito) de audio y vídeo... pero me parece complicadísimo xD

Había pensado en cargar un MP3 con ifstream, leerlo y sacarlo en la consola, como si fuese un archivo de texto, pero se ve que así no es, desde luego, ya que lo único que me salen son un montón de caracteres raros en plan "Matrix"

Me imagino que es porque el MP3 está codificado, y se necesita decodificarlo para que el programa lo entienda. ¿Cómo podría hacerlo?

Un saludo y gracias de antemano! ;)

PD: Os dejo el codiguillo que hice, aunque no sirva de nada >.<

Código:
#include <fstream>
#include <iostream>

using namespace std;

/*
 * 
 */
int main(int argc, char** argv) {
    ifstream mediaFile("archivo.mp3");
    string string;
    
    while(getline(mediaFile, string)) {
        cout << string;
    }
}

Última edición por Tokorinchi; 16/08/2011 a las 18:45 Razón: Corrección ortográfica
  #2 (permalink)  
Antiguo 16/08/2011, 20:26
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Reproducción multimedia. Dudas del que empieza.

El Formato MP3 no tiene representacion en caracteres, no es que estas codificado.... Un archivo MP3 se lee y se interpreta en binario.

Busca en google por ejemplo MP3 File format y tenes un moton de informacion!
  #3 (permalink)  
Antiguo 17/08/2011, 03:37
 
Fecha de Ingreso: marzo-2011
Mensajes: 54
Antigüedad: 13 años, 1 mes
Puntos: 11
Respuesta: Reproducción multimedia. Dudas del que empieza.

Empezar con C++ y querer hacer un reproductor es bastante ambicioso la verdad, podrias empezar trabajando con sockets, descargando cosas de internet, manejando threads, creando la GUI....
  #4 (permalink)  
Antiguo 17/08/2011, 05:33
 
Fecha de Ingreso: agosto-2011
Mensajes: 9
Antigüedad: 12 años, 8 meses
Puntos: 1
Pregunta Respuesta: Reproducción multimedia. Dudas del que empieza.

Gracias por las respuestas!, estoy investigando a ver qué consigo
De momento ya he abierto el archivo en binario (algo es algo xD)

Por cierto, no entiendo esto:

Cita:
Iniciado por sam90 Ver Mensaje
El Formato MP3 no tiene representacion en caracteres, no es que estas codificado.... Un archivo MP3 se lee y se interpreta en binario.

Busca en google por ejemplo MP3 File format y tenes un moton de informacion!
¿Cómo puedes leer un archivo si no tiene caracteres?, ¿no sería imposible?

Saludos!
  #5 (permalink)  
Antiguo 17/08/2011, 07:05
 
Fecha de Ingreso: marzo-2011
Mensajes: 54
Antigüedad: 13 años, 1 mes
Puntos: 11
Respuesta: Reproducción multimedia. Dudas del que empieza.

No tiene caracteres imprimibles y que un ser humano pueda entender, no vas a abrir el archivo como lo has hecho y te va a salir la letra de la cancion (por decir algo), mp3 tiene su propio formato y los reproductores lo leen en binario y lo interpretan.
  #6 (permalink)  
Antiguo 17/08/2011, 12:45
 
Fecha de Ingreso: agosto-2011
Mensajes: 9
Antigüedad: 12 años, 8 meses
Puntos: 1
Sonrisa Respuesta: Reproducción multimedia. Dudas del que empieza.

Bueno, me parece que he aspirado a hacer un proyectillo que me viene demasiado grande

He modificado mi código para que abra el archivo y lo lea en un buffer, pero hasta ahí. Me imagino que necesitaría los algoritmos propios de MP3 (los cuales no encuentro por ningún sitio) para "descifrar" los caracteres contenidos en el buffer, y luego tendría que enviar los datos al SO para que reproduzca la canción a través de la tarjeta de sonido (lo cual no sé hacer xD)... o eso creo.

Dejo aquí el código modificado, por si alguien quiere echarle un ojo

Código:
#include <fstream>

using namespace std;

/*
 * 
 */
int main(int argc, char** argv) {
    ifstream mediaFile;
    int fileLength;
    char *buffer;
    
    mediaFile.open("archivo.mp3", ios::binary);
    
    // Get length of file:
    mediaFile.seekg (0, ios::end);
    fileLength = mediaFile.tellg();
    mediaFile.seekg (0, ios::beg);
    
    buffer = new char [fileLength];
    mediaFile.read(buffer, fileLength);
    mediaFile.close();
}
Saludos!!
  #7 (permalink)  
Antiguo 17/08/2011, 14:29
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Reproducción multimedia. Dudas del que empieza.

Buscá alguna biblioteca que lo decodifique, y hazte cargo nada más de pasarle los datos correctos. No hace falta que implementes un decodificador de MP3 como primer proyecto con el lenguaje

Ejemplo: LAME


Saludos.

Etiquetas: c++, mp3
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:38.