mirror of https://github.com/jitsi/jitsi-meet
parent
52ee8fd473
commit
7cea557416
@ -0,0 +1,88 @@ |
||||
/* global $ */ |
||||
import SmallVideo from '../videolayout/SmallVideo'; |
||||
|
||||
const logger = require("jitsi-meet-logger").getLogger(__filename); |
||||
|
||||
export default function SharedVideoThumb (url, videoType, VideoLayout) |
||||
{ |
||||
this.id = url; |
||||
|
||||
this.url = url; |
||||
this.setVideoType(videoType); |
||||
this.videoSpanId = "sharedVideoContainer"; |
||||
this.container = this.createContainer(this.videoSpanId); |
||||
this.$container = $(this.container); |
||||
this.container.onclick = this.videoClick.bind(this); |
||||
this.bindHoverHandler(); |
||||
SmallVideo.call(this, VideoLayout); |
||||
this.isVideoMuted = true; |
||||
} |
||||
SharedVideoThumb.prototype = Object.create(SmallVideo.prototype); |
||||
SharedVideoThumb.prototype.constructor = SharedVideoThumb; |
||||
|
||||
/** |
||||
* hide display name |
||||
*/ |
||||
|
||||
SharedVideoThumb.prototype.setDeviceAvailabilityIcons = function () {}; |
||||
|
||||
SharedVideoThumb.prototype.avatarChanged = function () {}; |
||||
|
||||
SharedVideoThumb.prototype.createContainer = function (spanId) { |
||||
var container = document.createElement('span'); |
||||
container.id = spanId; |
||||
container.className = 'videocontainer'; |
||||
|
||||
// add the avatar
|
||||
var avatar = document.createElement('img'); |
||||
avatar.className = 'sharedVideoAvatar'; |
||||
avatar.src = "https://img.youtube.com/vi/" + this.url + "/0.jpg"; |
||||
container.appendChild(avatar); |
||||
|
||||
const displayNameContainer = document.createElement('div'); |
||||
displayNameContainer.className = 'displayNameContainer'; |
||||
container.appendChild(displayNameContainer); |
||||
|
||||
var remotes = document.getElementById('filmstripRemoteVideosContainer'); |
||||
return remotes.appendChild(container); |
||||
}; |
||||
|
||||
/** |
||||
* The thumb click handler. |
||||
*/ |
||||
SharedVideoThumb.prototype.videoClick = function () { |
||||
this.VideoLayout.handleVideoThumbClicked(this.url); |
||||
}; |
||||
|
||||
/** |
||||
* Removes RemoteVideo from the page. |
||||
*/ |
||||
SharedVideoThumb.prototype.remove = function () { |
||||
logger.log("Remove shared video thumb", this.id); |
||||
|
||||
// Make sure that the large video is updated if are removing its
|
||||
// corresponding small video.
|
||||
this.VideoLayout.updateAfterThumbRemoved(this.id); |
||||
|
||||
// Remove whole container
|
||||
if (this.container.parentNode) { |
||||
this.container.parentNode.removeChild(this.container); |
||||
} |
||||
}; |
||||
|
||||
/** |
||||
* Sets the display name for the thumb. |
||||
*/ |
||||
SharedVideoThumb.prototype.setDisplayName = function(displayName) { |
||||
if (!this.container) { |
||||
logger.warn( "Unable to set displayName - " + this.videoSpanId + |
||||
" does not exist"); |
||||
return; |
||||
} |
||||
|
||||
this.updateDisplayName({ |
||||
displayName: displayName || '', |
||||
elementID: `${this.videoSpanId}_name`, |
||||
participantID: this.id |
||||
}); |
||||
}; |
Loading…
Reference in new issue