Add transition on play/loading player
This commit is contained in:
parent
15ca2e871a
commit
8fa5653ad8
|
@ -263,7 +263,7 @@ const peertubePlugin = function (options: PeertubePluginOptions) {
|
||||||
const isPaused = player.paused()
|
const isPaused = player.paused()
|
||||||
|
|
||||||
// Hide bigPlayButton
|
// Hide bigPlayButton
|
||||||
if (!isPaused && this.player_.options_.bigPlayButton) {
|
if (!isPaused) {
|
||||||
this.player_.bigPlayButton.hide()
|
this.player_.bigPlayButton.hide()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,25 @@ $control-bar-height: 34px;
|
||||||
background-color: transparent !important;
|
background-color: transparent !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.vjs-has-started .vjs-big-play-button {
|
||||||
|
display: block;
|
||||||
|
visibility: hidden;
|
||||||
|
opacity: 0;
|
||||||
|
transition: visibility 0.5s, opacity 0.5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vjs-loading-spinner {
|
||||||
|
display: block;
|
||||||
|
visibility: hidden;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.vjs-waiting .vjs-loading-spinner {
|
||||||
|
visibility: visible;
|
||||||
|
opacity: 1;
|
||||||
|
transition: visibility 0.5s, opacity 0.5s;
|
||||||
|
}
|
||||||
|
|
||||||
.vjs-control-bar,
|
.vjs-control-bar,
|
||||||
.vjs-big-play-button,
|
.vjs-big-play-button,
|
||||||
.vjs-menu-button .vjs-menu-content {
|
.vjs-menu-button .vjs-menu-content {
|
||||||
|
@ -308,6 +327,10 @@ $control-bar-height: 34px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 550px) {
|
@media screen and (max-width: 550px) {
|
||||||
|
.vjs-big-play-button {
|
||||||
|
font-size: 6.5em;
|
||||||
|
}
|
||||||
|
|
||||||
.vjs-webtorrent {
|
.vjs-webtorrent {
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
|
|
||||||
|
@ -318,6 +341,14 @@ $control-bar-height: 34px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 300px) {
|
@media screen and (max-width: 300px) {
|
||||||
|
.vjs-dock-text {
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vjs-big-play-button {
|
||||||
|
font-size: 5em;
|
||||||
|
}
|
||||||
|
|
||||||
.vjs-volume-control {
|
.vjs-volume-control {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,12 @@ class VideosPreviewCache {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
getPreviewPath (key: string) {
|
async getPreviewPath (key: string) {
|
||||||
|
const video = await VideoModel.loadByUUID(key)
|
||||||
|
if (!video) return undefined
|
||||||
|
|
||||||
|
if (video.isOwned()) return join(CONFIG.STORAGE.PREVIEWS_DIR, video.getPreviewName())
|
||||||
|
|
||||||
return new Promise<string>((res, rej) => {
|
return new Promise<string>((res, rej) => {
|
||||||
this.lru.get(key, (err, value) => {
|
this.lru.get(key, (err, value) => {
|
||||||
err ? rej(err) : res(value)
|
err ? rej(err) : res(value)
|
||||||
|
@ -42,10 +47,10 @@ class VideosPreviewCache {
|
||||||
}
|
}
|
||||||
|
|
||||||
private async loadPreviews (key: string) {
|
private async loadPreviews (key: string) {
|
||||||
const video = await VideoModel.loadByUUIDAndPopulateAccountAndServerAndTags(key)
|
const video = await VideoModel.loadByUUID(key)
|
||||||
if (!video) return undefined
|
if (!video) return undefined
|
||||||
|
|
||||||
if (video.isOwned()) return join(CONFIG.STORAGE.PREVIEWS_DIR, video.getPreviewName())
|
if (video.isOwned()) throw new Error('Cannot load preview of owned video.')
|
||||||
|
|
||||||
const res = await this.saveRemotePreviewAndReturnPath(video)
|
const res = await this.saveRemotePreviewAndReturnPath(video)
|
||||||
|
|
||||||
|
|
|
@ -528,6 +528,18 @@ export class VideoModel extends Model<VideoModel> {
|
||||||
.findById(id, options)
|
.findById(id, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static loadByUUID (uuid: string) {
|
||||||
|
const options = {
|
||||||
|
where: {
|
||||||
|
uuid
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return VideoModel
|
||||||
|
.scope([ ScopeNames.WITH_FILES ])
|
||||||
|
.findOne(options)
|
||||||
|
}
|
||||||
|
|
||||||
static loadByUUIDAndPopulateAccountAndServerAndTags (uuid: string) {
|
static loadByUUIDAndPopulateAccountAndServerAndTags (uuid: string) {
|
||||||
const options = {
|
const options = {
|
||||||
order: [ [ 'Tags', 'name', 'ASC' ] ],
|
order: [ [ 'Tags', 'name', 'ASC' ] ],
|
||||||
|
|
Loading…
Reference in New Issue