mirror of https://github.com/OpenVidu/openvidu.git
Default 'streamDestroyed' behaviour. 'preventDefault()' method exposed
parent
a68652cdd4
commit
153a19b626
|
@ -282,6 +282,10 @@ export class Session {
|
||||||
let streams = participant.getStreams();
|
let streams = participant.getStreams();
|
||||||
for ( let key in streams ) {
|
for ( let key in streams ) {
|
||||||
this.ee.emitEvent( 'stream-removed', [{
|
this.ee.emitEvent( 'stream-removed', [{
|
||||||
|
stream: streams[key],
|
||||||
|
preventDefault: () => {this.ee.removeEvent('stream-removed-default');}
|
||||||
|
}] );
|
||||||
|
this.ee.emitEvent( 'stream-removed-default', [{
|
||||||
stream: streams[key]
|
stream: streams[key]
|
||||||
}] );
|
}] );
|
||||||
|
|
||||||
|
|
|
@ -70,6 +70,7 @@ export class Stream {
|
||||||
private dataChannelOpened = false;
|
private dataChannelOpened = false;
|
||||||
|
|
||||||
private videoSrc: string;
|
private videoSrc: string;
|
||||||
|
private parentId: string;
|
||||||
public isReady: boolean = false;
|
public isReady: boolean = false;
|
||||||
|
|
||||||
constructor(private openVidu: OpenVidu, private local: boolean, private room: Session, options: StreamOptions) {
|
constructor(private openVidu: OpenVidu, private local: boolean, private room: Session, options: StreamOptions) {
|
||||||
|
@ -109,9 +110,17 @@ export class Stream {
|
||||||
return this.videoSrc;
|
return this.videoSrc;
|
||||||
}
|
}
|
||||||
|
|
||||||
removeVideo(parentElement) {
|
removeVideo(parentElement?) {
|
||||||
|
if (parentElement) {
|
||||||
document.getElementById(parentElement)!.removeChild(this.video);
|
document.getElementById(parentElement)!.removeChild(this.video);
|
||||||
|
} else {
|
||||||
|
if (document.getElementById(this.parentId)) {
|
||||||
|
document.getElementById(this.parentId)!.removeChild(this.video);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -229,11 +238,14 @@ export class Stream {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof parentElement === "string") {
|
if (typeof parentElement === "string") {
|
||||||
|
this.parentId = parentElement;
|
||||||
|
|
||||||
let parentElementDom = document.getElementById(parentElement);
|
let parentElementDom = document.getElementById(parentElement);
|
||||||
if (parentElementDom) {
|
if (parentElementDom) {
|
||||||
this.video = parentElementDom.appendChild(this.video);
|
this.video = parentElementDom.appendChild(this.video);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
this.parentId = parentElement.id;
|
||||||
this.video = parentElement.appendChild(this.video);
|
this.video = parentElement.appendChild(this.video);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,11 @@ import { PublisherTokBox } from './PublisherTokBox';
|
||||||
|
|
||||||
export class SessionTokBox {
|
export class SessionTokBox {
|
||||||
|
|
||||||
constructor(private session: Session, private openVidu: OpenViduTokBox) { }
|
constructor(private session: Session, private openVidu: OpenViduTokBox) {
|
||||||
|
this.session.addEventListener('stream-removed-default', event => {
|
||||||
|
event.stream.removeVideo();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
connect(token, callback) {
|
connect(token, callback) {
|
||||||
// Early configuration to deactivate automatic subscription to streams
|
// Early configuration to deactivate automatic subscription to streams
|
||||||
|
|
Loading…
Reference in New Issue