Monday, 22 September 2014

Building custom player using XBMC API


Building custom player using XBMC API

XBMC : XBMC is a free and open-source media player developed by the XBMC Foundation, primarily used in raspberry pi.

Using XBMC API,below is the node.js code to build a custom player,

/*****
CustomPlayer.js 
*****/

var net = require('net');
var PORT = 7000 ;
var host = 'localhost';  
var xbmc={};


function sendRequest(data, callback) {
    var str_data = 'GET /jsonrpc?request='+ JSON.stringify(data) + 'HTTP/1.0\r\n';
    var client = net.connect({port: PORT},{host: host},function (){
        client.write(str_data);
        client.write("HOST:"+host+"\r\n\r\n");
        console.log('client connected');
    });
    client.on('data', function(data) {
        callback(data); 
        client.end();
    });
    client.on('end', function() {
      console.log('client disconnected');
    });
}

    xbmc.open = function(songpath,callback){
             var data = {"jsonrpc":"2.0","method":"Player.Open","params":{"item":{"file":songpath}},"id":1};    
           sendRequest(data, callback);
    };

    xbmc.playpause = function(callback){
           var data = {"jsonrpc":"2.0","method":"Player.PlayPause","params":{"playerid":0},"id":1};
           sendRequest(data,callback);
    };
    
    xbmc.stop = function(callback){
           var data = {"jsonrpc":"2.0","method":"Player.Stop","params":{"playerid":0},"id":1};
           sendRequest(data,callback);
    };
    
    xbmc.setprevious = function(callback){
           var data = {"jsonrpc":"2.0","method":"Player.GoTo","params":{"playerid":0,"to":"previous"},"id":1};
           sendRequest(data,callback);
    };
    
    xbmc.setnext = function(callback){
        var data = {"jsonrpc":"2.0","method":"Player.GoTo","params":{"playerid":0,"to":"next"},"id":1};
        sendRequest(data, callback);
    };
    
    xbmc.setshuffle = function(callback){
           var data = {"jsonrpc":"2.0","method":"Player.SetShuffle","params":{"playerid":0,"shuffle":"toggle"},"id":1};
           sendRequest(data, callback);
    };
     
    xbmc.setrepeat = function(callback){
           var data = {"jsonrpc":"2.0","method":"Player.SetRepeat","params":{"playerid":0,"repeat":"cycle"},"id":1};
           sendRequest(data, callback);
    };
    
    xbmc.GetNowPlaying = function(callback){
           var data = {"jsonrpc":"2.0","method":"Player.GetItem","params":{"playerid":0,"properties":["title","album","duration","thumbnail"]},"id":1};
           sendRequest(data,callback);
    };
    
    xbmc.addToPlaylist = function(songpath,callback){
           var data = {"jsonrpc":"2.0","method":"Playlist.Add","params":{"playlistid":0,"item":{"file":songpath},"id": 4},"id":1};
           sendRequest(data, callback);
    };
    
    xbmc.GetPlaylistItems = function(callback){
           var data = {"jsonrpc":"2.0","method":"Playlist.GetItems","params":{"properties":["title", "album"],"playlistid":0},"id":1};
           sendRequest(data, callback);
    };

    xbmc.SetVolume = function(volumedata,callback){
           var data = {"jsonrpc":"2.0","method":"Application.SetVolume","params": { "volume":volumedata},"id":1};
           sendRequest(data, callback);
    };
    
    xbmc.setseek = function(seekdata,callback){
           var data = {"jsonrpc":"2.0","method":"Player.Seek","params": {"playerid":0,"value":seekdata},"id":1};
           sendRequest(data,callback);
    };


    module.exports = xbmc;

---------------------------------------------

Copy and paste the above codes into a .js file  and try developing your own media player for raspberry pi using XBMC API :)

Hope its clear , if any doubt please do ping me :)

No comments:

Post a Comment