iOS端末上の写真や動画に対して、簡単にメタデータを付与するためのSDK
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
Carthage/Build
MediaMetadata.xcodeproj
MediaMetadata
MediaMetadataSDK
MediaMetadataSDKTests
MediaMetadataTests
MediaMetadataUITests
docs
.gitignore
.jazzy.yaml
FalconTech.jpg
LICENSE
MediaMetadata-class.png
MediaMetadata-class.xml
README.md

README.md

MediaMetadata-iOS

iOS端末上の写真や動画に対して、簡単にメタデータを付与するためのSDKです。

Carthage compatible MIT License iOS Xcode language

インストール条件

MediaMetada-iOSは以下の環境での動作を保証しています。

  • iOS 12.1+
  • Xcode 10.1+
  • Swift 4.2+

導入方法

MediaMetada-iOSはCarthageでの導入にのみ対応しています。

Carthage

Carthageを使ってMediaMetada-iOSをXcodeプロジェクトに導入するには、Cartfileで以下の文言を指定してください。

github "falcon0328/MediaMetadata-iOS"

利用方法

MediaMetadata-iOSの実際の利用手順を以下に記載します。

1. Photos.frameworkをインポートします

import Photos

2. PHAssetをフェッチ

let assets = PHAsset.fetchAssets(with: nil)

3. Media 型の配列を取得できます。

MediaLibraryクラスのloadメソッドにPHFetchResult<PHAsset>を与えることでカメラロールの写真や動画や音声を独自のMediaプロトコル(以下、メディア)にマッピングして提供します。

(※ MediaLibraryはシングルトン専用なのでsharedプロパティから各種操作を行ってください。)

let mediaList = MediaLibrary.load(assets: assets)

4. メディアからは以下のような形式でメタデータやData型のデータとして取得できます。

let media = mediaList.first!
media.getData(completionHandler: @escaping (Data?) -> Void)
media.getMetadata(completionHandler: @escaping ([MetadataKey : Metadata]) -> Void)

(※ ただし、これらのメソッドは非同期です。)

5. メタデータの読み込みや編集

メタデータの読み/書きは read/write メソッドからできます。メタデータは、データを内部的に[String: Any]として管理しています。 (※ 例えば写真のメタデータはExifやTIFFなどがあり、これらもMetadata型のデータとして表現します。)

6. メタデータをメディアに書き込む

メタデータを際には、メディアのsetMetadata(key: MetadataKey, value: Metadata)を利用します。

7. メディアの保存

メディアのsave(completionHandler: @escaping (Bool, Error?) -> Void)メソッドを呼ぶことでカメラロールに新しいデータとしてメタデータ付きで保存されます。

クラス図

MediaMetada-iOSは以下のクラス図をもとに実装されています。

クラス図

クラスリファレンス

MediaMetadataSDKのクラスリファレンスはこちらより参照できます。

ライセンス

MediaMetada-iOSは MIT LICENSE です。詳細はMIT Licenseを参照ください。

クレジット

MediaMetadata-iOS は Falcon Techの活動で作成されています。PRやご要望(Issue)もお待ちしております。

FAQ

Q&Aの仕方

Issueを新規作成して、メンションをつけていただければ回答させていただきます。