mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update playback components
This commit is contained in:
parent
d6203e5246
commit
62590fc268
6 changed files with 140 additions and 17 deletions
|
@ -16,12 +16,12 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {},
|
"devDependencies": {},
|
||||||
"ignore": [],
|
"ignore": [],
|
||||||
"version": "1.1.110",
|
"version": "1.1.111",
|
||||||
"_release": "1.1.110",
|
"_release": "1.1.111",
|
||||||
"_resolution": {
|
"_resolution": {
|
||||||
"type": "version",
|
"type": "version",
|
||||||
"tag": "1.1.110",
|
"tag": "1.1.111",
|
||||||
"commit": "ab24c293c88728733789d3fcdf127d18294a6148"
|
"commit": "6a58b3a503f28eda5198d662643edaedd921abbd"
|
||||||
},
|
},
|
||||||
"_source": "https://github.com/MediaBrowser/Emby.ApiClient.Javascript.git",
|
"_source": "https://github.com/MediaBrowser/Emby.ApiClient.Javascript.git",
|
||||||
"_target": "^1.1.51",
|
"_target": "^1.1.51",
|
||||||
|
|
|
@ -589,7 +589,8 @@
|
||||||
var url = self.getUrl("socket");
|
var url = self.getUrl("socket");
|
||||||
|
|
||||||
url = replaceAll(url, 'emby/socket', 'embywebsocket');
|
url = replaceAll(url, 'emby/socket', 'embywebsocket');
|
||||||
url = replaceAll(url, 'http', 'ws');
|
url = replaceAll(url, 'https:', 'wss:');
|
||||||
|
url = replaceAll(url, 'http:', 'ws:');
|
||||||
|
|
||||||
url += "?api_key=" + accessToken;
|
url += "?api_key=" + accessToken;
|
||||||
url += "&deviceId=" + deviceId;
|
url += "&deviceId=" + deviceId;
|
||||||
|
|
|
@ -14,12 +14,12 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {},
|
"devDependencies": {},
|
||||||
"ignore": [],
|
"ignore": [],
|
||||||
"version": "1.4.445",
|
"version": "1.4.446",
|
||||||
"_release": "1.4.445",
|
"_release": "1.4.446",
|
||||||
"_resolution": {
|
"_resolution": {
|
||||||
"type": "version",
|
"type": "version",
|
||||||
"tag": "1.4.445",
|
"tag": "1.4.446",
|
||||||
"commit": "b071fe73b76ee49a7b99f2688d925318680298a8"
|
"commit": "6b6f1772ecf75132f04e1ef08bcd37a5bcb040d1"
|
||||||
},
|
},
|
||||||
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
|
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
|
||||||
"_target": "^1.2.1",
|
"_target": "^1.2.1",
|
||||||
|
|
|
@ -514,8 +514,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('cc: connect');
|
console.log('cc: connect');
|
||||||
// Reset this so the next query doesn't make it appear like content is playing.
|
// Reset this so that statechange will fire
|
||||||
self.lastPlayerData = {};
|
self.lastPlayerData = null;
|
||||||
});
|
});
|
||||||
|
|
||||||
events.on(castPlayer, "playbackstart", function (e, data) {
|
events.on(castPlayer, "playbackstart", function (e, data) {
|
||||||
|
@ -551,10 +551,16 @@
|
||||||
|
|
||||||
console.log('cc: volumechange');
|
console.log('cc: volumechange');
|
||||||
var state = self.getPlayerStateInternal(data);
|
var state = self.getPlayerStateInternal(data);
|
||||||
|
|
||||||
events.trigger(self, "volumechange", [state]);
|
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) {
|
events.on(castPlayer, "playstatechange", function (e, data) {
|
||||||
|
|
||||||
console.log('cc: playstatechange');
|
console.log('cc: playstatechange');
|
||||||
|
@ -611,6 +617,13 @@
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
self.playPause = function () {
|
||||||
|
castPlayer.sendMessage({
|
||||||
|
options: {},
|
||||||
|
command: 'PlayPause'
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
self.pause = function () {
|
self.pause = function () {
|
||||||
castPlayer.sendMessage({
|
castPlayer.sendMessage({
|
||||||
options: {},
|
options: {},
|
||||||
|
@ -696,6 +709,12 @@
|
||||||
return state.PositionTicks;
|
return state.PositionTicks;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
self.duration = function() {
|
||||||
|
var state = self.lastPlayerData || {};
|
||||||
|
state = state.NowPlayingItem || {};
|
||||||
|
return state.RunTimeTicks;
|
||||||
|
};
|
||||||
|
|
||||||
self.paused = function () {
|
self.paused = function () {
|
||||||
var state = self.lastPlayerData || {};
|
var state = self.lastPlayerData || {};
|
||||||
state = state.PlayState || {};
|
state = state.PlayState || {};
|
||||||
|
@ -723,6 +742,12 @@
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
self.getRepeatMode = function () {
|
||||||
|
var state = self.lastPlayerData || {};
|
||||||
|
state = state.PlayState || {};
|
||||||
|
return state.RepeatMode;
|
||||||
|
};
|
||||||
|
|
||||||
self.setRepeatMode = function (mode) {
|
self.setRepeatMode = function (mode) {
|
||||||
castPlayer.sendMessage({
|
castPlayer.sendMessage({
|
||||||
options: {
|
options: {
|
||||||
|
@ -809,10 +834,22 @@
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
self.getAudioStreamIndex = function () {
|
||||||
|
var state = self.lastPlayerData || {};
|
||||||
|
state = state.PlayState || {};
|
||||||
|
return state.AudioStreamIndex;
|
||||||
|
};
|
||||||
|
|
||||||
self.subtitleTracks = function () {
|
self.subtitleTracks = function () {
|
||||||
return [];
|
return [];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
self.getSubtitleStreamIndex = function () {
|
||||||
|
var state = self.lastPlayerData || {};
|
||||||
|
state = state.PlayState || {};
|
||||||
|
return state.SubtitleStreamIndex;
|
||||||
|
};
|
||||||
|
|
||||||
self.setSubtitleStreamIndex = function (index) {
|
self.setSubtitleStreamIndex = function (index) {
|
||||||
castPlayer.sendMessage({
|
castPlayer.sendMessage({
|
||||||
options: {
|
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 () {
|
self.nextTrack = function () {
|
||||||
castPlayer.sendMessage({
|
castPlayer.sendMessage({
|
||||||
options: {},
|
options: {},
|
||||||
|
@ -892,18 +954,27 @@
|
||||||
|
|
||||||
self.getPlayerState = function () {
|
self.getPlayerState = function () {
|
||||||
|
|
||||||
var result = self.getPlayerStateInternal();
|
return Promise.resolve(self.getPlayerStateInternal());
|
||||||
return Promise.resolve(result);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
self.lastPlayerData = {};
|
self.lastPlayerData = {};
|
||||||
|
|
||||||
self.getPlayerStateInternal = function (data) {
|
self.getPlayerStateInternal = function (data) {
|
||||||
|
|
||||||
|
var triggerStateChange = false;
|
||||||
|
if (data && !self.lastPlayerData) {
|
||||||
|
triggerStateChange = true;
|
||||||
|
}
|
||||||
|
|
||||||
data = data || self.lastPlayerData;
|
data = data || self.lastPlayerData;
|
||||||
self.lastPlayerData = data;
|
self.lastPlayerData = data;
|
||||||
|
|
||||||
console.log(JSON.stringify(data));
|
//console.log(JSON.stringify(data));
|
||||||
|
|
||||||
|
if (triggerStateChange) {
|
||||||
|
events.trigger(self, "statechange", [data]);
|
||||||
|
}
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -813,10 +813,14 @@ define(['events', 'datetime', 'appSettings', 'pluginManager', 'userSettings', 'g
|
||||||
|
|
||||||
if (player) {
|
if (player) {
|
||||||
|
|
||||||
|
if (player.playPause) {
|
||||||
|
return player.playPause();
|
||||||
|
}
|
||||||
|
|
||||||
if (player.paused()) {
|
if (player.paused()) {
|
||||||
self.unpause();
|
return self.unpause(player);
|
||||||
} else {
|
} else {
|
||||||
self.pause();
|
return self.pause(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1236,6 +1240,7 @@ define(['events', 'datetime', 'appSettings', 'pluginManager', 'userSettings', 'g
|
||||||
state.PlayState.IsMuted = player.isMuted();
|
state.PlayState.IsMuted = player.isMuted();
|
||||||
state.PlayState.IsPaused = player.paused();
|
state.PlayState.IsPaused = player.paused();
|
||||||
state.PlayState.RepeatMode = self.getRepeatMode(player);
|
state.PlayState.RepeatMode = self.getRepeatMode(player);
|
||||||
|
state.PlayState.MaxStreamingBitrate = self.getMaxStreamingBitrate(player);
|
||||||
|
|
||||||
if (streamInfo) {
|
if (streamInfo) {
|
||||||
state.PlayState.PositionTicks = getCurrentTicks(player);
|
state.PlayState.PositionTicks = getCurrentTicks(player);
|
||||||
|
|
|
@ -107,6 +107,24 @@
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
self.currentTime = function (val) {
|
||||||
|
|
||||||
|
if (val != null) {
|
||||||
|
return self.seek(val);
|
||||||
|
}
|
||||||
|
|
||||||
|
var state = self.lastPlayerData || {};
|
||||||
|
state = state.PlayState || {};
|
||||||
|
return state.PositionTicks;
|
||||||
|
};
|
||||||
|
|
||||||
|
self.duration = function () {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
self.paused = function () {
|
||||||
|
};
|
||||||
|
|
||||||
self.pause = function () {
|
self.pause = function () {
|
||||||
sendPlayStateCommand('Pause');
|
sendPlayStateCommand('Pause');
|
||||||
};
|
};
|
||||||
|
@ -150,6 +168,10 @@
|
||||||
return [];
|
return [];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
self.getAudioStreamIndex = function() {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
self.setAudioStreamIndex = function (index) {
|
self.setAudioStreamIndex = function (index) {
|
||||||
sendCommandByName('SetAudioStreamIndex', {
|
sendCommandByName('SetAudioStreamIndex', {
|
||||||
Index: index
|
Index: index
|
||||||
|
@ -160,12 +182,36 @@
|
||||||
return [];
|
return [];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
self.getSubtitleStreamIndex = function () {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
self.setSubtitleStreamIndex = function (index) {
|
self.setSubtitleStreamIndex = function (index) {
|
||||||
sendCommandByName('SetSubtitleStreamIndex', {
|
sendCommandByName('SetSubtitleStreamIndex', {
|
||||||
Index: index
|
Index: index
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
self.getMaxStreamingBitrate = function () {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
self.setMaxStreamingBitrate = function (bitrate) {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
self.isFullscreen = function () {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
self.toggleFullscreen = function () {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
self.getRepeatMode = function () {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
self.setRepeatMode = function (mode) {
|
self.setRepeatMode = function (mode) {
|
||||||
|
|
||||||
sendCommandByName('SetRepeatMode', {
|
sendCommandByName('SetRepeatMode', {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue