HTML5 Sensitivo: Seu browser no plano astral

135
@almirfilho @caio_gondim @loopinfinito

Transcript of HTML5 Sensitivo: Seu browser no plano astral

Page 1: HTML5 Sensitivo: Seu browser no plano astral

@almirfilho@caio_gondim

@loopinfinito

Page 2: HTML5 Sensitivo: Seu browser no plano astral

HTML5 Sensitivo

Seu browser + LSD

Page 3: HTML5 Sensitivo: Seu browser no plano astral

Acesso adispositivos

Page 4: HTML5 Sensitivo: Seu browser no plano astral

APIs do Além

Page 5: HTML5 Sensitivo: Seu browser no plano astral

APIs do Além

Acelerômetro

Page 6: HTML5 Sensitivo: Seu browser no plano astral

APIs do Além

Acelerômetro

Geolocalização

Page 7: HTML5 Sensitivo: Seu browser no plano astral

APIs do Além

Acelerômetro

Geolocalização

Câmera

Page 8: HTML5 Sensitivo: Seu browser no plano astral

APIs do AlémAcelerômetro

Geolocalização

Câmera

Microfone

Page 9: HTML5 Sensitivo: Seu browser no plano astral

@caio_gondim

@almirfilho

Page 10: HTML5 Sensitivo: Seu browser no plano astral

@loopinfinito

Page 11: HTML5 Sensitivo: Seu browser no plano astral

loopinfinito.com.br

Page 12: HTML5 Sensitivo: Seu browser no plano astral

APIs do AlémAcelerômetro

Geolocalização

Câmera

Microfone

Page 13: HTML5 Sensitivo: Seu browser no plano astral

Acelerômetro

Page 14: HTML5 Sensitivo: Seu browser no plano astral

Orientação&

Aceleração

Page 15: HTML5 Sensitivo: Seu browser no plano astral

Sistema deCoordenadas

Page 16: HTML5 Sensitivo: Seu browser no plano astral

ySistema deCoordenadas

Page 17: HTML5 Sensitivo: Seu browser no plano astral

y

x

Sistema deCoordenadas

Page 18: HTML5 Sensitivo: Seu browser no plano astral

z y

x

Sistema deCoordenadas

Page 19: HTML5 Sensitivo: Seu browser no plano astral

Rotação z y

x

Page 20: HTML5 Sensitivo: Seu browser no plano astral

Rotação

alpha

z y

x

Page 21: HTML5 Sensitivo: Seu browser no plano astral

Rotação z y

x

beta

Page 22: HTML5 Sensitivo: Seu browser no plano astral

Rotação z y

x

gamma

Page 23: HTML5 Sensitivo: Seu browser no plano astral

API

Page 24: HTML5 Sensitivo: Seu browser no plano astral

APIDeviceOrientationEvent

DeviceMotionEvent

Page 25: HTML5 Sensitivo: Seu browser no plano astral

Orientação

DeviceOrientationEvent

Page 26: HTML5 Sensitivo: Seu browser no plano astral

Obtém aRotação dos eixos

Page 27: HTML5 Sensitivo: Seu browser no plano astral

zyx

Obtém aRotação dos eixos

Page 28: HTML5 Sensitivo: Seu browser no plano astral

zyxgammabeta alpha

Obtém aRotação dos eixos

Page 29: HTML5 Sensitivo: Seu browser no plano astral

em grausgammabeta alpha

Page 30: HTML5 Sensitivo: Seu browser no plano astral

z

alpha = 0º

Page 31: HTML5 Sensitivo: Seu browser no plano astral

z

alpha = 25º

Page 32: HTML5 Sensitivo: Seu browser no plano astral

x

beta = 0º

Page 33: HTML5 Sensitivo: Seu browser no plano astral

x

beta = 30º

Page 34: HTML5 Sensitivo: Seu browser no plano astral

y

gamma = 0º

Page 35: HTML5 Sensitivo: Seu browser no plano astral

y

gamma = 45º

Page 36: HTML5 Sensitivo: Seu browser no plano astral

JavaScriptpor favor!

Page 37: HTML5 Sensitivo: Seu browser no plano astral

