fakeVolumeChangeEvent_() {
    // Volume attributes are tied to the system volume.
    const manager = cast.receiver.CastReceiverManager.getInstance();
    const systemVolume = manager.getSystemVolume();
    goog.asserts.assert(systemVolume, 'System volume should not be null!');

    if (systemVolume) {
      // Send an update message with just the latest volume level and muted
      // state.
      this.sendMessage_({
        'type': 'update',
        'update': {
          'video': {
            'volume': systemVolume.level,
            'muted': systemVolume.muted,
          },
        },
      }, this.shakaBus_);
    }

    // Send another message with a 'volumechange' event to update the sender's
    // UI.
    this.sendMessage_({
      'type': 'event',
      'targetName': 'video',
      'event': {'type': 'volumechange'},
    }, this.shakaBus_);
  }
Dispatch a fake 'volumechange' event to mimic the video element, since
volume changes are routed to the system volume on the receiver.
@private