Video: Smartphone Droid od Motoroly – Android 2.0 v akci

5. 11. 2009

Sdílet

Nový smartphone s Androidem od Motoroly a Verizonu, nabíječka využívající palivové články od Toshiby a roboti jako rychlí a užiteční domácí pomocníci. Tohle a mnohem více v dnešním Světě technických pokroků.

Svět technických pokroků

 

Nejprve se podíváme na nový smartphone od Motoroly s označením Droid, který jako první nabídne nejnovější Android ve verzi 2.0 a jde o první a jediný telefon s tímto OS v síti Verizon. Telefon disponuje 3,7" obrazovkou s rozlišením 480x854 pixelů, navíc je vybaven výsuvnou klávesnicí s QWERTY rozvržením i virtuální dotykovou klávesnicí. K dispozici jsou také 3 přizpůsobitelné panely. Všechny tři panely si mohu plně přizpůsobit svým potřebám. Na levou stranu jsem si úplně nahoru umístil Facebook widget a vespod mám k dispozici čtyři často používané aplikace, z nichž se například dozvím aktuální skóre sportovních zápasů, které daný widget zobrazuje. Na pravé straně mám umístěny widgety s počasím, hudbou a několik dalších ikonek, které mi umožní rychlý přístup na YouTube či k oblíbené hudbě. U telefonu se setkáte s takzvaným jednotným adresářem a telefonním seznamem, které vytahují informace ze služeb Gmail, Exchange a Facebook. A nechybí ani hlasově ovládané vyhledávání na Googlu. Telefon disponuje 5 Mpx fotoaparátem s Dual LED bleskem a umožňuje natáčet videa rychlostí 24 snímků za sekundu. Na trhu se ocitne až někdy po 6. listopadu a bude dostupný výhradně v síti Verizon v přepočtu za 4 000 Kč po odečtení 2 000 Kč za úvazek při podpisu dvouleté smlouvy.

Toshiba představila nabíječku s palivovým článkem, která nabije vaše zařízení zkrátka a jednoduše kdekoliv. Jde o nabíječku s označením Dynario. V Japonsku se nedávno dostalo do prodeje omezené množství čítající 3 000 kusů, které nabíjejí bez nutnosti připojení do elektrické sítě. Velikostí je nabíječka srovnatelná s konzolí PSP, kterou s ní lze nabít. Podporovány jsou také iPody, mobilní telefony, přehrávače a další, ne však všechna, zařízení umožňující nabíjení přes USB. Uvnitř palivového článku se skrývá metanol, který se přímo mění v elektrickou energii a nabíjí tak vnitřní baterii nebo zásobuje energií dané zařízení. Metanol se dodává v malých lahvičkách, z nichž jedna vystačí na 3 a půl doplnění. Jedna náplň zabezpečí dvě nabití mobilního telefonu. Nabíječka stojí 29 800 jenů, což je v přepočtu asi 6 500 Kč a za balení pěti lahviček dáte 3 150 jenů, tedy 700 Kč. Prodávat se bude pouze v Japonsku, i když by si své místo na trhu našla i v jiných zemích.

Apple představil novou bezdrátovou myš s dotykovým ovládáním, které se svým stylem podobá multidotykovým trackpadům. Myš pojmenovaná Magic Mouse bude dodávána s novou řadou počítačů iMac. Vše provádíte pouhým dotykem nebo poklepáním na laserem snímaný povrch myši. Klouzavým pohybem dvou prstů doleva se v Safari vrátíte zpět a v programu iPhoto tak můžete pohodlně procházet fotografie. Samostatně se bude myš prodávat v přepočtu za 1 400 Kč.

Co se herního průmyslu týče, zisky Nintenda klesly kvůli zhoršené prodejnosti Wii konzolí na polovinu. Společnost za období od dubna do září prodala 5,75 milionů Wii konzolí, což je o 43 procent méně, než prodala ve stejném období minulý rok. Razantní pokles je připisován nedostatku velkých herních trháků, které jdou nejvíce na odbyt a přitahují i nové uživatele. Majitelé konzolí PSP 3 mohou nově přenášet filmy i seriály z Netflixu přímo do svých herních konzolí. Od listopadu mohou tuto službu v USA využít všichni zákazníci - a to bez dalších poplatků. Neregistrovaní uživatelé se k obsahu samozřejmě dostanou až po vytvoření účtu. Konzole Playstation ale zdaleka není jedinou, která to umožňuje, již od minulého roku je obsah Netflixu přístupný pro konzoli Xbox 360.

Možná, že tento robot od japonských studentů pro své tvůrce získá kredity na univerzitě, pověsti o líných vysokoškolských studentech ale nenapraví. Je totiž navržen tak, aby skládal oblečení. Robot nazvaný Foldy je díky videokameře a 2D čárovému kódu monitorován počítačem, který mu dává požadované instrukce, a skládá prádlo přesně tak, jak chcete. Stačí zde položit nějaké oblečení, kamera zachytí jeho obrys a v systému se dané oblečení vytvoří ve virtuální podobě, pak už jen nastavíte způsob, jakým má robot oblečení poskládat.

Na veletrhu Digital Content Expo v Tokiu toho bylo ale mnohem více, k vidění byl například prsten spojující reálný a virtuální svět do jednoho. S takovým prstenem se můžete dotýkat virtuálního stvoření na obrazovce. Uživatele snímá kamera a dvě Wii dálková ovládání, fungující jako infračervená čidla, snímají pozici prstu a v souladu s ní ovládají stvoření na obrazovce. Jaké z toho plynou výhody a možnosti? Postavy v běžných hrách se pohybují dle předem nastavených parametrů, naše stvoření však reaguje na reálné podněty v reálném čase. Malý motorek na prstenu dokonce umožňuje vnímat dotek stvoření i ve skutečném světě.

Panasonic vyvíjí několik nových robotů se snahou učinit z robotiky nové obchodní odvětví. S jedním z těchto robotů už nebudete nikdy muset umývat nádobí. Čtyři robotické prsty uchopí nádobí dost pevně na to, aby jim nespadlo, avšak ne tolik, aby ho zničily. A ovládají i kuchyňské náčiní. Nad hlavou umístěná kamera dohlíží na celý proces vylévání obsahu sklenic do dřezu a jejich bezpracné skládání do myčky na nádobí. Tito roboti využitelní v domácnosti jsou jedním z hlavních odvětví, kterým se chce firma věnovat. Do roku 2015 by jí měli vydělat 100 miliard jenů, tedy asi 22 miliard Kč. A zaměří se i na oblast průmyslu a zdravotnictví, kde tento robotí nosič může pomoci pracovníkům při tahání vozíků a jiných těžkých zařízení. Někteří roboti by se mohli dostat do fáze komercializace již příští rok, ale jiným, jako této robotické posteli, bude cesta na trh trvat déle.

'; 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'; } }
OSZAR »