Jak na webkameře nevypadat jako zombie – 2. díl

21. 10. 2013

Sdílet

Autor: © JcJg Photography - Fotolia.com
Všichni známe „webkamerové zombie“ – lidi, kteří na ulici mohou vypadat vcelku normálně, ale kteří, sedě před webkamerou, vypadají děsně.

Předchozí díl

Zkontrolujte si své prostředí

Obchodní hovory jsme vedli ležíc v posteli nebo na gauči, a dokonce i při uklízení koupelny, ale nikdy – podotýkáme nikdy – bychom nezapínali webkameru jinde než v domácí kanceláři – a dokonce i to po důkladném úklidu.

webkamera

„Říkám lidem, aby se ujistili, že jejich prostor vypadá profesionálně, ale osobně a vybaveně. Vždy dávám dva extrémní příklady. Prvním je místnost, která je příliš osobní. Cítím se vždy zvláštně, když vidím někoho, kdo je evidentně ve své ložnici, nebo můžete vidět jeho osobní prvky, jako je špinavé oblečení nebo nádobí. Na druhou stranu existují lidé, kteří se snaží, aby vše vypadalo jako ze škatulky, a nakonec máte strach, jestli je někdo neunesl, když je tak vidíte proti té bílé zdi,“ říká Dan Roche, viceprezident pro marketing společnosti TalkPoint. Najděte si zlatou střední cestu, doporučuje Roche – osobní, ale profesionální prostor s knihovnou nebo jednoduchou stěnou v pozadí.

Jestliže vaše prostředí není připraveno na kameru, můžete nastavit umělé, „jevištní“ pozadí , například ze závěsu nebo prostěradla. Většina expertů se ale shodne na tom, že takové pozadí není ideální, pokud zrovna nenatáčíte veřejné video a nechcete použít oponu jako nosič pro reklamu na svou společnost. Jestliže provádíte osobní videohovor, měli byste se k umělému pozadí uchýlit pouze v případě, že vaše prostředí vypadá zcela neprofesionálně. Lidé na druhé straně „drátu“ totiž uvidí, že sedíte před prostěradlem nebo závěsem, a budou přemýšlet, co se snažíte skrýt.

Světla, kamera, akce!

Možná máte ten nejlepší outfit, vaše vlasy a makeup mohou být perfektní a vaše domácí kancelář může vypadat bezchybně – ale na ničem z toho nebude záležet, pokud osoba, s níž hovoříte, nic z toho neuvidí.

webkamera pcworld

Spoléhání se na přirozené světlo může být na kameře poměrně ošidné, protože přirozené svělo má tendenci zesvětlovat pozadí a naopak popředí – tedy místo, kde sedíte – zesvětlovat. Řešením je používat lampy, které vytváří světlo, jež vypadá přirozeně, i když přirozené není. Měli byste se vyhnout horizontálním okenním žaluziím, protože to na vašem těle nebo pozadí vytváří proužkované stíny.

Namísto spoléhání na sílu slunce se raději řiďte radami Chrise LaVigneho ze společnosti Wistia. Ten ve svém videonávodu nazvaném „Světla: máte-li je, používejte je“ doporučuje nastavení dvou světel (lamp), po jedné na každé straně počítače. Tato světla by měla být přímo nad linií vašich očí a asi metr od sebe.

Nemáte v kanceláři lampy? LaVigne má řešení: počítačový monitor nastavený za a mírně nad počítačem nebo webkamerou, které používáte pro video. „Nastavte nejvyšší jas a přibližte dokument ve Wordu nebo cokoliv jiného, co je bílé,“ říká. „Budete překvapeni, jak moc to může pomoci.“

Kamera by měla být také mírně pozvednuta. LaVigne doporučuje, abyste ji umístili přímo nad vaši oční linku, díky čemuž na vás bude směřovat shora, i když opravdu mírně. Díky tomu budete na kameře vypadat přirozeněji, než byste vypadali, kdyby kamera byla pod vámi a směřovala na vaši bradu.

webkamera pcworld

linux_sprava_tip

Teď jste připraveni na akci! Jakmile přijmete videohovor, mluvte přirozeně a dívejte se do kamery, jako by to byla osoba, s níž hovoříte. A pamatujte: zvuk může být ztlumen, ale kamera nikdy neodpočívá. Přestože lidé, s nimiž hovoříte, nemusí slyšet, jak něco šeptáte kolegovi nebo dítěti v pozadí, vidí vše, co se děje. Chovejte se co nejlépe, nebo všechno úsilí, které jste věnovali přípravě, přijde vniveč.

Zdroj: IDG News Service

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }