Default 'streamDestroyed' behaviour. 'preventDefault()' method exposed

pull/3/merge
pabloFuente 2017-04-17 16:23:30 +02:00
parent a68652cdd4
commit 153a19b626
3 changed files with 24 additions and 4 deletions

View File

@ -282,6 +282,10 @@ export class Session {
let streams = participant.getStreams();
for ( let key in streams ) {
this.ee.emitEvent( 'stream-removed', [{
stream: streams[key],
preventDefault: () => {this.ee.removeEvent('stream-removed-default');}
}] );
this.ee.emitEvent( 'stream-removed-default', [{
stream: streams[key]
}] );

View File

@ -70,6 +70,7 @@ export class Stream {
private dataChannelOpened = false;
private videoSrc: string;
private parentId: string;
public isReady: boolean = false;
constructor(private openVidu: OpenVidu, private local: boolean, private room: Session, options: StreamOptions) {
@ -101,7 +102,7 @@ export class Stream {
}]);
}
emitStreamReadyEvent(){
emitStreamReadyEvent() {
this.ee.emitEvent('stream-ready'), [{}];
}
@ -109,9 +110,17 @@ export class Stream {
return this.videoSrc;
}
removeVideo(parentElement) {
removeVideo(parentElement?) {
if (parentElement) {
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") {
this.parentId = parentElement;
let parentElementDom = document.getElementById(parentElement);
if (parentElementDom) {
this.video = parentElementDom.appendChild(this.video);
}
} else {
this.parentId = parentElement.id;
this.video = parentElement.appendChild(this.video);
}

View File

@ -6,7 +6,11 @@ import { PublisherTokBox } from './PublisherTokBox';
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) {
// Early configuration to deactivate automatic subscription to streams