์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
- arkit
- Xcode
- ios
- raywenderlich
- BOJ
- UIKit
- RxSwift
- node.js
- realm
- designpattern
- MVVM
- Kuring
- SwiftUI
- Flutter
- XCTest
- tableView
- swift
- Swfit
- SnapKit
- Lv2
- reactorkit
- ๋ฐฑ์ค
- CollectionView
- ํ๋ก๊ทธ๋๋จธ์ค
- TCA
- combine
- rxcocoa
- BFS
- visionOS
- ํจ์คํธ์บ ํผ์ค
- Today
- Total
lgvv98
๐ธ ch 18 AVFoundation ์นดํ ๊ณ ๋ฆฌ ๋ณ๋ก ํ๊ตฌ ๋ณธ๋ฌธ
๐ธ ch 18 AVFoundation ์นดํ ๊ณ ๋ฆฌ ๋ณ๋ก ํ๊ตฌ
๐ฅ ์บ๋ฟ๋งจ 2021. 7. 5. 16:28โ ์นด๋ฉ๋ผ ์ฑ์ ๋ง๋ค๊ธฐ ์ํ ๊ฐ๋ ๋ค์ ํ๋ฒ ๋ณผ๊น?
์นด๋ฉ๋ผ ์ฑ์ ๋ง๋ค๋ ํ์ํ ์์๋ค์ ๊ฐ์ ธ์์ผํ๋๋ฐ ์ด๊ฒ ๋ฐ๋ก AVFoundation ์ด๋ค.
AVFoundation์ ๋น๋์ค, ์ค๋์ค ๋ฑ์ ํนํ๋ ๊ณต๊ตฌํจ์ด๋ค. ์ฝ๊ฒ ์๊ฐํด์ ๋ฉํฐ๋ฏธ๋์ด ๊ด๋ จํ ๊ฒ์ ์ด๊ฑฐ ์ฌ์ฉํ๋ค๋ผ๊ณ ์๊ฐํ๊ธฐ!
์บก์ณ๋ง, ํ๋ก์ธ์ฑ, ํฉ์ฑ, ์ถ์ถ ๋ฑ... ์ ์ ๊ณตํ๊ณ ์๋ค.
1. Playback and Editing : ๋ฏธ๋์ด ํ์ผ์ ์คํ๊ณผ ํธ์ง์ ์ ๊ณต.
2. Media Capture : ์ฌ์ง์ ์ฐ๊ฑฐ๋ ์ ์ฅํ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ๋ฅ์ ๊ฐ๊ณ ์๋ค.
3. Audio : ์ค๋์ค ๊ธฐ๋ฅ๋ ํนํ๋์ Garage Band ๊ฐ์ ๊ฒ๋ค๋ ์ง์ํ๊ณ ์๋ค.
4. Speech : ์ฐ๋ฆฌ๋ค์ ๋ชฉ์๋ฆฌ๋ฅผ ํ ์คํธ๋ก ์ ํํด์ฃผ๋ ๋๊ตฌ๋ ๊ฐ๊ณ ์์ด (Speech to Text)
์ฌ๊ธฐ๊น์ง๊ฐ AVFoundation ํ๋ ์์ํฌ๋ฅผ ๊ฐ๋ตํ ๋ณด์๋ค.
โ ๊ทธ๋ ๋ค๋ฉด ์ด๋ฒ์๋ ์นด๋ฉ๋ผ ๊ธฐ๋ฅ์ ๊ตฌํํ๋๋ฐ ์์ด์ Media Capture ๋ถ๋ถ์ ์กฐ๊ธ ๋ ์ง์คํด์ ๋ณผ๊น?
1. ์์คํ ์์๋ ๊ธฐ๋ณธ์ ์ธ ์นด๋ฉ๋ผ ๊ธฐ๋ฅ์ ์ ๊ณตํด์ฃผ๊ธฐ๋ ํ๋ ์ฐ๋ฆฌ๋ ์ปค์คํ ํ๊ณ ์ถ์๋ ์ฌ์ฉํ๋ค.
2. ํฌ์ปค์ค๋ ๋ ธ์ถ์ ๋ณด, ํ๋ค๋ฆผ ์ ๋ณด ๋ฑ์ ์ง์ ์ปจํธ๋กค ํ๊ณ ์ถ์๋ ์ฌ์ฉํ๋ค.
3. ์ฌ์ง๊ณผ ๋น๋์ค์ ๊ฒฐ๊ณผ๋ฌผ์ ์ฐ๋ฆฌ๊ฐ ์ปค์คํ ํ๊ณ ์ถ์๋ ์ฌ์ฉํ๋ค.
- ์๋ฅผ ๋ค๋ฉด, ์ํฐ๋งํฌ๋ฅผ ๋ฃ๊ฑฐ๋ ์๋ง์ ๋ฃ๊ฑฐ๋ ๋ฑ์ ํ ๋๋ ์นด๋ฉ๋ผ๋ฅผ ์ง์ ๋ง๋ค์ด์ผ ํ๋ค.
4. ์นด๋ฉ๋ผ๋ก ๋ถํฐ ๋ค์ด์ค๋ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฉํด์ ์ง์ ์ฒ๋ฆฌํ๊ณ ์ถ์๋ ์ฌ์ฉํ๋ค.
- ์๋ฅผ ๋ค๋ฉด, ํํฐ๋ ์ด๋ชจ์ง ๋ฑ์ ๋ฃ๊ณ ์ถ์ ๋
์ด๋ฌํ ๋ชฉ์ ์ด ์๋๋ผ๋ฉด ์์คํ ์์ ์ ๊ณตํด์ฃผ๋ ์นด๋ฉ๋ผ๋ฅผ ๊ทธ๋ฅ ์ฌ์ฉํด๋ ๋ผ.
์ด๋ป๊ฒ ์ฌ์ฉํ๋๋ฉด
UIImagePickerController๋ฅผ ํตํด์ ์์คํ ์นด๋ฉ๋ผ๋ฅผ ๊ฐ์ ธ๋ค ์ฌ์ฉํ ์ ์์ด.
์ฐ๋ฆฌ๋ ์ด์ ์ ์ด๋ ์ปค์คํ ์ผ๋ก ๋ง๋ค๊ณ ์ถ๋ค ๋ณด๋ ๋ฐ๋ฐ๋ฅ ๋ถํฐ ์นด๋ฉ๋ผ๋ฅผ ์ง์ ๋ง๋ค์ด์ผ ๊ฒ ์ง?
๋ฐ๋ฐ๋ฅ๋ถํฐ ๋ง๋ค๋ ค๋ฉด Media Capture๋ฅผ ์์์ผ ํ๋๋ฐ
โ Media Capture์ ๊ด๋ จํ์ฌ ์ค์ํ ๊ตฌ์กฐ 3๊ฐ์ง!!
1. AVCaptureSession
2. AVCatureDeviceInput
3. AVCatureOutput
์ด ์ธ๊ฐ์ง๊ฐ ๊ทธ๋ผ ๊ตฌ์ฑ์ ์ด๋ป๊ฒ ๋ ๊น?
๊ทธ๋ ๋ค๋ฉด ๋ค์ ๋์๊ฐ์ ๊ฐ๊ฐ์ ๊ตฌ์ฑ์์๊ฐ ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง ์์๋ณผ๊น?
1. AVCaptureSession : ์นด๋ฉ๋ผ๋ ๋ง์ดํฌ ๊ฐ์ ์ธํ์์ ๋ค์ด์ค๋ ๋น๋์ค ์ค๋์ค ๋ฐ์ดํฐ๋ฅผ ์์ํ์ผ๋ก ์ฐ๊ฒฐํด์ฃผ๋ ์ค๊ฐ์ญํ ์ ํด์ค๋ค.
2. AVCatureDeviceInput : ์ฃผ๋ก ๋ฏธ๋์ด ์์ค๋ฅผ ์ ๊ณตํด์ฃผ๋ ์นด๋ฉ๋ผ๋ ๋ง์ดํฌ ๊ฐ์ ๊ฒ์ด ํด๋น๋๋ค.
3. AVCatureOutput : ์ธํ์ ๋ค์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ์ฐ๋์ง ํด์ผํ ํ ๋ฐ, ์ด๋ ์ฌ๊ธฐ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด์ ํ๋ฉด ๋ผ.
โ ๊ทธ๋ผ ์ด๋ฒ์๋ ์ฌ์ฉ์ ๊ถํ ์์ฒญ์ ๋ํ ์ดํด๋ฅผ ํ๋ฒ ํด๋ณด๋๋ก ํ ๊น?
์ฐ๋ฆฌ๊ฐ ์์ ๋งํ๋ฏ์ด AVCatureDeviceInput์ ์นด๋ฉ๋ผ์ ๋ง์ดํฌ์ ๋์๋๋ ๊ฒ์ด๋ผ๊ณ ํ๋๋ฐ, ์ ํ ๊ฐ์ ๊ฒฝ์ฐ๋ ์ฐ๋ฆฌ๊ฐ ์ ์๋ค์ถ์ด privacy์ ๋ฏผ๊ฐํ ํ์ฌ์ด๋ค ๋ณด๋ ์ฌ์ฉ์์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ค๋ ๋ถ๋ถ์ ์์ด์ ๋ช ์์ ์ผ๋ก ์ฌ์ฉ์์๊ฒ ํ๋ฝ์ ๋งก๊ณ ์ฌ์ฉํ๋ผ๊ณ ๊ฐ์ด๋๋ฅผ ์ฃผ๊ณ ์์ด.
์ฌ์ฉ์์๊ฒ ํ๋ฝ์ ๋งก๊ณ ์จ์ผํ๋๋ฐ Permission์ ๋ํด์ ํ๋ฒ ๋ณด์.
Info.plist ์์ ํด๋นํ๋ ๋ฉ์์ง์ ๊ถํ๋ค์ ์ถ๊ฐํด์ค์ผ ํ๋ค.
์ด๋ ๊ฒ ํด์ฃผ๋ฉด ์ฌ์ฉ์์๊ฒ ๊ถํ์ ์์ฒญํ๋ ์๋ฟ์ด ๋จ๊ฒ ๋๋ค.
์ดํ ์๋์ ์ฝ๋๋ ๊ถํ์ ๋ฐ๋ผ ์ฐ๋ฆฌ๊ฐ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊ฑด์ง์ ๋ํ ์ฝ๋์ธ๋ฐ, ์์ธํ๋ ๋์ค์ ์์๋ณด๊ณ ์ด๋ ๊ฒ ์ฒ๋ฆฌํ๋ค๊ณ ์ ๋๋ง ๊ฐ๋ตํ ๋ณด๊ณ ๋์ด๊ฐ์
์ฌ์ง ์ ์ฅ ์ ์๋ photo library์ permission ๊ถํ์ ์์ฒญํด์ผ ํ๋ค.
๋ํ ์ฌ์ง์ ์ ์ฅํ๋ ๊ฒ์ ์์ด์๋ ๊ถํ์ ์์ฒญํด์ผ ํ๋๋ฐ
์์ ์ฌ์ง ์ฝ๋๋ค์ ์ ํ ๋คํ๋จผํธ์์ ์ ๊ณตํด์ฃผ๋ ์ฝ๋๋ค์ด๋ค!
โ๏ธ๊ทธ๋์ ์ค์ํ๊ฑฐ๋ Info.plist์ permission ๊ด๋ จํ ๊ฒ๋ค์ ๊ผญ ๋ฃ์ด์ผ ํ๋ค!!
๋ท ๋ถ๋ถ์ string์ด ์ฌ์ฉ์์๊ฒ ๊ถํ์ ์ป๊ธฐ ์ํด ๋ณด์ฌ์ง๋ ๋ฌธ๊ตฌ
'โ ๏ธ deprecated โ ๏ธ > ํจ์บ (์ฌ์ธ์)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ch19 ๐ค CoreML (0) | 2021.07.19 |
---|---|
๐ธ ch18 FullScreen ์นด๋ฉ๋ผ ์ฑ ์ฝ๋๋ฆฌ๋ทฐ (0) | 2021.07.06 |
๐ฌ ch17 Netflix ํ์ฅ์ฑ ์ฝ๋๋ฆฌ๋ทฐ(firebase, kingfisher) + ch15 (0) | 2021.07.05 |
ch17 ๋์ ScrollView Guide! ์ํ์ข์ฐ!! (0) | 2021.06.29 |
๐ผ ch15 ๊ฒ์์ ์ด์ฉํด ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ํ์ฑ๊น์ง! (0) | 2021.06.29 |