Submit Search
Upload
iOS 10 new Camera
•
0 likes
•
655 views
Gaprot
Follow
iOS 10 にて変更のあった Camera 周りの実装についてまとめました。
Read less
Read more
Mobile
Report
Share
Report
Share
1 of 25
Download now
Download to read offline
Recommended
Spresense Study meeting#1 How to use the Camera board
Spresense Study meeting#1 How to use the Camera board
義則 太田
猫でも分かる Control Rig UE4.25 版
猫でも分かる Control Rig UE4.25 版
エピック・ゲームズ・ジャパン Epic Games Japan
UE4を用いたTPS制作事例 EDF:IR パラメータ管理実装実例
UE4を用いたTPS制作事例 EDF:IR パラメータ管理実装実例
エピック・ゲームズ・ジャパン Epic Games Japan
UE4を用いたTPS制作事例 EDF:IR アニメーション作成事例紹介
UE4を用いたTPS制作事例 EDF:IR アニメーション作成事例紹介
エピック・ゲームズ・ジャパン Epic Games Japan
NEDO特別講座_画像処理・AI技術活用コース_前編
NEDO特別講座_画像処理・AI技術活用コース_前編
NEDOROBOMARC
多分わかりやすいDurable functions
多分わかりやすいDurable functions
宜行 武井
ビジュアルティーチ入門
ビジュアルティーチ入門
NEDOROBOMARC
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
エピック・ゲームズ・ジャパン Epic Games Japan
Recommended
Spresense Study meeting#1 How to use the Camera board
Spresense Study meeting#1 How to use the Camera board
義則 太田
猫でも分かる Control Rig UE4.25 版
猫でも分かる Control Rig UE4.25 版
エピック・ゲームズ・ジャパン Epic Games Japan
UE4を用いたTPS制作事例 EDF:IR パラメータ管理実装実例
UE4を用いたTPS制作事例 EDF:IR パラメータ管理実装実例
エピック・ゲームズ・ジャパン Epic Games Japan
UE4を用いたTPS制作事例 EDF:IR アニメーション作成事例紹介
UE4を用いたTPS制作事例 EDF:IR アニメーション作成事例紹介
エピック・ゲームズ・ジャパン Epic Games Japan
NEDO特別講座_画像処理・AI技術活用コース_前編
NEDO特別講座_画像処理・AI技術活用コース_前編
NEDOROBOMARC
多分わかりやすいDurable functions
多分わかりやすいDurable functions
宜行 武井
ビジュアルティーチ入門
ビジュアルティーチ入門
NEDOROBOMARC
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
エピック・ゲームズ・ジャパン Epic Games Japan
NEDO特別講座_画像処理・AI技術活用コース_後編
NEDO特別講座_画像処理・AI技術活用コース_後編
NEDOROBOMARC
UE4を用いたTPS制作事例 EDF:IR レベル構成について
UE4を用いたTPS制作事例 EDF:IR レベル構成について
エピック・ゲームズ・ジャパン Epic Games Japan
UE4における大規模レベル実装ワークフローとブループリント活用事例
UE4における大規模レベル実装ワークフローとブループリント活用事例
エピック・ゲームズ・ジャパン Epic Games Japan
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の歩き方
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の歩き方
エピック・ゲームズ・ジャパン Epic Games Japan
Game Creators Conference 2019 Koichi Miura
Game Creators Conference 2019 Koichi Miura
Koichi Miura
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
心 谷本
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の作り方
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の作り方
エピック・ゲームズ・ジャパン Epic Games Japan
Game Creators Conference 2019 Keiji Kikuchi
Game Creators Conference 2019 Keiji Kikuchi
Keiji Kikuchi
UE4におけるエフェクトの基本戦略事例 後半
UE4におけるエフェクトの基本戦略事例 後半
エピック・ゲームズ・ジャパン Epic Games Japan
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
心 谷本
3Dロボットビジョンプラットフォーム「RoVI」入門
3Dロボットビジョンプラットフォーム「RoVI」入門
NEDOROBOMARC
Swiftではじめる動画再生
Swiftではじめる動画再生
Yusuke Ariyoshi
iOSで動画からスクショを撮る方法
iOSで動画からスクショを撮る方法
Tomo Ita
Android Hacks - Hack30
Android Hacks - Hack30
Masanori Ohkawara
UIImagePickerController よもやま話
UIImagePickerController よもやま話
Kei Kusakari
Workspace ONE Windows 10 Management PoC Guide
Workspace ONE Windows 10 Management PoC Guide
Hamamatsu-cho Mobile Club(浜松町モバイル愛好会)
I phonedevws20121028ci filter
I phonedevws20121028ci filter
ZuQ9Nn
Android4.2徹底解剖!
Android4.2徹底解剖!
leverages_event
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
irgaly
HTML5 APIを使ったデモとソースの解説
HTML5 APIを使ったデモとソースの解説
Hideki Akiba
Android sdk manual_1.02
Android sdk manual_1.02
Tomohiro Kondo
Android sdk manual_1.02
Android sdk manual_1.02
Tomohiro Kondo
More Related Content
What's hot
NEDO特別講座_画像処理・AI技術活用コース_後編
NEDO特別講座_画像処理・AI技術活用コース_後編
NEDOROBOMARC
UE4を用いたTPS制作事例 EDF:IR レベル構成について
UE4を用いたTPS制作事例 EDF:IR レベル構成について
エピック・ゲームズ・ジャパン Epic Games Japan
UE4における大規模レベル実装ワークフローとブループリント活用事例
UE4における大規模レベル実装ワークフローとブループリント活用事例
エピック・ゲームズ・ジャパン Epic Games Japan
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の歩き方
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の歩き方
エピック・ゲームズ・ジャパン Epic Games Japan
Game Creators Conference 2019 Koichi Miura
Game Creators Conference 2019 Koichi Miura
Koichi Miura
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
心 谷本
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の作り方
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の作り方
エピック・ゲームズ・ジャパン Epic Games Japan
Game Creators Conference 2019 Keiji Kikuchi
Game Creators Conference 2019 Keiji Kikuchi
Keiji Kikuchi
UE4におけるエフェクトの基本戦略事例 後半
UE4におけるエフェクトの基本戦略事例 後半
エピック・ゲームズ・ジャパン Epic Games Japan
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
心 谷本
3Dロボットビジョンプラットフォーム「RoVI」入門
3Dロボットビジョンプラットフォーム「RoVI」入門
NEDOROBOMARC
What's hot
(11)
NEDO特別講座_画像処理・AI技術活用コース_後編
NEDO特別講座_画像処理・AI技術活用コース_後編
UE4を用いたTPS制作事例 EDF:IR レベル構成について
UE4を用いたTPS制作事例 EDF:IR レベル構成について
UE4における大規模レベル実装ワークフローとブループリント活用事例
UE4における大規模レベル実装ワークフローとブループリント活用事例
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の歩き方
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の歩き方
Game Creators Conference 2019 Koichi Miura
Game Creators Conference 2019 Koichi Miura
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の作り方
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の作り方
Game Creators Conference 2019 Keiji Kikuchi
Game Creators Conference 2019 Keiji Kikuchi
UE4におけるエフェクトの基本戦略事例 後半
UE4におけるエフェクトの基本戦略事例 後半
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
3Dロボットビジョンプラットフォーム「RoVI」入門
3Dロボットビジョンプラットフォーム「RoVI」入門
Similar to iOS 10 new Camera
Swiftではじめる動画再生
Swiftではじめる動画再生
Yusuke Ariyoshi
iOSで動画からスクショを撮る方法
iOSで動画からスクショを撮る方法
Tomo Ita
Android Hacks - Hack30
Android Hacks - Hack30
Masanori Ohkawara
UIImagePickerController よもやま話
UIImagePickerController よもやま話
Kei Kusakari
Workspace ONE Windows 10 Management PoC Guide
Workspace ONE Windows 10 Management PoC Guide
Hamamatsu-cho Mobile Club(浜松町モバイル愛好会)
I phonedevws20121028ci filter
I phonedevws20121028ci filter
ZuQ9Nn
Android4.2徹底解剖!
Android4.2徹底解剖!
leverages_event
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
irgaly
HTML5 APIを使ったデモとソースの解説
HTML5 APIを使ったデモとソースの解説
Hideki Akiba
Android sdk manual_1.02
Android sdk manual_1.02
Tomohiro Kondo
Android sdk manual_1.02
Android sdk manual_1.02
Tomohiro Kondo
ビジュアルスクリプティングシステムBoltを使ってみよう 2回目
ビジュアルスクリプティングシステムBoltを使ってみよう 2回目
Unity Technologies Japan K.K.
6秒動画アプリ Vineの作り方
6秒動画アプリ Vineの作り方
Hiramatsu Ryosuke
SIerによるSIerのためのRaspberry Pi 入門4 (タイムラプス、Lチカ)
SIerによるSIerのためのRaspberry Pi 入門4 (タイムラプス、Lチカ)
catmoney
animation1.0
animation1.0
sleipnir002
【Alfresco勉強会】インストール手順書(windows azure)
【Alfresco勉強会】インストール手順書(windows azure)
マジセミ by (株)オープンソース活用研究所
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
NTT DATA OSS Professional Services
[G-Tech2015]Microsoft Azureを使った災害復旧の基礎[講演資料]
[G-Tech2015]Microsoft Azureを使った災害復旧の基礎[講演資料]
Trainocate Japan, Ltd.
[iOS 8] iOS8勉強会 PhotoKit
[iOS 8] iOS8勉強会 PhotoKit
Shingo Hiraya
AppStoreのアプリ動画App Previewsの作り方
AppStoreのアプリ動画App Previewsの作り方
Kosuke Ogawa
Similar to iOS 10 new Camera
(20)
Swiftではじめる動画再生
Swiftではじめる動画再生
iOSで動画からスクショを撮る方法
iOSで動画からスクショを撮る方法
Android Hacks - Hack30
Android Hacks - Hack30
UIImagePickerController よもやま話
UIImagePickerController よもやま話
Workspace ONE Windows 10 Management PoC Guide
Workspace ONE Windows 10 Management PoC Guide
I phonedevws20121028ci filter
I phonedevws20121028ci filter
Android4.2徹底解剖!
Android4.2徹底解剖!
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
HTML5 APIを使ったデモとソースの解説
HTML5 APIを使ったデモとソースの解説
Android sdk manual_1.02
Android sdk manual_1.02
Android sdk manual_1.02
Android sdk manual_1.02
ビジュアルスクリプティングシステムBoltを使ってみよう 2回目
ビジュアルスクリプティングシステムBoltを使ってみよう 2回目
6秒動画アプリ Vineの作り方
6秒動画アプリ Vineの作り方
SIerによるSIerのためのRaspberry Pi 入門4 (タイムラプス、Lチカ)
SIerによるSIerのためのRaspberry Pi 入門4 (タイムラプス、Lチカ)
animation1.0
animation1.0
【Alfresco勉強会】インストール手順書(windows azure)
【Alfresco勉強会】インストール手順書(windows azure)
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
[G-Tech2015]Microsoft Azureを使った災害復旧の基礎[講演資料]
[G-Tech2015]Microsoft Azureを使った災害復旧の基礎[講演資料]
[iOS 8] iOS8勉強会 PhotoKit
[iOS 8] iOS8勉強会 PhotoKit
AppStoreのアプリ動画App Previewsの作り方
AppStoreのアプリ動画App Previewsの作り方
More from Gaprot
AR開発高速化!「CFA」作りました!
AR開発高速化!「CFA」作りました!
Gaprot
Unity + iOS/Android VR ことはじめ
Unity + iOS/Android VR ことはじめ
Gaprot
1201 ギャップロ軍団企画書
1201 ギャップロ軍団企画書
Gaprot
Speech Framework
Speech Framework
Gaprot
SiriKit iOS10
SiriKit iOS10
Gaprot
Proactive Suggestions
Proactive Suggestions
Gaprot
New Notification API in iOS 10
New Notification API in iOS 10
Gaprot
HTML5 + JavaScriptでDRMつきMPEG-DASHを再生させる
HTML5 + JavaScriptでDRMつきMPEG-DASHを再生させる
Gaprot
Aiマッシュアップ委員会 仕様説明資料
Aiマッシュアップ委員会 仕様説明資料
Gaprot
GoF のデザインパターンじゃないけど、よくあるパターン
GoF のデザインパターンじゃないけど、よくあるパターン
Gaprot
Java の Collection 関連について整理してみました
Java の Collection 関連について整理してみました
Gaprot
Salmon Hunt
Salmon Hunt
Gaprot
SONY Camera Remote API
SONY Camera Remote API
Gaprot
「バグあるある」と「仕様変更あるある」一挙大放出SP!
「バグあるある」と「仕様変更あるある」一挙大放出SP!
Gaprot
More from Gaprot
(14)
AR開発高速化!「CFA」作りました!
AR開発高速化!「CFA」作りました!
Unity + iOS/Android VR ことはじめ
Unity + iOS/Android VR ことはじめ
1201 ギャップロ軍団企画書
1201 ギャップロ軍団企画書
Speech Framework
Speech Framework
SiriKit iOS10
SiriKit iOS10
Proactive Suggestions
Proactive Suggestions
New Notification API in iOS 10
New Notification API in iOS 10
HTML5 + JavaScriptでDRMつきMPEG-DASHを再生させる
HTML5 + JavaScriptでDRMつきMPEG-DASHを再生させる
Aiマッシュアップ委員会 仕様説明資料
Aiマッシュアップ委員会 仕様説明資料
GoF のデザインパターンじゃないけど、よくあるパターン
GoF のデザインパターンじゃないけど、よくあるパターン
Java の Collection 関連について整理してみました
Java の Collection 関連について整理してみました
Salmon Hunt
Salmon Hunt
SONY Camera Remote API
SONY Camera Remote API
「バグあるある」と「仕様変更あるある」一挙大放出SP!
「バグあるある」と「仕様変更あるある」一挙大放出SP!
iOS 10 new Camera
1.
Copyright © Up-frontier,
Inc. All rights reserved. iOS 10 new Camera 1
2.
Copyright © Up-frontier,
Inc. All rights reserved. ⽬次 1. カメラ機能について 2. AVCapturePhotoOutput 3. AVCapturePhotoSettings 4. 実装 5. iPhone7Plus のデュアルカメラ 2
3.
Copyright © Up-frontier,
Inc. All rights reserved. カメラ機能について 3
4.
Copyright © Up-frontier,
Inc. All rights reserved. 従来の⽅法 従来 iOS で写真撮影といえば UIImagePickerController AVFoundation を使⽤する⽅法の2つが良く使われる 4
5.
Copyright © Up-frontier,
Inc. All rights reserved. 従来の⽅法 従来 iOS で写真撮影といえば UIImagePickerController AVFoundation を使⽤する⽅法の2つが良く使われる 今回のメインはコレ 5
6.
Copyright © Up-frontier,
Inc. All rights reserved. iOS 10 は? iOS 10 では AVFoundation の中の AVCaptureStillImageOutput が deprecated に なった そのため別な⽅法として AVCapturePhotoOutput を使⽤する 6
7.
Copyright © Up-frontier,
Inc. All rights reserved. AVCapturePhotoOutput 7
8.
Copyright © Up-frontier,
Inc. All rights reserved. AVCapturePhotoOutput とは 静⽌画撮影をサポートする AVCaptureOutput のサブクラス AVCaptureStillImageOutput の代わりとして使⽤ 様々なインターフェースが実装されている 使⽤可能なのは iOS 10 から 8
9.
Copyright © Up-frontier,
Inc. All rights reserved. 撮影 AVCapturePhotoOutput の capturePhoto 呼ぶ際にデータを作成するための設定を渡す AVCapturePhotoSettings AVCapturePhotoCaptureDelegate 9
10.
Copyright © Up-frontier,
Inc. All rights reserved. 撮影 AVCapturePhotoOutput の capturePhoto 呼ぶ際にデータを作成するための設定を渡す AVCapturePhotoSettings AVCapturePhotoCaptureDelegate 画像効果等の設定 10
11.
Copyright © Up-frontier,
Inc. All rights reserved. 撮影 AVCapturePhotoOutput の capturePhoto 呼ぶ際にデータを作成するための設定を渡す AVCapturePhotoSettings AVCapturePhotoCaptureDelegate 画像効果等の設定 結果の返ってくる Delegate 11
12.
Copyright © Up-frontier,
Inc. All rights reserved. AVCapturePhotoSettings 12
13.
Copyright © Up-frontier,
Inc. All rights reserved. AVCapturePhotoSettings とは 写真のキャプチャに関する設定を記述する 画像に対しての効果などもここに記述 フラッシュのモード ハイレゾの使⽤ 13
14.
Copyright © Up-frontier,
Inc. All rights reserved. AVCapturePhotoSettings とは このインスタンスは使い回しができない 使い回しをしようとすると例外が発⽣ 再利⽤するためのメソッドが⽤意してある init(from:) に使い回したい settings を渡す 14
15.
Copyright © Up-frontier,
Inc. All rights reserved. 実装 15
16.
Copyright © Up-frontier,
Inc. All rights reserved. AVCaptureSession の設定 基本的なコードは従来と変わらない session = AVCaptureSession() session?.sessionPreset = AVCaptureSessionPresetPhoto videoPreviewLayer = AVCaptureVideoPreviewLayer(session: session) guard let _videoPreviewLayer = videoPreviewLayer else {return} _videoPreviewLayer.frame = self.view.frame _videoPreviewLayer.masksToBounds = true _videoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill self.view.layer.addSublayer(_videoPreviewLayer) let device = AVCaptureDevice.defaultDevice(withDeviceType: AVCaptureDeviceType.builtInWideAngleCamera, mediaType: AVMediaTypeVideo, position: AVCaptureDevicePosition.back) let input = try! AVCaptureDeviceInput(device: device) session?.addInput(input) photoOutput = AVCapturePhotoOutput() session?.addOutput(photoOutput) session?.startRunning() 16
17.
Copyright © Up-frontier,
Inc. All rights reserved. AVCaptureSession の設定 基本的なコードは従来と変わらない session = AVCaptureSession() session?.sessionPreset = AVCaptureSessionPresetPhoto videoPreviewLayer = AVCaptureVideoPreviewLayer(session: session) guard let _videoPreviewLayer = videoPreviewLayer else {return} _videoPreviewLayer.frame = self.view.frame _videoPreviewLayer.masksToBounds = true _videoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill self.view.layer.addSublayer(_videoPreviewLayer) let device = AVCaptureDevice.defaultDevice(withDeviceType: AVCaptureDeviceType.builtInWideAngleCamera, mediaType: AVMediaTypeVideo, position: AVCaptureDevicePosition.back) let input = try! AVCaptureDeviceInput(device: device) session?.addInput(input) photoOutput = AVCapturePhotoOutput() session?.addOutput(photoOutput) session?.startRunning() AVCapture Session の設定 17
18.
Copyright © Up-frontier,
Inc. All rights reserved. AVCaptureSession の設定 基本的なコードは従来と変わらない session = AVCaptureSession() session?.sessionPreset = AVCaptureSessionPresetPhoto videoPreviewLayer = AVCaptureVideoPreviewLayer(session: session) guard let _videoPreviewLayer = videoPreviewLayer else {return} _videoPreviewLayer.frame = self.view.frame _videoPreviewLayer.masksToBounds = true _videoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill self.view.layer.addSublayer(_videoPreviewLayer) let device = AVCaptureDevice.defaultDevice(withDeviceType: AVCaptureDeviceType.builtInWideAngleCamera, mediaType: AVMediaTypeVideo, position: AVCaptureDevicePosition.back) let input = try! AVCaptureDeviceInput(device: device) session?.addInput(input) photoOutput = AVCapturePhotoOutput() session?.addOutput(photoOutput) session?.startRunning() AVCapture Session の設定 プレビューを表⽰する⽤の レイヤー作成 18
19.
Copyright © Up-frontier,
Inc. All rights reserved. AVCaptureSession の設定 基本的なコードは従来と変わらない session = AVCaptureSession() session?.sessionPreset = AVCaptureSessionPresetPhoto videoPreviewLayer = AVCaptureVideoPreviewLayer(session: session) guard let _videoPreviewLayer = videoPreviewLayer else {return} _videoPreviewLayer.frame = self.view.frame _videoPreviewLayer.masksToBounds = true _videoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill self.view.layer.addSublayer(_videoPreviewLayer) let device = AVCaptureDevice.defaultDevice(withDeviceType: AVCaptureDeviceType.builtInWideAngleCamera, mediaType: AVMediaTypeVideo, position: AVCaptureDevicePosition.back) let input = try! AVCaptureDeviceInput(device: device) session?.addInput(input) photoOutput = AVCapturePhotoOutput() session?.addOutput(photoOutput) session?.startRunning() AVCapture Session の設定 プレビューを表⽰する⽤の レイヤー作成 デバイスの設定 19
20.
Copyright © Up-frontier,
Inc. All rights reserved. AVCaptureSession の設定 基本的なコードは従来と変わらない session = AVCaptureSession() session?.sessionPreset = AVCaptureSessionPresetPhoto videoPreviewLayer = AVCaptureVideoPreviewLayer(session: session) guard let _videoPreviewLayer = videoPreviewLayer else {return} _videoPreviewLayer.frame = self.view.frame _videoPreviewLayer.masksToBounds = true _videoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill self.view.layer.addSublayer(_videoPreviewLayer) let device = AVCaptureDevice.defaultDevice(withDeviceType: AVCaptureDeviceType.builtInWideAngleCamera, mediaType: AVMediaTypeVideo, position: AVCaptureDevicePosition.back) let input = try! AVCaptureDeviceInput(device: device) session?.addInput(input) photoOutput = AVCapturePhotoOutput() session?.addOutput(photoOutput) session?.startRunning() 実際に変わるのはここ! 20
21.
Copyright © Up-frontier,
Inc. All rights reserved. コード func takePicture(){ let settingsForMonitoring = AVCapturePhotoSettings() settingsForMonitoring.flashMode = .auto settingsForMonitoring.isAutoStillImageStabilizationEnabled = true settingsForMonitoring.isHighResolutionPhotoEnabled = false // settings と delegate を渡す photoOutput?.capturePhoto(with: settingsForMonitoring, delegate: self) } extension ViewController:AVCapturePhotoCaptureDelegate{ func capture(_ captureOutput: AVCapturePhotoOutput, didFinishProcessingPhotoSampleBuffer photoSampleBuffer: CMSampleBuffer?, previewPhotoSampleBuffer: CMSampleBuffer?, resolvedSettings: AVCaptureResolvedPhotoSettings, bracketSettings: AVCaptureBracketedStillImageSettings?, error: Error?) { /* ~~ ここでデータを保存したり画像の加⼯を⾏う ~~*/ } } 21
22.
Copyright © Up-frontier,
Inc. All rights reserved. コード func takePicture(){ let settingsForMonitoring = AVCapturePhotoSettings() settingsForMonitoring.flashMode = .auto settingsForMonitoring.isAutoStillImageStabilizationEnabled = true settingsForMonitoring.isHighResolutionPhotoEnabled = false // settings と delegate を渡す photoOutput?.capturePhoto(with: settingsForMonitoring, delegate: self) } extension ViewController:AVCapturePhotoCaptureDelegate{ func capture(_ captureOutput: AVCapturePhotoOutput, didFinishProcessingPhotoSampleBuffer photoSampleBuffer: CMSampleBuffer?, previewPhotoSampleBuffer: CMSampleBuffer?, resolvedSettings: AVCaptureResolvedPhotoSettings, bracketSettings: AVCaptureBracketedStillImageSettings?, error: Error?) { /* ~~ ここでデータを保存したり画像の加⼯を⾏う ~~*/ } } ここでAVCapturePhotoSettings を設定している 22
23.
Copyright © Up-frontier,
Inc. All rights reserved. iPhone 7 Plus の デュアルカメラ 23
24.
Copyright © Up-frontier,
Inc. All rights reserved. デュアルカメラ • iPhone 7 plus には背⾯に 2 つのカメラがついて る • カメラアプリでそれらを指定して使⽤することが出 来るのかどうか確認した 24
25.
Copyright © Up-frontier,
Inc. All rights reserved. ⽚⽅のカメラの指定 AVCaptureDevice.defaultDevice(withDeviceType: mediaType: position:) 上記メソッドの withDeviceType に設定 builtInWideAngleCamera : 左カメラ builtInTelephotoCamera : 右カメラ 指定しない版のメソッドなら左カメラ 25
Download now