update playback components
This commit is contained in:
parent
d6203e5246
commit
62590fc268
6 changed files with 140 additions and 17 deletions
|
@ -514,8 +514,8 @@
|
|||
}
|
||||
|
||||
console.log('cc: connect');
|
||||
// Reset this so the next query doesn't make it appear like content is playing.
|
||||
self.lastPlayerData = {};
|
||||
// Reset this so that statechange will fire
|
||||
self.lastPlayerData = null;
|
||||
});
|
||||
|
||||
events.on(castPlayer, "playbackstart", function (e, data) {
|
||||
|
@ -551,10 +551,16 @@
|
|||
|
||||
console.log('cc: volumechange');
|
||||
var state = self.getPlayerStateInternal(data);
|
||||
|
||||
events.trigger(self, "volumechange", [state]);
|
||||
});
|
||||
|
||||
events.on(castPlayer, "repeatmodechange", function (e, data) {
|
||||
|
||||
console.log('cc: repeatmodechange');
|
||||
var state = self.getPlayerStateInternal(data);
|
||||
events.trigger(self, "repeatmodechange", [state]);
|
||||
});
|
||||
|
||||
events.on(castPlayer, "playstatechange", function (e, data) {
|
||||
|
||||
console.log('cc: playstatechange');
|
||||
|
@ -611,6 +617,13 @@
|
|||
});
|
||||
};
|
||||
|
||||
self.playPause = function () {
|
||||
castPlayer.sendMessage({
|
||||
options: {},
|
||||
command: 'PlayPause'
|
||||
});
|
||||
};
|
||||
|
||||
self.pause = function () {
|
||||
castPlayer.sendMessage({
|
||||
options: {},
|
||||
|
@ -696,6 +709,12 @@
|
|||
return state.PositionTicks;
|
||||
};
|
||||
|
||||
self.duration = function() {
|
||||
var state = self.lastPlayerData || {};
|
||||
state = state.NowPlayingItem || {};
|
||||
return state.RunTimeTicks;
|
||||
};
|
||||
|
||||
self.paused = function () {
|
||||
var state = self.lastPlayerData || {};
|
||||
state = state.PlayState || {};
|
||||
|
@ -723,6 +742,12 @@
|
|||
}
|
||||
};
|
||||
|
||||
self.getRepeatMode = function () {
|
||||
var state = self.lastPlayerData || {};
|
||||
state = state.PlayState || {};
|
||||
return state.RepeatMode;
|
||||
};
|
||||
|
||||
self.setRepeatMode = function (mode) {
|
||||
castPlayer.sendMessage({
|
||||
options: {
|
||||
|
@ -809,10 +834,22 @@
|
|||
});
|
||||
};
|
||||
|
||||
self.getAudioStreamIndex = function () {
|
||||
var state = self.lastPlayerData || {};
|
||||
state = state.PlayState || {};
|
||||
return state.AudioStreamIndex;
|
||||
};
|
||||
|
||||
self.subtitleTracks = function () {
|
||||
return [];
|
||||
};
|
||||
|
||||
self.getSubtitleStreamIndex = function () {
|
||||
var state = self.lastPlayerData || {};
|
||||
state = state.PlayState || {};
|
||||
return state.SubtitleStreamIndex;
|
||||
};
|
||||
|
||||
self.setSubtitleStreamIndex = function (index) {
|
||||
castPlayer.sendMessage({
|
||||
options: {
|
||||
|
@ -822,6 +859,31 @@
|
|||
});
|
||||
};
|
||||
|
||||
self.getMaxStreamingBitrate = function () {
|
||||
var state = self.lastPlayerData || {};
|
||||
state = state.PlayState || {};
|
||||
return state.MaxStreamingBitrate;
|
||||
};
|
||||
|
||||
self.setMaxStreamingBitrate = function (bitrate) {
|
||||
castPlayer.sendMessage({
|
||||
options: {
|
||||
bitrate: bitrate
|
||||
},
|
||||
command: 'SetMaxStreamingBitrate'
|
||||
});
|
||||
};
|
||||
|
||||
self.isFullscreen = function () {
|
||||
var state = self.lastPlayerData || {};
|
||||
state = state.PlayState || {};
|
||||
return state.IsFullscreen;
|
||||
};
|
||||
|
||||
self.toggleFullscreen = function () {
|
||||
// not supported
|
||||
};
|
||||
|
||||
self.nextTrack = function () {
|
||||
castPlayer.sendMessage({
|
||||
options: {},
|
||||
|
@ -892,18 +954,27 @@
|
|||
|
||||
self.getPlayerState = function () {
|
||||
|
||||
var result = self.getPlayerStateInternal();
|
||||
return Promise.resolve(result);
|
||||
return Promise.resolve(self.getPlayerStateInternal());
|
||||
};
|
||||
|
||||
self.lastPlayerData = {};
|
||||
|
||||
self.getPlayerStateInternal = function (data) {
|
||||
|
||||
var triggerStateChange = false;
|
||||
if (data && !self.lastPlayerData) {
|
||||
triggerStateChange = true;
|
||||
}
|
||||
|
||||
data = data || self.lastPlayerData;
|
||||
self.lastPlayerData = data;
|
||||
|
||||
console.log(JSON.stringify(data));
|
||||
//console.log(JSON.stringify(data));
|
||||
|
||||
if (triggerStateChange) {
|
||||
events.trigger(self, "statechange", [data]);
|
||||
}
|
||||
|
||||
return data;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue