Ver Mensaje Individual
  #1  
Antiguo 23-09-2017
Avatar de turbopascual5.0
turbopascual5.0 turbopascual5.0 is offline
Miembro
 
Registrado: feb 2011
Posts: 54
Reputación: 14
turbopascual5.0 Va por buen camino
Unhappy Error mediaplayer y sonidos del sistema

Hola a tod@s

Estoy desarrolando una aplicación para android. El diseño es muy minimalista y no uso botones, pongo una imagen y uso el evento onclick para acceder a las diferentes pantallas de datos.

Quería poner un sonido al arrancar el programa y otro sonido cada vez que pulse una imagen. En un action list he creado un par de acciones, llamadas click y tambor.


Código Delphi [-]
procedure tamborExecute(Sender: TObject);
const
  tosname: array [0..3] of string  = ('Win','OSX','iOS','Android');
begin
  mediaplayer1.Stop; mediaplayer1.Clear;
  if tosname[integer(TOSversion.Platform)]='Android' then begin
    mediaplayer1.FileName:= TPath.GetDocumentsPath + PathDelim + 'tambor.3gp' ;
    if mediaplayer1.State = tmediastate.Stopped then
      mediaplayer1.Play;
    end;
  if tosname[integer(TOSversion.Platform)]='Win' then begin
    mediaplayer1.FileName:= 'C:\Users\Usuario\Documents\Embarcadero\Studio\Projects\sound\tambor.wma' ;
    if mediaplayer1.State = tmediastate.Stopped then
      mediaplayer1.Play;
  end;
end;

procedure clickExecute(Sender: TObject);
const
  tosname: array [0..3] of string  = ('Win','OSX','iOS','Android');
begin
  if tosname[integer(TOSversion.Platform)]='Android' then begin
    mediaplayer1.FileName:= TPath.GetDocumentsPath + PathDelim + 'call.3gp' ;
    if mediaplayer1.State = tmediastate.Stopped then
      mediaplayer1.Play;
  end;
  if tosname[integer(TOSversion.Platform)]='Win' then begin
    mediaplayer1.FileName:= 'C:\Users\Usuario\Documents\Embarcadero\Studio\Projects\sound\call.wma' ;
    if mediaplayer1.State = tmediastate.Stopped then
      mediaplayer1.Play;
  end;
end



En deployment he colocado los ficheros en la ruta .\assets\internal.

Las rutas de win me son indeferentes, el programa nunca va a ser unsado en windows, solo las pongo para poder correr el programa paso a paso y depurar.

Cuando arranco suena , sin problema. La llamada a la acción la hago en el evento formcreate .

A partir de eso aparece un error cíclico. Al correr la acción click tengo un error "Access violation at adress A02D0550, accesing adress 00000000". Al pulsar de nuevo la imagen y correr la acción no da error y el sonido se escucha, corriendo el programa normalmente. Al volver a pulsar otra vez el error y así cíclico.

¿a que se puede deber?

Y una última consulta: Cuando corres una palicación android , como un navegador, al introducir datos se escuchan los "clicks" , esos sonidos no son multimedia.
¿Existe alguna forma de tener sonidos en las pulsaciones de botón, entrada de teclado, etc, que no sea reproduciendo un fichero de sonido con mediaplayer?

Uso Tokio 10.2 y su desesperante lento IDE (i7 , 16 gb ram).


Gracias a tod@s de antemano.

Última edición por Neftali [Germán.Estévez] fecha: 26-09-2017 a las 10:05:56. Razón: Corregir TAGs
Responder Con Cita