iphoneでなんちゃってwebrtc

13
Copyright © NTT Communications Corporation. All right reserved. WebRTC Meetup Tokyo #2 iPhone ででででででで WebRTC NTT でででででででででで でで IP でででででででででで でででで 2014 で 6 で 3 で

Upload: kensaku-komatsu

Post on 15-Jan-2015

2.012 views

Category:

Technology


8 download

DESCRIPTION

iPhoneで、なんちゃってWebRTC(getUserMedia + Web Audio API + WebSocket)なLT資料ですー

TRANSCRIPT

Page 1: iPhoneでなんちゃってWebRTC

Copyright © NTT Communications Corporation. All right reserved.

WebRTC Meetup Tokyo #2

iPhone でなんちゃってWebRTC

NTT コミュニケーションズ先端 IP アーキテクチャセンタ小松健作2014 年 6 月 3 日

Page 2: iPhoneでなんちゃってWebRTC

Copyright © NTT Communications Corporation. All right reserved.

自己紹介

名前:小松健作所属: NTT communications

HTML5 の研究開発標準化活動( W3C )HTML5 の啓蒙・コミュニティ運営

Google Developer Expert (HTML5)

Page 3: iPhoneでなんちゃってWebRTC

Copyright © NTT Communications Corporation. All right reserved.

WebRTC Chat on SkyWay

Page 4: iPhoneでなんちゃってWebRTC

4Copyright © NTT Communications Corporation. All right reserved.

Frequently Asked Question

“iPhone では動かないんですか?“

・・・

Page 5: iPhoneでなんちゃってWebRTC

5Copyright © NTT Communications Corporation. All right reserved.

orz・・・

Page 6: iPhoneでなんちゃってWebRTC

6Copyright © NTT Communications Corporation. All right reserved.

そんなあなたに Web Audio API + WebSocket

IE 気にしなきゃおっけー

確信犯

Page 7: iPhoneでなんちゃってWebRTC

7Copyright © NTT Communications Corporation. All right reserved.

そんなあなたに Web Audio API + WebSocket (cont)

Audio api でPCM 取り出す

getUserMedia とか

WebSocketサーバー

Audio api でPCM データか

ら再生

WebSocketですが何か?

LT ネタでしょ?

Page 8: iPhoneでなんちゃってWebRTC

8Copyright © NTT Communications Corporation. All right reserved.

getUserMedia は立派な WebRTC の機能です

( ´Д ` ) なにか ?確信犯

Page 9: iPhoneでなんちゃってWebRTC

9Copyright © NTT Communications Corporation. All right reserved.

DEMO ちゃんと動くといいなぁ

Page 10: iPhoneでなんちゃってWebRTC

10Copyright © NTT Communications Corporation. All right reserved.

もうちょい詳しく

getUserMedia()

MediaStreamSource

ScriptProcessor oscillator

ScriptProcessor

destinationNodestream オブジェクト

destinationNode

PCM(かるーく圧縮とか)

PCM(かるーくデコード)

WebSocket

赤いところがAudio API

Page 11: iPhoneでなんちゃってWebRTC

11Copyright © NTT Communications Corporation. All right reserved.

注意点(ダメな例)

var src = ctx.createMediaStreamSource(stream);var proc = ctx.createScriptProcessor(256, 1, 1);proc.onaudioprocess = function(ev) { // PCM データをふがほげ}

src.connect(proc);proc.connect(ctx.destination);

FireFox 以外だと、音が割れるだの途中で止まるだの Android ではブツブツ切れるだのほんと困ったちゃんになっちゃう

残念な感じになっちゃ

うにゃ

Page 12: iPhoneでなんちゃってWebRTC

12Copyright © NTT Communications Corporation. All right reserved.

動く書き方

var proc = ctx.createScriptProcessor(4096, 1, 1);proc.onaudioprocess = function(ev) { // PCM データをふがほげ}

$(“#hoge”).on(“click”, function(ev) { var src = ctx.createMediaStreamSource(stream); src.connect(proc); proc.connect(ctx.destination);});

• ScriptProcessor のバッファ値を 2048 以上• onaudioprocess は事前に設定しておく• connect(ctx.destination) は、ユーザーア

クションと連動させる

コールするタイミングが重要にゃ

Page 13: iPhoneでなんちゃってWebRTC

13Copyright © NTT Communications Corporation. All right reserved.

今日の名言

バグは仕様!!

確信犯