SlideShare uma empresa Scribd logo
1 de 130
Baixar para ler offline
@almirfilho 
@caio_gondim 
@loopinfinito
HTML5 Sensitivo 
Seu browser + LSD
Acesso a 
dispositivos
APIs do Além
APIs do Além 
Acelerômetro
APIs do Além 
Acelerômetro 
Geolocalização
APIs do Além 
Acelerômetro 
Geolocalização 
Câmera
APIs do Além 
Acelerômetro 
Geolocalização 
Câmera 
Microfone
@caio_gondim 
@almirfilho
@loopinfinito
loopinfinito.com.br
APIs do Além 
Acelerômetro 
Geolocalização 
Câmera 
Microfone
Acelerômetro
Orientação 
& 
Aceleração
Sistema de 
Coordenadas
y 
Sistema de 
Coordenadas
y 
x 
Sistema de 
Coordenadas
z y 
x 
Sistema de 
Coordenadas
Rotação z y 
x
Rotação 
z y 
alpha 
x
Rotação z y 
x 
beta
Rotação z y 
gamma 
x
API
API 
DeviceOrientationEvent 
DeviceMotionEvent
Orientação 
DeviceOrientationEvent
Obtém a 
Rotação dos eixos
Obtém a 
Rotação dos eixos 
x y z
Obtém a 
Rotação dos eixos 
x y z 
beta gamma alpha
beta gamma alpha 
em graus
z 
alpha = 0º
z 
alpha = 25º
x 
beta = 0º
x 
beta = 30º
y 
gamma = 0º
y 
gamma = 45º
JavaScript 
por favor!
if( window.DeviceOrientationEvent != undefined ){ 
// suporte garantido =) 
} 
Teste o suporte
window.addEventListener( ‘deviceorientation’, 
function( eventData ){ 
// faça acontecer 
} 
) 
Trate o evento
Dados de 
deviceorientation 
eventData = { 
alpha: 0.01042012, // graus 
beta: 11.34221344, // graus 
gamma: 27.102012102, // graus 
absolute: true, 
... // propriedades de Event 
}
Aceleração 
DeviceMotionEvent
Obtém dados 
sobre movimentos 
físicos em cada eixo
Obtém dados 
sobre movimentos 
físicos em cada eixo 
x y z
x y z 
em m/s²
if( window.DeviceMotionEvent != undefined ){ 
// suporte garantido =) 
} 
Teste o suporte
window.addEventListener( ‘devicemotion’, 
function( eventData ){ 
// faça acontecer 
} 
) 
Trate o evento
Dados de devicemotion 
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 
}
DEMO
Suporte Desktop
Suporte Desktop 
7 6 
(parcial) (parcial)
Suporte Mobile
Suporte Mobile 
4.2 18 
15 
12 3.0 10
APIs do Além 
Acelerômetro 
Geolocalização 
Câmera 
Microfone
Geolocalização
Posição em relação a 
superfície do planeta
Quem usa? 
serviços de mapas 
redes sociais 
aplicações e-gov
Localização = Contexto
Localização = Contexto 
Maior relevância
Busca 
& 
Recomendação 
mais eficazes
Obtendo a 
Geolocalização 
Desktop x Móvel
Desktop 
Posição 
Localização 
fixa 
aproximada
Móvel 
Posição 
Localização 
variável 
mais exata
API
API 
navigator.geolocation
if( navigator.geolocation != undefined ){ 
// suporte garantido =) 
} 
Teste o suporte
// requisitando geolocalização 
navigator.geolocation.getCurrentPosition( showMap ) 
// setando o callback 
function showMap( position ){ 
// só alegria 
} 
Defina o callback
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) 
} 
}
DEMO
Suporte Desktop
Suporte Desktop 
5 3.5 
9 
5 
10.6
Suporte Mobile
Suporte Mobile 
3.2 18 
15 
11 2.1 7
API’s do Além 
Acelerômetro 
Geolocalização 
Câmera 
Microfone
Câmera
WebRTC
WebRTC 
Real-Time 
Communications
API
API 
Stream 
Media Capture
API 
Stream
Stream 
input 
MediaStream <video> 
MediaStream 
Track 
video 
MediaStream 
Track 
audio 
PeerConection
API 
Media Capture
// sem prefixos dos vendors 
if ( navigator.getUserMedia ){ 
// câmera, ação! 
} 
Teste o suporte
Permissão 
navigator.getUserMedia( 
{ video: true }, 
sucessoCallback, 
falhaCallback 
)
Linkando no 
<video> 
function sucessoCallback(stream) { 
var video = document.getElementsByTagName(‘video’)[0] 
video.autoplay = true 
video.src = window.webkitURL.createObjectURL(stream) 
}
Mix com 
<canvas>
Mix com 
WebGL
DEMO
APIs do Além 
Acelerômetro 
Geolocalização 
Câmera 
Microfone
Suporte Desktop
Suporte Desktop 
6 21
Suporte Mobile
Suporte Mobile 
6
Microfone
API
API 
Web Speech 
Media Capture
Reconhecimento 
& Síntese 
de voz 
Web Speech
Reconhecimento 
de voz
Síntese de voz
Teste o suporte 
if ( document.createElement( ‘input’ ).webkitSpeech != undefined ) 
{ 
// suporte garantido =) 
}
Marcação HTML 
<input type=”text” x-webkit-speech />
{ }
document 
.getElementsByTagName( ‘input’ )[0] 
.addEventListener( ‘webkitspeechchange’, 
function( eventData ){ 
// sua mágica 
} 
) 
Evento
Dados de 
webkitspeechange 
eventData = { 
results: [ 
{ 
confidence: 0.61285305, 
utterance: ‘praia’ 
}, 
... 
], 
... // propriedades de Event 
}
DEMO
Suporte Desktop
Suporte Desktop 
22*
Captura de 
Áudio 
Media Capture
Baixo 
Nível
Baixa 
Latência
Guitarra 
Mic externo 
...
// sem prefixos dos vendors 
if ( navigator.getUserMedia ){ 
// we got it! 
} 
Teste o suporte
Permissão 
navigator.getUserMedia( 
{ audio: true }, 
sucessoCallback, 
falhaCallback 
)
Mix com 
Web Audio
Callback 
function sucessoCallback( stream ) { 
var context = new webkitAudioContext() 
var mediaStreamSource = context 
.createMediaStreamSource( stream ) 
mediaStreamSource.connect( filter1 ) 
... 
filter1.connect( context.destination ) 
}
DEMO
Suporte Desktop
Suporte Desktop 
6 21
Suporte Mobile
Suporte Mobile 
6
APIs do Além 
Acelerômetro 
Geolocalização 
Câmera 
Microfone
?
@loopinfinito 
@almirfilho 
@caio_gondim
Obrigado!

