iOS端末上の写真や動画に対して、簡単にメタデータを付与するためのSDKです。
MediaMetada-iOS
は以下の環境での動作を保証しています。
- iOS 12.1+
- Xcode 10.1+
- Swift 4.2+
MediaMetada-iOS
はCarthageでの導入にのみ対応しています。
Carthageを使ってMediaMetada-iOS
をXcodeプロジェクトに導入するには、Cartfile
で以下の文言を指定してください。
github "falcon0328/MediaMetadata-iOS"
MediaMetadata-iOS
の実際の利用手順を以下に記載します。
import Photos
let assets = PHAsset.fetchAssets(with: nil)
MediaLibrary
クラスのload
メソッドにPHFetchResult<PHAsset>
を与えることでカメラロールの写真や動画や音声を独自のMedia
プロトコル(以下、メディア)にマッピングして提供します。
(※ MediaLibrary
はシングルトン専用なのでshared
プロパティから各種操作を行ってください。)
let mediaList = MediaLibrary.load(assets: assets)
let media = mediaList.first!
media.getData(completionHandler: @escaping (Data?) -> Void)
media.getMetadata(completionHandler: @escaping ([MetadataKey : Metadata]) -> Void)
(※ ただし、これらのメソッドは非同期です。)
メタデータの読み/書きは read/write メソッドからできます。メタデータは、データを内部的に[String: Any]
として管理しています。
(※ 例えば写真のメタデータはExifやTIFFなどがあり、これらもMetadata型のデータとして表現します。)
メタデータを際には、メディアのsetMetadata(key: MetadataKey, value: Metadata)
を利用します。
メディアのsave(completionHandler: @escaping (Bool, Error?) -> Void)
メソッドを呼ぶことでカメラロールに新しいデータとしてメタデータ付きで保存されます。
MediaMetada-iOS
は以下のクラス図をもとに実装されています。
MediaMetadataSDK
のクラスリファレンスはこちらより参照できます。
MediaMetada-iOS
は MIT LICENSE です。詳細はMIT Licenseを参照ください。
MediaMetadata-iOS
は Falcon Techの活動で作成されています。PRやご要望(Issue)もお待ちしております。
Issueを新規作成して、メンションをつけていただければ回答させていただきます。