Здравствуйте.
Code:
function init_page() {
Flashphoner.init({});
localAudio = document.getElementById("localAudio");
remoteAudio = document.getElementById("remoteAudio");
connect();
}
Здесь вы задали remoteAudio - это Div - элемент, в который будет примонтирован <video> элемент. В этот примонтированный элемент будут приходить аудио данные и этот элемент будет их играть.
Code:
var outCall = session.createCall({
callee: callee,
remoteVideoDisplay: remoteAudio,
localVideoDisplay: localAudio,
constraints: constraints,
stripCodecs: "SILK"
});
Здесь вы инициировали звонок и указали, что для этого звонка аудио данные должны приходить в <video> элемент, который будет подмонтирован в указанный Div - remoteAudio. После того, как вызываемый абонент ответит, звонок перейдет в состояние TALK, аудио будет приходить и играть в указанном элементе.
Code:
var outCall = session.createCall({
callee: callee,
remoteVideoDisplay: remoteAudio,
localVideoDisplay: localAudio,
constraints: constraints,
stripCodecs: "SILK"
});
Таким образом, на этом уровне работы с кодом вы не получаете напрямую аудио и видео данные, а лишь указываете куда хотели бы их получить.
Остальное делает Web SDK - библиотека, которая инициализируется в самом начале через Flashphoner.init({});
Если хотите изучить код под капотом библиотеки, он открыт.
Ссылка на github:
https://github.com/flashphoner/flashphoner_client/tree/wcs_api-2.0
Документация:
https://docs.flashphoner.com/display/WEBSDK2RU