Mais conteúdo relacionado

Semelhante a APIs do Além Acelerômetro Geolocalização Câmera Microfone

HTML5 Sensitivo: Seu browser no plano astral
HTML5 Sensitivo: Seu browser no plano astralHTML5 Sensitivo: Seu browser no plano astral
HTML5 Sensitivo: Seu browser no plano astralAlmir Filho
 
QConSP 2012: Sencha Touch 2: Mobile Multiplataforma
QConSP 2012: Sencha Touch 2: Mobile MultiplataformaQConSP 2012: Sencha Touch 2: Mobile Multiplataforma
QConSP 2012: Sencha Touch 2: Mobile MultiplataformaLoiane Groner
 
Introdução ao Titanium Mobile
Introdução ao Titanium MobileIntrodução ao Titanium Mobile
Introdução ao Titanium MobileEric Cavalcanti
 
Congresso TI 2015: Introducao ao Phonegap (Cordova)
Congresso TI 2015: Introducao ao Phonegap (Cordova)Congresso TI 2015: Introducao ao Phonegap (Cordova)
Congresso TI 2015: Introducao ao Phonegap (Cordova)Loiane Groner
 
MobileConf 2013: PhoneGap
MobileConf 2013: PhoneGapMobileConf 2013: PhoneGap
MobileConf 2013: PhoneGapLoiane Groner
 
HTML5 - Seu navegador não é mais o mesmo
HTML5 - Seu navegador não é mais o mesmoHTML5 - Seu navegador não é mais o mesmo
HTML5 - Seu navegador não é mais o mesmoCaio Gondim
 
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...Adriel Café
 
Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Pa...
Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Pa...Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Pa...
Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Pa...Rio Info
 
Android Lollipop e Android Wear
Android Lollipop e Android WearAndroid Lollipop e Android Wear
Android Lollipop e Android WearSilas Limeira
 
Android DevConference - Gerenciando a publicação e atualização de 450 apps se...
Android DevConference - Gerenciando a publicação e atualização de 450 apps se...Android DevConference - Gerenciando a publicação e atualização de 450 apps se...
Android DevConference - Gerenciando a publicação e atualização de 450 apps se...iMasters
 
Web Rangers e Power APIs
Web Rangers e Power APIsWeb Rangers e Power APIs
Web Rangers e Power APIsEliezer Bernart
 
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Rodrigo Urubatan
 
Mini Curso de jQuery Lambda3/Globalcode
Mini Curso de jQuery Lambda3/GlobalcodeMini Curso de jQuery Lambda3/Globalcode
Mini Curso de jQuery Lambda3/GlobalcodeVictor Cavalcante
 
SharePoint Deployment
SharePoint DeploymentSharePoint Deployment
SharePoint DeploymentAndré Vala
 

Semelhante a APIs do Além Acelerômetro Geolocalização Câmera Microfone (20)

HTML5 Sensitivo: Seu browser no plano astral
HTML5 Sensitivo: Seu browser no plano astralHTML5 Sensitivo: Seu browser no plano astral
HTML5 Sensitivo: Seu browser no plano astral
 
