Showing posts with label player. Show all posts
Showing posts with label player. Show all posts

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 :)