if( window.DeviceOrientationEvent != undefined ){ // suporte garantido =)}

Teste o suporte

Page 38: HTML5 Sensitivo: Seu browser no plano astral

window.addEventListener( ‘deviceorientation’, function( eventData ){ // faça acontecer })

Trate o evento

Page 39: HTML5 Sensitivo: Seu browser no plano astral

eventData = { alpha: 0.01042012, // graus beta: 11.34221344, // graus gamma: 27.102012102, // graus absolute: true, ... // propriedades de Event}

Dados de deviceorientation

Page 40: HTML5 Sensitivo: Seu browser no plano astral

Aceleração

DeviceMotionEvent

Page 41: HTML5 Sensitivo: Seu browser no plano astral

Obtém dadossobre movimentos

físicos em cada eixo

Page 42: HTML5 Sensitivo: Seu browser no plano astral

Obtém dadossobre movimentos

físicos em cada eixo

zyx

Page 43: HTML5 Sensitivo: Seu browser no plano astral

zyx

em m/s²

Page 44: HTML5 Sensitivo: Seu browser no plano astral

if( window.DeviceMotionEvent != undefined ){ // suporte garantido =)}

Teste o suporte

Page 45: HTML5 Sensitivo: Seu browser no plano astral

window.addEventListener( ‘devicemotion’, function( eventData ){ // faça acontecer })

Trate o evento

Page 46: HTML5 Sensitivo: Seu browser no plano astral

eventData = { interval: 200, // milisegundos acceleration: { x: 0.1534532, // metro/s² y: 3.9876581, // metro/s² z: 1.0092722 // metro/s² }, accelerationIncludingGravity: { x, y, z }, // idem rotationRate: { alpha, beta, gamma } // orientation ... // propriedades de Event}

Dados de devicemotion

Page 47: HTML5 Sensitivo: Seu browser no plano astral

DEMO

Page 48: HTML5 Sensitivo: Seu browser no plano astral

almirfilho.github.com/cilada

Page 49: HTML5 Sensitivo: Seu browser no plano astral

Suporte Desktop

Page 50: HTML5 Sensitivo: Seu browser no plano astral

Suporte Desktop

7 6(parcial)(parcial)

Page 51: HTML5 Sensitivo: Seu browser no plano astral

Suporte Mobile

Page 52: HTML5 Sensitivo: Seu browser no plano astral

Suporte Mobile

184.2

3.012 10

15

Page 53: HTML5 Sensitivo: Seu browser no plano astral

Geolocalização

Acelerômetro

APIs do Além

Câmera

Microfone

Page 54: HTML5 Sensitivo: Seu browser no plano astral

Geolocalização

Page 55: HTML5 Sensitivo: Seu browser no plano astral

Posição em relação a superfície do planeta

Page 56: HTML5 Sensitivo: Seu browser no plano astral

serviços de mapasredes sociais

aplicações e-gov

Quem usa?

Page 57: HTML5 Sensitivo: Seu browser no plano astral

Localização = Contexto

Page 58: HTML5 Sensitivo: Seu browser no plano astral

Localização = ContextoMaior relevância

Page 59: HTML5 Sensitivo: Seu browser no plano astral

Busca&

Recomendaçãomais eficazes

Page 60: HTML5 Sensitivo: Seu browser no plano astral

Obtendo a Geolocalização

Desktop x Móvel

Page 61: HTML5 Sensitivo: Seu browser no plano astral

DesktopPosição

Localização fixaaproximada

Page 62: HTML5 Sensitivo: Seu browser no plano astral

MóvelPosição

Localização variávelmais exata

Page 63: HTML5 Sensitivo: Seu browser no plano astral

API

Page 64: HTML5 Sensitivo: Seu browser no plano astral

APInavigator.geolocation

Page 65: HTML5 Sensitivo: Seu browser no plano astral

if( navigator.geolocation != undefined ){ // suporte garantido =)}

Teste o suporte

Page 66: HTML5 Sensitivo: Seu browser no plano astral

// requisitando geolocalizaçãonavigator.geolocation.getCurrentPosition( showMap )

// setando o callbackfunction showMap( position ){ // só alegria}

Defina o callback

Page 67: HTML5 Sensitivo: Seu browser no plano astral

Dados de .getCurrentPosition

position = { timestamp: 307770135, // DOMTimeStamp coords: { accuracy: 12, // metros latitude: -35.29873363499, // graus longitude: 123.44334887755,// graus altitude: 400.3, // metros (opcional) heading: 45.5, // graus (opcional) speed: 5.4 // m/s (opcional) }}

Page 68: HTML5 Sensitivo: Seu browser no plano astral

DEMO

Page 69: HTML5 Sensitivo: Seu browser no plano astral

almirfilho.github.com/fulltheface

Page 70: HTML5 Sensitivo: Seu browser no plano astral

Suporte Desktop

Page 71: HTML5 Sensitivo: Seu browser no plano astral

Suporte Desktop

5 3.5

9

5

10.6

Page 72: HTML5 Sensitivo: Seu browser no plano astral

Suporte Mobile

Page 73: HTML5 Sensitivo: Seu browser no plano astral

Suporte Mobile

183.2

2.111 7

15

Page 74: HTML5 Sensitivo: Seu browser no plano astral

Geolocalização

Acelerômetro

APIs do Além

Câmera

Microfone

Page 75: HTML5 Sensitivo: Seu browser no plano astral

Câmera

Page 76: HTML5 Sensitivo: Seu browser no plano astral

WebRTC

Page 77: HTML5 Sensitivo: Seu browser no plano astral

WebRTCReal-Time

Communications

Page 78: HTML5 Sensitivo: Seu browser no plano astral

API

Page 79: HTML5 Sensitivo: Seu browser no plano astral

APIStream

Media Capture

Page 80: HTML5 Sensitivo: Seu browser no plano astral

API

Stream

Page 81: HTML5 Sensitivo: Seu browser no plano astral

Stream

input

<video>MediaStream

MediaStreamTrack

video

MediaStreamTrack

audio

PeerConection

Page 82: HTML5 Sensitivo: Seu browser no plano astral

API

Media Capture

Page 83: HTML5 Sensitivo: Seu browser no plano astral

// sem prefixos dos vendorsif ( navigator.getUserMedia ){ // câmera, ação!}

Teste o suporte

Page 84: HTML5 Sensitivo: Seu browser no plano astral

navigator.getUserMedia( { video: true }, sucessoCallback, falhaCallback )

Permissão

Page 85: HTML5 Sensitivo: Seu browser no plano astral
Page 86: HTML5 Sensitivo: Seu browser no plano astral

function sucessoCallback(stream) { var video = document.getElementsByTagName(‘video’)[0] video.autoplay = true video.src = window.webkitURL.createObjectURL(stream)}

Linkando no <video>

Page 87: HTML5 Sensitivo: Seu browser no plano astral

Mix com<canvas>

Page 88: HTML5 Sensitivo: Seu browser no plano astral

Mix comWebGL

Page 89: HTML5 Sensitivo: Seu browser no plano astral

DEMO

Page 90: HTML5 Sensitivo: Seu browser no plano astral

caiogondim.github.com/webpix

Page 91: HTML5 Sensitivo: Seu browser no plano astral

Suporte Desktop

Page 92: HTML5 Sensitivo: Seu browser no plano astral

Suporte Desktop

21

12.0

Page 93: HTML5 Sensitivo: Seu browser no plano astral

Suporte Mobile

Page 94: HTML5 Sensitivo: Seu browser no plano astral

Suporte Mobile

Page 95: HTML5 Sensitivo: Seu browser no plano astral

Câmera

Geolocalização

Acelerômetro

APIs do Além

Microfone

Page 96: HTML5 Sensitivo: Seu browser no plano astral

Microfone

Page 97: HTML5 Sensitivo: Seu browser no plano astral

API

Page 98: HTML5 Sensitivo: Seu browser no plano astral

APIWeb Speech

Media Capture

Page 99: HTML5 Sensitivo: Seu browser no plano astral

Web Speech

Reconhecimento& Síntese

de voz

Page 100: HTML5 Sensitivo: Seu browser no plano astral
Page 101: HTML5 Sensitivo: Seu browser no plano astral

Reconhecimento de voz

Page 102: HTML5 Sensitivo: Seu browser no plano astral
Page 103: HTML5 Sensitivo: Seu browser no plano astral

Síntese de voz

Page 104: HTML5 Sensitivo: Seu browser no plano astral

if ( document.createElement( ‘input’ ).webkitSpeech != undefined ){ // suporte garantido =)}

Teste o suporte

Page 105: HTML5 Sensitivo: Seu browser no plano astral

<input type=”text” x-webkit-speech />

Marcação HTML

Page 106: HTML5 Sensitivo: Seu browser no plano astral
Page 107: HTML5 Sensitivo: Seu browser no plano astral
Page 108: HTML5 Sensitivo: Seu browser no plano astral
Page 109: HTML5 Sensitivo: Seu browser no plano astral

{ }

Page 110: HTML5 Sensitivo: Seu browser no plano astral

document .getElementsByTagName( ‘input’ )[0] .addEventListener( ‘webkitspeechchange’, function( eventData ){ // sua mágica })

Evento

Page 111: HTML5 Sensitivo: Seu browser no plano astral

eventData = { results: [ { confidence: 0.61285305, utterance: ‘praia’ }, ... ], ... // propriedades de Event}

Dados de webkitspeechange

Page 112: HTML5 Sensitivo: Seu browser no plano astral

DEMO

Page 113: HTML5 Sensitivo: Seu browser no plano astral

caiogondim.github.com/hal

Page 114: HTML5 Sensitivo: Seu browser no plano astral

Suporte Desktop

Page 115: HTML5 Sensitivo: Seu browser no plano astral

Suporte Desktop

22*

Page 116: HTML5 Sensitivo: Seu browser no plano astral

Captura de Áudio

Media Capture

Page 117: HTML5 Sensitivo: Seu browser no plano astral

BaixoNível

Page 118: HTML5 Sensitivo: Seu browser no plano astral

BaixaLatência

Page 119: HTML5 Sensitivo: Seu browser no plano astral

GuitarraMic externo

...

Page 120: HTML5 Sensitivo: Seu browser no plano astral

// sem prefixos dos vendorsif ( navigator.getUserMedia ){ // we got it!}

Teste o suporte

Page 121: HTML5 Sensitivo: Seu browser no plano astral

navigator.getUserMedia( { audio: true }, sucessoCallback, falhaCallback )

Permissão

Page 122: HTML5 Sensitivo: Seu browser no plano astral
Page 123: HTML5 Sensitivo: Seu browser no plano astral

Mix com Web Audio

Page 124: HTML5 Sensitivo: Seu browser no plano astral

function sucessoCallback( stream ) { var context = new webkitAudioContext() var mediaStreamSource = context .createMediaStreamSource( stream ) mediaStreamSource.connect( filter1 ) ... filter1.connect( context.destination )}

Callback

Page 125: HTML5 Sensitivo: Seu browser no plano astral

DEMO

Page 126: HTML5 Sensitivo: Seu browser no plano astral

Suporte Desktop

Page 127: HTML5 Sensitivo: Seu browser no plano astral

Suporte Desktop

216

Page 128: HTML5 Sensitivo: Seu browser no plano astral

Suporte Mobile

Page 129: HTML5 Sensitivo: Seu browser no plano astral

Suporte Mobile

6

Page 130: HTML5 Sensitivo: Seu browser no plano astral

Câmera

Geolocalização

Acelerômetro

APIs do Além

Microfone

Page 131: HTML5 Sensitivo: Seu browser no plano astral
Page 132: HTML5 Sensitivo: Seu browser no plano astral

?

Page 133: HTML5 Sensitivo: Seu browser no plano astral

@loopinfinito@almirfilho

@caio_gondim

Page 134: HTML5 Sensitivo: Seu browser no plano astral

Obrigado!

Page 135: HTML5 Sensitivo: Seu browser no plano astral

Este trabalho é licenciado pela Creative Commons

http://creativecommons.org.br/as-licencas/