50 lines
1.4 KiB
TypeScript
50 lines
1.4 KiB
TypeScript
import { Component, Input, OnDestroy, OnInit } from '@angular/core';
|
|
|
|
import { PublisherSpeakingEvent, StreamManager } from 'openvidu-browser';
|
|
|
|
@Component({
|
|
selector: 'ov-audio-wave',
|
|
templateUrl: './audio-wave.component.html',
|
|
styleUrls: ['./audio-wave.component.css']
|
|
})
|
|
export class AudioWaveComponent implements OnInit, OnDestroy {
|
|
isSpeaking: boolean = false;
|
|
audioVolume: number = 0;
|
|
|
|
private _streamManager: StreamManager;
|
|
|
|
@Input()
|
|
set streamManager(streamManager: StreamManager) {
|
|
this._streamManager = streamManager;
|
|
|
|
if(this._streamManager) {
|
|
this._streamManager.on('publisherStartSpeaking', (event: PublisherSpeakingEvent) => {
|
|
this.isSpeaking = true;
|
|
});
|
|
|
|
this._streamManager.on('publisherStopSpeaking', (event: PublisherSpeakingEvent) => {
|
|
this.isSpeaking = false;
|
|
});
|
|
|
|
// streamManager.on('streamAudioVolumeChange', (event: any) => {
|
|
// // The loudest sounds on your system will be at 0dB
|
|
// // and silence in webaudio is -100dB.
|
|
// this.audioVolume = 100 + event.value.newValue;
|
|
// console.log('Publisher audio volume change from ' + event.value.oldValue + ' to' + event.value.newValue);
|
|
// console.log('AUDIO VOLUME', this.audioVolume);
|
|
// });
|
|
}
|
|
|
|
}
|
|
|
|
constructor() {}
|
|
ngOnDestroy(): void {
|
|
if(this._streamManager){
|
|
this._streamManager.off('publisherStartSpeaking');
|
|
this._streamManager.off('publisherStopSpeaking');
|
|
}
|
|
}
|
|
|
|
ngOnInit(): void {}
|
|
}
|