Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-11-2007
Avatar de pockelsm3
pockelsm3 pockelsm3 is offline
Miembro
 
Registrado: oct 2007
Posts: 65
Poder: 17
pockelsm3 Va por buen camino
Question Tocar la Cancion siguiente con el MediaPlayer

Buenas, tengon un inconveniente con una applicacion que estoy desarrollando para tocar musica, videos y peliculas.

mi problema consiste en que cuando quiero avanzar a la siguiente mientras ya esta tocando alguna, me da un el siguiente error

MCIDiviceError with message 'cannot determine the divice type from the given filename extension'

Este es el codigo que estoy utilizando

Código Delphi [-]
procedure TFMain.MPSoundNotify(Sender: TObject);
begin
  if MPSound.Mode = mpPlaying then
    begin
      MPSound.Close;
      TCanciones.DisableControls;
      TCanciones.First;
      TCanciones.Delete;
      TCanciones.EnableControls;
      MPSound.FileName := TCancionesRUTA.Value;
      MPSound.Open;
      MPSound.Play;
    end;
end;

Última edición por dec fecha: 29-11-2007 a las 18:00:37.
Responder Con Cita
  #2  
Antiguo 29-11-2007
Avatar de pockelsm3
pockelsm3 pockelsm3 is offline
Miembro
 
Registrado: oct 2007
Posts: 65
Poder: 17
pockelsm3 Va por buen camino
Unhappy Correcion publicacion anterior

Disculpen que el codigo anterior lo utiliza para que pase de una cancion a otra, cuando la que estaba sonando termine.

este es el codigo correcto que estoy utilizando

procedure TFMain.NextClick(Sender: TObject);
begin
MPSound.Stop;
MPSound.Close;
TCanciones.DisableControls;
TCanciones.First;
TCanciones.Delete;
TCanciones.EnableControls;
MPSound.FileName := TCancionesRUTA.Value;
MPSound.Open;
MPSound.Play;
end;

Gracias de antemano
Responder Con Cita
  #3  
Antiguo 29-11-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hola, una pregunta, cual es la funcion del delete que estas haciendo, borras un dato en la tabla canciones?, no le veo sentido, intenta sin el delete:

Código Delphi [-]
procedure TFMain.NextClick(Sender: TObject);
begin
      MPSound.Stop;
      MPSound.Close;
      TCanciones.DisableControls;
      TCanciones.First;
      TCanciones.EnableControls;
      MPSound.FileName := TCancionesRUTA.Value;
      MPSound.Open;
      MPSound.Play;
end;

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 29-11-2007
Avatar de pockelsm3
pockelsm3 pockelsm3 is offline
Miembro
 
Registrado: oct 2007
Posts: 65
Poder: 17
pockelsm3 Va por buen camino
Thumbs up Aclaratoria delete

Gracias por responder

pero si te fijas en el codigo fuente siempre estoy mandado a tocar el primer registro de la tabla, que por eso mando a posicionarse en el primer registro para poder eliminarlo para luego tocar el nuevo registro posicionado en el primer lugar
Responder Con Cita
  #5  
Antiguo 06-12-2007
Avatar de Hola_mundo
Hola_mundo Hola_mundo is offline
Registrado
 
Registrado: dic 2007
Posts: 5
Poder: 0
Hola_mundo Va por buen camino
Yo resoloví un problema parecido de la siguiente manera: cree una tabla con el Data Base desktop en donde en uno de los campos guardo como un Tipo Alpha el Path donde se encuentra el tema. Y en el preimero de los dos Campos creados coloco un "ID" para Identificar cada path (El campo "ID" es un numero del tipo Long Integer).
Con este Campo "Id" logre , como veras en la primera parte del codigo, que cuando pulses el boton "siguiente" o "next" y estes parado en el ultimo registro de la tabla, automaticamente pases al primero.

