viernes, 10 de junio de 2011

amarok 2 android - full

Existe una aplicación que permite controlar Amarok desde un celular con Android.
La aplicación en cuestión se llama amarok2Adroid, se requiere instalar una aplicación en el celular y unos scripts en amarok.
Este script en cuestión tiene una falencia, no permite agregar música a la playlist desde el celular.

La solución: Modificar el archivo amarokfunc.js de los scripts de Amarok. Remplazar las funciones por estas dos nuevas funciones.


cmdCollectionPlayByTrackId = function(path){
    trackId = parseInt(path.substring(path.lastIndexOf("/")+1));
    trackURL = Amarok.Collection.query('SELECT rpath FROM urls LEFT JOIN tracks ON urls.id = tracks.url WHERE tracks.id = '+trackId+';');
    trackURL2 = Amarok.Collection.query('SELECT lastmountpoint FROM devices LEFT JOIN (urls LEFT JOIN tracks ON urls.id = tracks.url) ON devices.id = urls.deviceid WHERE tracks.id = '+trackId+';');
    Amarok.Playlist.addMedia(new QUrl('file://'+ trackURL2[0] + trackURL[0].substring(1)));
    response = new HandlerResponse();
    Amarok.Playlist.playByIndex(Amarok.Playlist.totalTrackCount()-1)
    return response
}

cmdCollectionEnqueue = function(path) {
    req_len = path.split("/").length;
    req_splitted = path.split("/");
    for(i = 2; i <= req_len; i++) {
trackId = req_splitted[i];
trackURL = Amarok.Collection.query('SELECT rpath FROM urls LEFT JOIN tracks ON urls.id = tracks.url WHERE tracks.id = '+trackId+';');
trackURL2 = Amarok.Collection.query('SELECT lastmountpoint FROM devices LEFT JOIN (urls LEFT JOIN tracks ON urls.id = tracks.url) ON devices.id = urls.deviceid WHERE tracks.id = '+trackId+';');
Amarok.Playlist.addMedia(new QUrl('file://'+ trackURL2[0] + trackURL[0].substring(1)));
    }
   
     
    response = new HandlerResponse();
    return response;
}

No hay comentarios:

Publicar un comentario