Tracking.js
Tracking.jsTracking.js
Tracking.js
 
QConSP 2012: Sencha Touch 2: Mobile Multiplataforma
QConSP 2012: Sencha Touch 2: Mobile MultiplataformaQConSP 2012: Sencha Touch 2: Mobile Multiplataforma
QConSP 2012: Sencha Touch 2: Mobile Multiplataforma
 
Introdução ao Titanium Mobile
Introdução ao Titanium MobileIntrodução ao Titanium Mobile
Introdução ao Titanium Mobile
 
Congresso TI 2015: Introducao ao Phonegap (Cordova)
Congresso TI 2015: Introducao ao Phonegap (Cordova)Congresso TI 2015: Introducao ao Phonegap (Cordova)
Congresso TI 2015: Introducao ao Phonegap (Cordova)
 
MobileConf 2013: PhoneGap
MobileConf 2013: PhoneGapMobileConf 2013: PhoneGap
MobileConf 2013: PhoneGap
 
HTML5 - Seu navegador não é mais o mesmo
HTML5 - Seu navegador não é mais o mesmoHTML5 - Seu navegador não é mais o mesmo
HTML5 - Seu navegador não é mais o mesmo
 
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
 
Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Pa...
Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Pa...Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Pa...
Rio Info 2010 - Oficina - Oficina Papel Devigner Novidades HTML5 - Ricardo Pa...
 
Android Lollipop e Android Wear
Android Lollipop e Android WearAndroid Lollipop e Android Wear
Android Lollipop e Android Wear
 
Android DevConference - Gerenciando a publicação e atualização de 450 apps se...
Android DevConference - Gerenciando a publicação e atualização de 450 apps se...Android DevConference - Gerenciando a publicação e atualização de 450 apps se...
Android DevConference - Gerenciando a publicação e atualização de 450 apps se...
 
Conhecendo o Android Wear
Conhecendo o Android WearConhecendo o Android Wear
Conhecendo o Android Wear
 
Chromecast na Qcon RJ
Chromecast na Qcon RJChromecast na Qcon RJ
Chromecast na Qcon RJ
 
Web Rangers e Power APIs
Web Rangers e Power APIsWeb Rangers e Power APIs
Web Rangers e Power APIs
 
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_
 
Browser Mobile - Opera
Browser Mobile - OperaBrowser Mobile - Opera
Browser Mobile - Opera
 
API Apontador
API ApontadorAPI Apontador
API Apontador
 
Mini Curso de jQuery Lambda3/Globalcode
Mini Curso de jQuery Lambda3/GlobalcodeMini Curso de jQuery Lambda3/Globalcode
Mini Curso de jQuery Lambda3/Globalcode
 
Palestra sobre o FirefoxOS
Palestra sobre o FirefoxOSPalestra sobre o FirefoxOS
Palestra sobre o FirefoxOS
 
SharePoint Deployment
SharePoint DeploymentSharePoint Deployment
SharePoint Deployment
 

Mais de Caio Gondim

256 shades of R, G and B
 256 shades of R, G and B 256 shades of R, G and B
256 shades of R, G and BCaio Gondim
 
História dos Sistemas Operacionais de Videogames
História dos Sistemas Operacionais de VideogamesHistória dos Sistemas Operacionais de Videogames
História dos Sistemas Operacionais de VideogamesCaio Gondim
 
Git lighting talk
Git lighting talkGit lighting talk
Git lighting talkCaio Gondim
 
Sublime Text 2 pro tips
Sublime Text 2 pro tipsSublime Text 2 pro tips
Sublime Text 2 pro tipsCaio Gondim
 
CSS Layout: O ontem, o hoje e o depois
CSS Layout: O ontem, o hoje e o depoisCSS Layout: O ontem, o hoje e o depois
CSS Layout: O ontem, o hoje e o depoisCaio Gondim
 
Designing JS APis
Designing JS APisDesigning JS APis
Designing JS APisCaio Gondim
 

Mais de Caio Gondim (8)

256 shades of R, G and B
 256 shades of R, G and B 256 shades of R, G and B
256 shades of R, G and B
 
História dos Sistemas Operacionais de Videogames
História dos Sistemas Operacionais de VideogamesHistória dos Sistemas Operacionais de Videogames
História dos Sistemas Operacionais de Videogames
 
Git lighting talk
Git lighting talkGit lighting talk
Git lighting talk
 
Sublime Text 2 pro tips
Sublime Text 2 pro tipsSublime Text 2 pro tips
Sublime Text 2 pro tips
 
Brazil
BrazilBrazil
Brazil
 
CSS Layout: O ontem, o hoje e o depois
CSS Layout: O ontem, o hoje e o depoisCSS Layout: O ontem, o hoje e o depois
CSS Layout: O ontem, o hoje e o depois
 
Designing JS APis
Designing JS APisDesigning JS APis
Designing JS APis
 
A/B Test
A/B TestA/B Test
A/B Test
 

APIs do Além Acelerômetro Geolocalização Câmera Microfone