Código Delphi [-]
procedure TFormTrack.SpeedButton2Click(Sender: TObject);
begin  // En esta parte detecto si es el ultimo registro y paso al primero.
  if DBGRID1.Columns.Items[0].Field.ASinteger = 13 then begin   //Esta linea apunta a una columna del DBGrid1 donde se encuentra el nuero "ID" del tema o track, el cual convierto del tipo TField a un INTEGER y lo comparo con el ultimo registro de la tabla (en mi caso el N° 13)
     query1.First; // Si es el ultimo, paso al primero.
     MediaPlayer1.FileName := DBGRID1.Columns.Items[1].Field.ASSTRING;      //Esta linea apunta a una columna del DBGrid1 donde se encuentra el path del tema o track, el cual convierto del tipo TField a un String, para que sea compatible con la propiedad MediaPlayer1.FileName
     MediaPlayer1.Open;
     MediaPlayer1.Play;
  end    
   else  //Sino no es el ultimo, paso al sigueinte.
      QUERY1.Next; 
      MediaPlayer1.FileName := DBGRID1.Columns.Items[1].Field.ASSTRING;
      MediaPlayer1.Open;
      MediaPlayer1.Play;
 end;



Espero que te sirva....tiene muchas explicaiones....peroes facil de entender...y no son muhcas lineas de codigo, son solo 9 y contadas.

Última edición por Hola_mundo fecha: 06-12-2007 a las 18:36:56. Razón: Soy un tarado....ja
Responder Con Cita
  #6  
Antiguo 06-12-2007
Avatar de Hola_mundo
Hola_mundo Hola_mundo is offline
Registrado
 
Registrado: dic 2007
Posts: 5
Poder: 0
Hola_mundo Va por buen camino
Yo resoloví un problema parecido de la siguiente manera: cree una tabla con el Data Base desktop en donde en uno de los campos guardo como un Tipo Alpha el Path donde se encuentra el tema. Y en el preimero de los dos Campos creados coloco un "ID" para Identificar cada path (El campo "ID" es un numero del tipo Long Integer).
Con este Campo "Id" logre , como veras en la primera parte del codigo, que cuando pulses el boton "siguiente" o "next" y estes parado en el ultimo registro de la tabla, automaticamente pases al primero.

Código Delphi [-]
procedure TFormTrack.SpeedButton2Click(Sender: TObject);
begin  // En esta parte detecto si es el ultimo registro y paso al primero.
 if DBGRID1.Columns.Items[0].Field.ASinteger = 13 then begin   //Esta linea apunta a una columna del DBGrid1 donde se encuentra el nuero "ID" del tema o track, el cual convierto del tipo TField a un INTEGER y lo comparo con el ultimo registro de la tabla (en mi caso el N° 13)
  query1.First; // Si es el ultimo, paso al primero.
  MediaPlayer1.FileName := DBGRID1.Columns.Items[1].Field.ASSTRING;      //Esta linea apunta a una columna del DBGrid1 donde se encuentra el path del tema o track, el cual convierto del tipo TField a un String, para que sea compatible con la propiedad MediaPlayer1.FileName
  MediaPlayer1.Open;
  MediaPlayer1.Play;
  end    
   else  //Sino no es el ultimo, paso al sigueinte.
     QUERY1.Next; 
     MediaPlayer1.FileName := DBGRID1.Columns.Items[1].Field.ASSTRING;
     MediaPlayer1.Open;
     MediaPlayer1.Play;
 end;


Espero que te sirva....tiene muchas explicaiones....peroes facil de entender...y no son muhcas lineas de codigo, son solo 9 y contadas.

Última edición por Hola_mundo fecha: 06-12-2007 a las 18:38:45. Razón: Soy un atrado al cuadrado....jaja
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tocar madera cosa de informáticos...? marcoszorrilla Humor 10 07-02-2006 17:40:12
Mediaplayer y las notificaciones. Jorghino reyes Varios 4 26-08-2005 07:46:48
sonido con mediaplayer soloriv Varios 2 01-06-2005 16:36:28
Problema con mediaplayer Jan_polero Varios 4 05-11-2004 01:46:51
Utilizar MediaPlayer Pally Varios 3 19-06-2003 17:17:14


La franja horaria es GMT +2. Ahora son las 07:45:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi