Mario’s Player Un miniReproductor de Audio que estoy haciendo :) (Parte I)

Esta idea nació por culpa de Amarok y Clementine.

Si bien son 2 reproductores geniales, son demasiado para mí… en el sentido que no necesito muchas de las cosas que traen (no escucho radios online, no me interesa ver la letra de la canción, o la caratula del disco, etc.) Claro, se puede desHabilitar… pero prefería hacer uno🙂

Por lo mismo, no es nada de otro mundo. Lo estoy haciendo en Python (lenguaje), con Qt (UI), Phonon(audio) y usando SQLite para las listas de reproducción🙂

En esta primera parte (y considerando que no se NADA del uso SQLite) la dedicaré a la creación de tablas para las listas de reproducción. Algo simple.

Primero, tener instalado SQLite x_X Desde el Gestor de Paquetes y listo (Recuerden que soy usuario de Pardus Linux. Pero en teoría, pueden hacer lo mismo desde su distro)

La gracia de este gestor es que no necesita de un servidor, no necesita configuraciones raras, no usa clusters. Es un simple archivo! Lo puedes mover a donde quieras, al PC que quieras, con el sistema que quieras. la misma BD puede ser usada por diferentes aplicaciones sin ningún problema😯

Entonces básicamente tengo 2 tablas:
Para las listas de reproducción.

  • id
  • nombre_lista

Para las canciones.

  • id
  • fk_lista
  • nombre_cancion
  • ruta_cancion

Entonces, entramos a la carpeta donde vamos a dejar la bd, Abrimos sqlite3, y creamos la bd.

cd Documentos/python/MarioPlayer/bd
sqlite3 bdPlayer.db

Con esto tenemos creada la BD. Ahora (y para tener Integridad Referencial) escribimos el siguiente comando:

sqlite> PRAGMA foreign_keys = ON;

Lo siguiente es crear la tabla listas:

sqlite> CREATE TABLE listas(lis_pk_id INTEGER PRIMARY KEY AUTOINCREMENT, lis_nombre TEXT NOT NULL);

y la tabla canciones:

sqlite> CREATE TABLE canciones(can_pk_id INTEGER PRIMARY KEY AUTOINCREMENT, can_fk_lista INTEGER, can_nombre TEXT NOT NULL, can_ruta TEXT NOT NULL, FOREIGN KEY(can_fk_lista) REFERENCES listas(lis_pk_id));

Listo! Ahora a ingresar info de prueba:

sqlite> INSERT INTO listas (lis_nombre) VALUES ("Lista1");

y para verla de manera “bonita” hacemos un:

sqlite> .header on
sqlite> .mode column
sqlite> SELECT * FROM listas;

y tenemos:

lis_pk_id lis_nombre
--------- ----------
1         Lista1

Luego agregamos una canción:

sqlite> INSERT INTO canciones (can_fk_lista, can_nombre, can_ruta) VALUES (2, "Cancion1", "/ruta/Cancion/1");

y si lo hicieron tal cual, les da como respuesta:
Error: foreign key constraint failed
Y eso es todo. El problema es que para que funcione la integridad, siempre al abrir sqlite tienen que hacer el paso PRAGMA = ON;

Y eso por esta noche🙂 Lo siguiente, es escribir en la BD desde Python… cuando aprenda a hacerlo😯

Acerca de MaritoCares

Ingeniero Informático. Con tendencias a la programación en [C#, VB].NET, Java(Web principalmente...), PHP, JavaScript, algo mínimo de [ruby, python], y el clásico C.
Esta entrada fue publicada en Aplicación, Python, SQLite. Guarda el enlace permanente.

7 respuestas a Mario’s Player Un miniReproductor de Audio que estoy haciendo :) (Parte I)

  1. Yoyo dijo:

    Aquí tienes a un beta-tester para irlo probando ^^

    Yo soy como tu, de los que solo quieren oir su música local y nada más, ni quiero que se conecte a internet ni letras ni carátulas ni ná de eso…..

    Salu2

  2. linexteria dijo:

    dale me interesó, también me estoy metiendo en python aunque en pygtk…. me gustaría ayudar??

    saludos..

    • MaritoCares dijo:

      Oye si buena idea😀
      Para todos los gustos, Gnomeros y KDEros por igual jaja

      Te pueden servir las clases solas, y las vas acomodando a la interfaz que tengas😉

      Voy a estar subiendo el código por aquí a medida que aprenda. Una vez que ya me sienta más seguro, empiezo con el reproductor en sí. Por ahora estoy haciendo las cosas en partes, onda cómo hacer esto o esto otro.

  3. linexteria dijo:

    buena, el diseño primero o como diría un profesor de Sistemas de Información: “hay que hacer el análisis de requerimientos primero.”

    jajajaja, tienes algún manual de donde estas aprendiendo esto de pyqt, en pygtk es muy poca la info y toda en inglés??

    • MaritoCares dijo:

      Ps como dices… todo lo he sacado de foros y de la página de qt… y todo en inglés.

      Lo bueno es que no es taaaaan distinto a VB o Java, por lo que si bien no sé exactamente qué es lo que estoy buscando, empiezo por cosillas más generales hasta que doy en el clavo🙂

      Las palabras claves son toda mi ayuda en Google😀

  4. si lo vas hacer usando las librerias de Qt, te recomiendo visitar mi foro:
    http://www.zonaqt.com/

    y se ve muy interesante tu protyecto xD

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s