thibauts/node-castv2-client

How to use the getVolume function

simonravel opened this issue · 1 comments

I tried to use this function:

const GoogleCastClient = require("castv2-client").Client;
const DefaultMediaReceiver = require("castv2-client").DefaultMediaReceiver;
const client = new GoogleCastClient();
var 'some_ip' = '192.168.0.x' //just an example

client.connect(,() => {
    client.launch(DefaultMediaReceiver, (err, player) => {
            const media = {
              contentId: url,
              contentType: "audio/mp3",
              streamType: "BUFFERED"
            };

          player.load(media, { autoplay: true }, (err, status) => {
              client.close();
              console.log(`Pushed to device at ${some_ip}`);
            });
      });

   client.getVolume('volume', function(vol){
          console.log(vol)
   })
    
   client.on("error", err => {
        reject(`Google Cast Client error:\n${err}`);
        client.close();
      });

});

Which results in: UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'getVolume' of null

Hi @simonravel,

I think the error is here:

client.getVolume('volume', function(vol){ 

you don't have to pass any parameters (except callback function), the correct method's call is:

this.client.getVolume(function (err, vol) { ... })

also pay attention to first callback parameters, is an error object (null if no error is released) not the current volume infos.

Here an example:

this.client.getVolume(function (err, vol) {
    if (err) {
        console.error(err) // handle error
        return
    }
    console.log(vol) // {"controlType":"attenuation","level":0.7999999523162842,"muted":false,"stepInterval":0.05000000074505806}
})