Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Tomohiro Kumagai
4,624 views
DTMF — DTMF と自作アプリの軌跡 #yidev
DTMF の基本を、それにまつわる自作アプリの軌跡と絡めて、2013/06/22 に開催された yidev@渋谷勉強会 第一回 で発表してきました。
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 86
2
/ 86
Most read
3
/ 86
Most read
4
/ 86
5
/ 86
6
/ 86
7
/ 86
8
/ 86
9
/ 86
10
/ 86
11
/ 86
12
/ 86
13
/ 86
14
/ 86
15
/ 86
16
/ 86
17
/ 86
18
/ 86
19
/ 86
20
/ 86
21
/ 86
22
/ 86
23
/ 86
24
/ 86
25
/ 86
26
/ 86
27
/ 86
28
/ 86
29
/ 86
30
/ 86
31
/ 86
32
/ 86
33
/ 86
34
/ 86
35
/ 86
36
/ 86
37
/ 86
38
/ 86
39
/ 86
40
/ 86
41
/ 86
42
/ 86
43
/ 86
44
/ 86
45
/ 86
46
/ 86
47
/ 86
48
/ 86
49
/ 86
50
/ 86
51
/ 86
52
/ 86
53
/ 86
54
/ 86
55
/ 86
56
/ 86
57
/ 86
58
/ 86
59
/ 86
60
/ 86
61
/ 86
62
/ 86
63
/ 86
64
/ 86
65
/ 86
66
/ 86
67
/ 86
68
/ 86
69
/ 86
70
/ 86
71
/ 86
72
/ 86
73
/ 86
74
/ 86
75
/ 86
76
/ 86
77
/ 86
78
/ 86
79
/ 86
80
/ 86
81
/ 86
82
/ 86
83
/ 86
84
/ 86
85
/ 86
86
/ 86
More Related Content
PDF
VSTiつくるよゼミ
by
y3eadgbe
PDF
ソフトシンセを作りながら学ぶPythonプログラミング
by
Ransui Iso
PDF
pyssp
by
Shunsuke Aihara
PPTX
「Pythonでやってみた」~広がるプログラミングの愉しみ~
by
Ransui Iso
PDF
「Adx2 LE」Unity活用編 初~中級編
by
Takaaki Ichijo
PPTX
ラズパイオーディオで学ぶシステム構築入門
by
VirtualTech Japan Inc./Begi.net Inc.
PPTX
ラズパイオーディオで学ぶLinuxシステム構築
by
VirtualTech Japan Inc./Begi.net Inc.
ODP
こんにちはワークステーション LUNA 対応版 サウンド編
by
YosukeSugahara
VSTiつくるよゼミ
by
y3eadgbe
ソフトシンセを作りながら学ぶPythonプログラミング
by
Ransui Iso
pyssp
by
Shunsuke Aihara
「Pythonでやってみた」~広がるプログラミングの愉しみ~
by
Ransui Iso
「Adx2 LE」Unity活用編 初~中級編
by
Takaaki Ichijo
ラズパイオーディオで学ぶシステム構築入門
by
VirtualTech Japan Inc./Begi.net Inc.
ラズパイオーディオで学ぶLinuxシステム構築
by
VirtualTech Japan Inc./Begi.net Inc.
こんにちはワークステーション LUNA 対応版 サウンド編
by
YosukeSugahara
What's hot
PDF
音声データの扱い方と基礎知識・Audacity基本操作
by
Yusuke Uwagaki
PPTX
System scan 2013
by
Naoya Niwa
KEY
女子美術大学メディアアート演習ⅡB 2012 Spring 第10回 1/2
by
Satoru Tokuhisa
KEY
第8回Unity勉強会 Unityサウンド入門編 と サウンドワークショップ事例 Tech buzz8 Unity Study 20120927 tanaka
by
Takashi Tanaka
PDF
真・聴力検査 HACKS
by
Koichi Taniguchi
PPT
多目的な音声伝送システムMRATの開発
by
Takashi Kishida
PDF
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
by
UnityTechnologiesJapan002
PDF
Kashiwa.r.10
by
Caru Shi
PDF
音にこだわる! ネイティブアプリだからできる 快適なサウンド演出
by
Takaaki Ichijo
PPTX
【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?
by
historia_Inc
ODP
Stagefright入門
by
l_b__
PDF
高効率音声符号化―MP3詳解―
by
Akinori Ito
PPT
多地点における高品質な遠隔合唱の実現
by
Takashi Kishida
音声データの扱い方と基礎知識・Audacity基本操作
by
Yusuke Uwagaki
System scan 2013
by
Naoya Niwa
女子美術大学メディアアート演習ⅡB 2012 Spring 第10回 1/2
by
Satoru Tokuhisa
第8回Unity勉強会 Unityサウンド入門編 と サウンドワークショップ事例 Tech buzz8 Unity Study 20120927 tanaka
by
Takashi Tanaka
真・聴力検査 HACKS
by
Koichi Taniguchi
多目的な音声伝送システムMRATの開発
by
Takashi Kishida
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
by
UnityTechnologiesJapan002
Kashiwa.r.10
by
Caru Shi
音にこだわる! ネイティブアプリだからできる 快適なサウンド演出
by
Takaaki Ichijo
【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?
by
historia_Inc
Stagefright入門
by
l_b__
高効率音声符号化―MP3詳解―
by
Akinori Ito
多地点における高品質な遠隔合唱の実現
by
Takashi Kishida
Viewers also liked
ODT
Tabla 1
by
silviajavislide
DOCX
Full test
by
silviajavislide
PDF
Rwjf games to generate data competition 022213
by
Bonnie Henry
PDF
100813 04 파트너_콘텐츠,책으로_만드세요_-_도서출판_파란대문_백건영_대표님
by
TNM Media
PDF
Presentation - The Gospel of Life: Catholic Social Teaching & the Death Penalty
by
Michael Stone
PDF
Curation 2011108 tnm_간담회_업로드용
by
TNM Media
Tabla 1
by
silviajavislide
Full test
by
silviajavislide
Rwjf games to generate data competition 022213
by
Bonnie Henry
100813 04 파트너_콘텐츠,책으로_만드세요_-_도서출판_파란대문_백건영_대표님
by
TNM Media
Presentation - The Gospel of Life: Catholic Social Teaching & the Death Penalty
by
Michael Stone
Curation 2011108 tnm_간담회_업로드용
by
TNM Media
More from Tomohiro Kumagai
PDF
最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
by
Tomohiro Kumagai
PDF
Swift 所有権 要諦 #ゆるちとせ
by
Tomohiro Kumagai
PDF
_Function Builders in Swift #love_swift
by
Tomohiro Kumagai
PDF
Property Wrappers の特徴を眺める #swiftzoomin
by
Tomohiro Kumagai
PDF
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
by
Tomohiro Kumagai
PDF
みんなで Swift 復習会 GO! in 札幌 – 10th′′
by
Tomohiro Kumagai
PDF
イニシャライザー Part 2.5 #hakataswift
by
Tomohiro Kumagai
PDF
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
by
Tomohiro Kumagai
PDF
Swift クラスのイニシャライザー #devsap
by
Tomohiro Kumagai
PDF
iOSCon 2019 in London #ioscon #love_swift
by
Tomohiro Kumagai
PDF
Around the 変数 let #love_swift
by
Tomohiro Kumagai
PDF
もくもく執筆会 #技術同人誌再販Night
by
Tomohiro Kumagai
PDF
みんなで Swift 復習会 GO! in 岩手 – 9th′
by
Tomohiro Kumagai
PDF
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
by
Tomohiro Kumagai
PDF
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
by
Tomohiro Kumagai
PDF
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
by
Tomohiro Kumagai
PDF
Getting Started with iOSCon in London #love_swift #ioscon
by
Tomohiro Kumagai
PDF
みんなで Swift 復習会 GO! in 京都 – 6th′
by
Tomohiro Kumagai
PDF
みんなで Swift 復習会 GO! in 福岡 – 5th′
by
Tomohiro Kumagai
PDF
勉強会の東京外開催の気持ち #yuru_bounen2017
by
Tomohiro Kumagai
最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
by
Tomohiro Kumagai
Swift 所有権 要諦 #ゆるちとせ
by
Tomohiro Kumagai
_Function Builders in Swift #love_swift
by
Tomohiro Kumagai
Property Wrappers の特徴を眺める #swiftzoomin
by
Tomohiro Kumagai
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
by
Tomohiro Kumagai
みんなで Swift 復習会 GO! in 札幌 – 10th′′
by
Tomohiro Kumagai
イニシャライザー Part 2.5 #hakataswift
by
Tomohiro Kumagai
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
by
Tomohiro Kumagai
Swift クラスのイニシャライザー #devsap
by
Tomohiro Kumagai
iOSCon 2019 in London #ioscon #love_swift
by
Tomohiro Kumagai
Around the 変数 let #love_swift
by
Tomohiro Kumagai
もくもく執筆会 #技術同人誌再販Night
by
Tomohiro Kumagai
みんなで Swift 復習会 GO! in 岩手 – 9th′
by
Tomohiro Kumagai
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
by
Tomohiro Kumagai
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
by
Tomohiro Kumagai
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
by
Tomohiro Kumagai
Getting Started with iOSCon in London #love_swift #ioscon
by
Tomohiro Kumagai
みんなで Swift 復習会 GO! in 京都 – 6th′
by
Tomohiro Kumagai
みんなで Swift 復習会 GO! in 福岡 – 5th′
by
Tomohiro Kumagai
勉強会の東京外開催の気持ち #yuru_bounen2017
by
Tomohiro Kumagai
DTMF — DTMF と自作アプリの軌跡 #yidev
1.
DTMF - Dual-Tone Multi-Frequency
- DTMF - Dual-Tone Multi-Frequency - EZ-‐‑‒NET 熊⾕谷友宏 @EasyStyleGK http://program.station.ez-‐‑‒net.jp/ 〜DTMFと自作アプリの軌跡〜〜DTMFと自作アプリの軌跡〜
2.
⾃自⼰己紹介 @EasyStyleGK EZ-‐‑‒NET IP Phone
⾳音で再配達ゴッド ⾳音で再配達 ⾳音でダイヤル いつもの電卓 for iPad いつもの電卓 for iPhone iOS アプリ 制作中 iOS アプリ 制作中 EZ-‐‑‒NET 熊⾕谷友宏 http://program.station.ez-‐‑‒net.jp/
3.
これらのアプリにまつわるお話 EZ-‐‑‒NET IP Phone
⾳音で再配達ゴッド ⾳音で再配達 ⾳音でダイヤル いつもの電卓 for iPad いつもの電卓 for iPhone
4.
DTMFDTMF テーマはテーマは
5.
はじまり 1. DTMF との出逢い 2.
アイデアとの出逢い 3. そして神アプリへ 1. DTMF との出逢い 2. アイデアとの出逢い 3. そして神アプリへ 題⽬目題⽬目
6.
第1章 DTMF との出逢いDTMF との出逢い
7.
電話アプリを制作していたときのこと • 通話中の番号ボタンが必要になる • 番号ボタンといえば
ピ・ポ・パ • ピ・ポ・パ といえば DTMF • 通話中の番号ボタンが必要になる • 番号ボタンといえば ピ・ポ・パ • ピ・ポ・パ といえば DTMF
8.
何気なく使っている DTMF そういえば どうやって送ってるの? そういえば どうやって送ってるの? ⾳音としてそのまま送信⾳音としてそのまま送信
9.
DTMF ってどんな⾳音? 1. ふたつの正弦波で構成される⾳音 2.
正弦波の組み合わせによって 0 ~∼ 9, #, *, A ~∼ D と呼ばれる 3. 秒間 8 数字以上の転送が可能 1. ふたつの正弦波で構成される⾳音 2. 正弦波の組み合わせによって 0 ~∼ 9, #, *, A ~∼ D と呼ばれる 3. 秒間 8 数字以上の転送が可能 特徴特徴
10.
DTMF ってどんな⾳音? 1. ひとつの⾳音の⻑⾧長さは 最低
50ms 以上(信号送出時間) 2. ⾳音と⾳音の間は間隔を開ける 最低 30ms 以上(ミニマムポーズ) 3. 信号送出時間とミニマムポーズで 合計 120ms 以上の時間を取ること 1. ひとつの⾳音の⻑⾧長さは 最低 50ms 以上(信号送出時間) 2. ⾳音と⾳音の間は間隔を開ける 最低 30ms 以上(ミニマムポーズ) 3. 信号送出時間とミニマムポーズで 合計 120ms 以上の時間を取ること 送信のルール送信のルール
11.
DTMF ってどんな⾳音? 正弦波の組み合わせ正弦波の組み合わせ 1209 1477
1633 697 852 941 1336 770低 群 ㎐ ⾼高群 ㎐
12.
DTMF ⾳音を作る y=sinθ で表現される波形y=sinθ
で表現される波形 正弦波の基本形正弦波の基本形 1周期は 2π1周期は 2π 範囲は -1 から +1範囲は -1 から +1 θθ yy
13.
DTMF ってどんな⾳音? θ はラジアン単位の⾓角度度θ
はラジアン単位の⾓角度度 11 11 11 1. 弧の長さで角度を表現する方法 2. 半径 1 の円で、弧の⻑⾧長さが 1 になるときの⾓角度度が 1 ラジアン 3. 半円の弧の⻑⾧長さを π と定義する • 180° は π ラジアン • 半分の 90 ならπ/2 1. 弧の長さで角度を表現する方法 2. 半径 1 の円で、弧の⻑⾧長さが 1 になるときの⾓角度度が 1 ラジアン 3. 半円の弧の⻑⾧長さを π と定義する • 180° は π ラジアン • 半分の 90 ならπ/2
14.
DTMF ってどんな⾳音? 1. 半径が1の半円の弧の⻑⾧長さ 2.
半径倍すればその円の弧の⻑⾧長さ 3. π= 3.14159 26535 89793 … 1. 半径が1の半円の弧の⻑⾧長さ 2. 半径倍すればその円の弧の⻑⾧長さ 3. π= 3.14159 26535 89793 … πは円周率率率と呼ぶπは円周率率率と呼ぶ ππ 11
15.
DTMF ってどんな⾳音? 1. 半径が
1 の円における 引数の⾓角度度が作る弧の y 座標 • θ=0π(0 ) は y=0 • θ=π/2 (90 ) のときは y=1 2. 半径 1 の単位円なので y は -1 から 1 になる 3. θ=2π(360 )で 1周して元に戻る(2π周期) 1. 半径が 1 の円における 引数の⾓角度度が作る弧の y 座標 • θ=0π(0 ) は y=0 • θ=π/2 (90 ) のときは y=1 2. 半径 1 の単位円なので y は -1 から 1 になる 3. θ=2π(360 )で 1周して元に戻る(2π周期) sin 関数sin 関数 θθ 11 yy
16.
DTMF ⾳音を作る 周波数 1Hz
とは周波数 1Hz とは 1周期は 2π1周期は 2π 範囲は -1 から +1範囲は -1 から +1 1 秒間に 1 周期が現れる波形1 秒間に 1 周期が現れる波形 1秒1秒 θθ yy
17.
DTMF ⾳音を作る 周波数が 770Hz
なら周波数が 770Hz なら 1周期は 2π1周期は 2π 範囲は -1 から +1範囲は -1 から +1 1 秒間に 770 周期の波形 つまり 1/770 秒で 1 周期の波形 1 秒間に 770 周期の波形 つまり 1/770 秒で 1 周期の波形 1/770 秒1/770 秒 θθ yy
18.
DTMF ⾳音を作る y=sin(770×θ) y=sin(770×θ)
770Hz の正弦波を式で表すと770Hz の正弦波を式で表すと 1周期は 2π/7701周期は 2π/770 1/770 秒1/770 秒 θθ yy
19.
DTMF ⾳音を作る DTMF の
ʻ‘5ʼ’ を鳴らしたいならDTMF の ʻ‘5ʼ’ を鳴らしたいなら 770Hz と 1336Hz の 正弦波を合成する 770Hz と 1336Hz の 正弦波を合成する
20.
何気なく使っている DTMF 正弦波って どうやって合成するの? 正弦波って どうやって合成するの? それぞれを計算して 普通に⾜足し合わせるだけ それぞれを計算して 普通に⾜足し合わせるだけ
21.
DTMF ⾳音を作る つまりつまり 範囲は最大でも -2 から
+2 範囲は最大でも -2 から +2 y = sin(770×θ) + sin(1336×θ)y = sin(770×θ) + sin(1336×θ) θθ yy
22.
DTMF ⾳音を作る このようにして DTMF 波形は作られている このようにして DTMF
波形は作られている
23.
DTMF ⾳音の再⽣生⽅方法 DTMF 波形の 再⽣生⽅方法 DTMF
波形の 再⽣生⽅方法
24.
DTMF ⾳音の再⽣生⽅方法 1. DTMF
波形をプログラムで 計算して⽣生成する⽅方法 2. サウンドファイルを ⽤用意して再⽣生する⽅方法 1. DTMF 波形をプログラムで 計算して⽣生成する⽅方法 2. サウンドファイルを ⽤用意して再⽣生する⽅方法 DTMF 波形を再⽣生する⽅方法としてはDTMF 波形を再⽣生する⽅方法としては
25.
DTMF ⾳音の再⽣生⽅方法 DTMF 波形をプログラムで 計算して⽣生成する⽅方法 DTMF
波形をプログラムで 計算して⽣生成する⽅方法 1.1.
26.
DTMF 波形を⽣生成する⽅方法 Remote IO
を使って 波形データを⽣生成する Remote IO を使って 波形データを⽣生成する
27.
DTMF 波形を⽣生成する⽅方法 Remote IO
について 詳しく知りたい⼈人には この書籍が超お勧め! Remote IO について 詳しく知りたい⼈人には この書籍が超お勧め! 詳細は割愛詳細は割愛 絶版らしいのが悲しい絶版らしいのが悲しい
28.
DTMF 波形を⽣生成する⽅方法 ⼤大変お世話になっております。⼤大変お世話になっております。 超お勧めの Web
サイト超お勧めの Web サイト Objective-‐‑‒Audio Mac と iPhone でオーディオプログラミング Objective-‐‑‒Audio Mac と iPhone でオーディオプログラミング http://objective-audio.jp/http://objective-audio.jp/
29.
DTMF 波形を⽣生成する⽅方法 概要としては概要としては 1. Audio
Unit を初期化する 2. コールバック関数を登録する 3. Audio Unit を実行する 4. コールバック関数が呼ばれたら 波形データを計算してバッファに書 く 1. Audio Unit を初期化する 2. コールバック関数を登録する 3. Audio Unit を実行する 4. コールバック関数が呼ばれたら 波形データを計算してバッファに書 く
30.
DTMF 波形を⽣生成する⽅方法 波形データの書き込み波形データの書き込み 1. バッファに何秒目から何秒間のデータを 書き込むかはプログラマが管理する 2.
バッファが何秒間のデータかは サンプリングレートで判断できる 3. サンプリングレートとは 何個のデータで 1 秒の音を作るかを示す 1. バッファに何秒目から何秒間のデータを 書き込むかはプログラマが管理する 2. バッファが何秒間のデータかは サンプリングレートで判断できる 3. サンプリングレートとは 何個のデータで 1 秒の音を作るかを示す
31.
DTMF 波形を⽣生成する⽅方法 Remote IO
って ちょっと難しい Remote IO って ちょっと難しい
32.
DTMF 波形を⽣生成する⽅方法 Remote IO
の利利点Remote IO の利利点 1. 波形データを直接扱える 2. タイミングの細やかな調整が可能 3. 音声フォーマットの変換も可能 1. 波形データを直接扱える 2. タイミングの細やかな調整が可能 3. 音声フォーマットの変換も可能 ⾳音声データをネットワーク経由で 送信したいときにも威⼒力力を発揮する ⾳音声データをネットワーク経由で 送信したいときにも威⼒力力を発揮する
33.
DTMF ⾳音の再⽣生⽅方法2 サウンドファイルを ⽤用意して再⽣生する⽅方法 サウンドファイルを ⽤用意して再⽣生する⽅方法 2.2.
34.
サウンドファイルで再⽣生する⽅方法 DTMF サウンドファイルの ⽤用意の仕⽅方としては… DTMF サウンドファイルの ⽤用意の仕⽅方としては… 1.
サウンドエディタを使って生成する 2. インターネットでダウンロードする 1. サウンドエディタを使って生成する 2. インターネットでダウンロードする
35.
サウンドファイルで再⽣生する⽅方法 0 〜~ 9,
*, # だけで良良ければ0 〜~ 9, *, # だけで良良ければ サウンドファイルが iPhone 内に⽤用意されている サウンドファイルが iPhone 内に⽤用意されている
36.
サウンドファイルで再⽣生する⽅方法 /System/Library/Audio/UISounds/System/Library/Audio/UISounds • dtmf-0.caf • dtmf-1.caf •
dtmf-2.caf • dtmf-3.caf • dtmf-4.caf • dtmf-5.caf • dtmf-0.caf • dtmf-1.caf • dtmf-2.caf • dtmf-3.caf • dtmf-4.caf • dtmf-5.caf • dtmf-6.caf • dtmf-7.caf • dtmf-8.caf • dtmf-9.caf • dtmf-pound.caf • dtmf-star.caf • dtmf-6.caf • dtmf-7.caf • dtmf-8.caf • dtmf-9.caf • dtmf-pound.caf • dtmf-star.caf
37.
サウンドファイルで再⽣生する⽅方法 System Sound Services を使って再⽣生する System
Sound Services を使って再⽣生する サウンドファイルはサウンドファイルは
38.
サウンドファイルで再⽣生する⽅方法 NSString* path =
@"/System/Library/ Audio/UISounds/dtmf-1.caf"]; NSURL* url = [NSURL fileURLWithPath:path]; NSString* path = @"/System/Library/ Audio/UISounds/dtmf-1.caf"]; NSURL* url = [NSURL fileURLWithPath:path]; 1.AudioToolbox.framework を組み込む1.AudioToolbox.framework を組み込む 2.DTMF ファイルのパスを取得する2.DTMF ファイルのパスを取得する #import <AudioToolbox/AudioServices.h>#import <AudioToolbox/AudioServices.h>
39.
サウンドファイルで再⽣生する⽅方法 void soundCompletion(SystemSoundID sound, void*
clientData) { AudioServicesDisposeSystemSoundID( sound); } void soundCompletion(SystemSoundID sound, void* clientData) { AudioServicesDisposeSystemSoundID( sound); } 3.再⽣生終了了時にサウンドのリリース処理理を 実⾏行行する関数を⽤用意する 3.再⽣生終了了時にサウンドのリリース処理理を 実⾏行行する関数を⽤用意する
40.
サウンドファイルで再⽣生する⽅方法 SystemSoundID sound; AudioServicesCreateSystemSoundID( (__bridge CFURLRef)url,
&sound); SystemSoundID sound; AudioServicesCreateSystemSoundID( (__bridge CFURLRef)url, &sound); 4.URL からシステムサウンドを⽣生成する4.URL からシステムサウンドを⽣生成する 5.再⽣生終了了時に実⾏行行する関数を割り当てる5.再⽣生終了了時に実⾏行行する関数を割り当てる AudioServicesAddSystemSoundCompletio n(sound, NULL, NULL, soundCompletion, NULL); AudioServicesAddSystemSoundCompletio n(sound, NULL, NULL, soundCompletion, NULL);
41.
サウンドファイルで再⽣生する⽅方法 AudioServicesPlaySystemSound(sound);AudioServicesPlaySystemSound(sound); 6.サウンドを再⽣生する6.サウンドを再⽣生する
42.
DTMF を再⽣生する このような知識識を使って DTMF を再⽣生する このような知識識を使って DTMF
を再⽣生する
43.
DTMF を鳴らすアプリを作ってみた • 電話アプリに組み込む前に ⾳音だけ鳴らすテストアプリを作成 •
DTMF 記号を押すとその⾳音がなる • 信号送出時間と ミニマムポーズを調整可能 • 電話アプリに組み込む前に ⾳音だけ鳴らすテストアプリを作成 • DTMF 記号を押すとその⾳音がなる • 信号送出時間と ミニマムポーズを調整可能
44.
DTMF 活⽤用例例 そういえば!そういえば!
45.
DTMF 活⽤用例例 どこかの探偵アニメで DTMF を発声して電話をかける エピソードがありました どこかの探偵アニメで DTMF
を発声して電話をかける エピソードがありました
46.
DTMF 活⽤用例例 ⾳音の信号だから 実現可能 ⾳音の信号だから 実現可能
47.
DTMF 活⽤用例例 iPhone の電話帳を使って 固定電話で発信できそう iPhone
の電話帳を使って 固定電話で発信できそう
48.
DTMF を鳴らすアプリを改良良してみた • 電話帳から番号を選択可能にした •
販売したら買う⼈人もいるかも? ➡ テストアプリがお⼩小遣いになった • 電話帳から番号を選択可能にした • 販売したら買う⼈人もいるかも? ➡ テストアプリがお⼩小遣いになった テストアプリの機能強化テストアプリの機能強化
49.
DTMF 活⽤用例例 DTMF Dialler
が 完成しました。 DTMF Dialler が 完成しました。 iPhone の電話帳を使って 固定電話で電話がかけられます iPhone の電話帳を使って 固定電話で電話がかけられます
50.
フィードバック そんなある⽇日、 外国の⽅方からのフィードバックが そんなある⽇日、 外国の⽅方からのフィードバックが アイデアは良良いけど pause が使えないぜ! アイデアは良良いけど pause が使えないぜ! オレは連絡先の番号に pause
を使ってるのさ。 オレは連絡先の番号に pause を使ってるのさ。 ※ 意訳※ 意訳
51.
DTMF の付加価値 pause …
(´́・ω・`)?pause … (´́・ω・`)? なにそれなにそれ
52.
RFC 3601 Dial Sequences
and GSTN / E.164 Address 【pause】【pause】 • ⼀一時停⽌止を表す記号 • 記号は “p” で表記する • 通常は 1 秒間の休みを取る • ⼀一時停⽌止を表す記号 • 記号は “p” で表記する • 通常は 1 秒間の休みを取る ⼀一般的には “ , ” が使われる…?⼀一般的には “ , ” が使われる…?
53.
RFC 3601 Dial Sequences
and GSTN / E.164 Address 【tonewait】【tonewait】 • こちらも⼀一時停⽌止を表す記号 • 記号は “w” で表記する • 次に進む段階が来るまで待つ • こちらも⼀一時停⽌止を表す記号 • 記号は “w” で表記する • 次に進む段階が来るまで待つ ⼀一般的には “ ;; ” が使われる…?⼀一般的には “ ;; ” が使われる…?
54.
公開は宝物 公開するって 勉強になりますね 公開するって 勉強になりますね
55.
第2章 アイデアとの出逢いアイデアとの出逢い
56.
アイデアとの出逢い 第3回 iphone_̲dev_̲jp 東京 iPhone/Mac
懇親会 第3回 iphone_̲dev_̲jp 東京 iPhone/Mac 懇親会 あれはたしかあれはたしか での出来事での出来事
57.
神がかったアイデア光臨臨 これで再配達の 申し込みがしたい! これで再配達の 申し込みがしたい! これこそまさに 技術を出発点にしない発想 これこそまさに 技術を出発点にしない発想
58.
再配達アプリに緊急着⼿手 翌⽇日さっそく 再配達アプリ制作に着⼿手 翌⽇日さっそく 再配達アプリ制作に着⼿手 感銘を受けて感銘を受けて
59.
再配達アプリ完成 「⾳音で再配達」が 完成しました。 「⾳音で再配達」が 完成しました。 再配達の伝票がトーン⾳音になるので それを固定電話に聞かせて⼿手配完了了 再配達の伝票がトーン⾳音になるので それを固定電話に聞かせて⼿手配完了了
60.
再配達アプリ完成 iPod touch を愛⽤用の
さんには 使ってもらえないことが判明 iPod touch を愛⽤用の さんには 使ってもらえないことが判明 iPhone と iPod touch では スピーカーの⾳音が少し違うようで… iPhone と iPod touch では スピーカーの⾳音が少し違うようで… しかしまさかのしかしまさかの
61.
再配達アプリ完成 外部スピーカーを繋げば 使えたりします 外部スピーカーを繋げば 使えたりします iPod touch でもiPod
touch でも たとえば iHome iHM63 とかたとえば iHome iHM63 とか
62.
第3章 そして神アプリへそして神アプリへ
63.
再配達アプリもおかげさまで • 週刊アスキー PLUS
に 掲載されました • そしておかげさまで 外からの声が届いて参りました • 週刊アスキー PLUS に 掲載されました • そしておかげさまで 外からの声が届いて参りました
64.
何気ないご意⾒見見 iPhone のみで 操作が完結できたら 神アプリじゃない? iPhone のみで 操作が完結できたら 神アプリじゃない?
65.
気になるご意⾒見見 神アプリ…ですと!?神アプリ…ですと!?
66.
でも気になるご意⾒見見 さすがにそれは無理理でしょうさすがにそれは無理理でしょう
67.
それでも気になるご意⾒見見 それがもし 実現できるとしたら? それがもし 実現できるとしたら? こういうときこそ逆転の発想こういうときこそ逆転の発想 …って考えると良良いって どこかで聞いた事がある気がする …って考えると良良いって どこかで聞いた事がある気がする
68.
Think different. 今こそ…
69.
実現性の模索索1 iPhone の電話帳に pause を⼊入れて使ってるよ! iPhone
の電話帳に pause を⼊入れて使ってるよ! そういえば DTMF Dialler のフィードバックで そういえば DTMF Dialler のフィードバックで とおっしゃる⼈人が居ましたねとおっしゃる⼈人が居ましたね
70.
実現性の模索索2 pause といえば DTMF pause といえば DTMF
71.
実現性の模索索3 DTMF って そもそも電話の仕様でしたね… DTMF って そもそも電話の仕様でしたね…
72.
実現性の模索索4 iPhone って 電話でしたよね iPhone って 電話でしたよね
73.
わかったぞ…! 全ての謎が ⼀一本の線で繋がった !! 全ての謎が ⼀一本の線で繋がった !!
74.
iPhone の電話でも 普通に DTMF
が使えるはず! iPhone の電話でも 普通に DTMF が使えるはず!
75.
使えました使えました
76.
iPhone で DTMF
を使う NSURL* tel = [NSURL urlWithString: @"tel:05037869625,,,,1111”]; [[UIApplication sharedApplication] openURL:tel]; NSURL* tel = [NSURL urlWithString: @"tel:05037869625,,,,1111”]; [[UIApplication sharedApplication] openURL:tel]; tel: スキームを使って 番号と⼀一緒に “ , ” や “ ;; ” を使うだけ tel: スキームを使って 番号と⼀一緒に “ , ” や “ ;; ” を使うだけ iPhone に DTMF を送信するiPhone に DTMF を送信する
77.
iPhone で DTMF
を使う 1. iPhone の pause は 3 秒間の待ち 2. “*” と “#” は、それぞれ “%2a” と “%23” に置き換えて使う 1. iPhone の pause は 3 秒間の待ち 2. “*” と “#” は、それぞれ “%2a” と “%23” に置き換えて使う tel: スキーム使⽤用時の留留意点tel: スキーム使⽤用時の留留意点
78.
iPhone で DTMF
を使う 重要な制約重要な制約 tel: を呼び出すと 制御が電話アプリに遷る tel: を呼び出すと 制御が電話アプリに遷る 1度度だけの呼び出しで DTMF を遂⾏行行させる必要がある 1度度だけの呼び出しで DTMF を遂⾏行行させる必要がある
79.
こうして…こうして…
80.
神アプリが 完成しました 神アプリが 完成しました
81.
神アプリ完成 神アプリなので… 「⾳音で再配達ゴッド」 神アプリなので… 「⾳音で再配達ゴッド」 再配達の伝票を DTMF にして 必要な⼿手続きを⾃自動化します 再配達の伝票を
DTMF にして 必要な⼿手続きを⾃自動化します
82.
まとめまとめ
83.
まとめ DTMF とはDTMF とは 1.
DTMF は電話の仕様 2. ふたつの正弦波の合成⾳音 3. pause と tonewait がある 4. iPhone の電話でも使⽤用可能 1. DTMF は電話の仕様 2. ふたつの正弦波の合成⾳音 3. pause と tonewait がある 4. iPhone の電話でも使⽤用可能
84.
まとめ 制約としては制約としては 1. tel: を呼び出したら アプリには帰って来れない 2.
tel: を使わないなら 電話⼝口に⾳音を聞かせる必要がある 1. tel: を呼び出したら アプリには帰って来れない 2. tel: を使わないなら 電話⼝口に⾳音を聞かせる必要がある iPhone のヘッドフォン端⼦子で外部と連携できれば 制約もまた違ってくるかもしれません iPhone のヘッドフォン端⼦子で外部と連携できれば 制約もまた違ってくるかもしれません
85.
まとめ 電話の⽂文化としては 広く普及している技術ではあるので 電話の⽂文化としては 広く普及している技術ではあるので 条件が揃えば新しい何かに 応⽤用できるかもしれません 条件が揃えば新しい何かに 応⽤用できるかもしれません
86.
まとめ できないかも 知れないですけど できないかも 知れないですけど できるかは神のみぞ知るできるかは神のみぞ知る
Download