[Swift]CMTimeを使う

AVPlayerクラスでは、時間をあつかうさいにCMTime構造体を使うので、その使い方をメモ。
Swift 2.0で調べたもの。

CMTime Reference

CMTimeはCoreMediaフレームワークに属する構造体。
CMTimeでの時刻はvalueとtimescaleであらわされる。
秒数 = value / timescale
となっている。
value、timescaleは整数値。
動画はフレームレートがあって1秒24フレームや1秒60フレームなどあるけれども、それに合わせた形が作りやすいようになっている。

CMTime作成
let time: CMTime = CMTimeMake(15, 1000)

CMTimeMakeを用いて、valueとtimescaleを指定しての作成。上の例のvalue:15, timescale:1000の場合、秒数でいうと0.015秒になる。

let time: CMTime = CMTimeMakeWithSeconds(Float64(7.6), 100)

CMTimeMakeWithSecondsを使って、秒数とtimescaleから作成することもできる。秒数はFloat64で指定する。
この場合のvalueは、760となる。

秒数取得
let seconds = CMTimeGetSeconds(time)

CMTimeGetSecondsで秒数を取得できる。戻り値はFloat64。

ゼロをあらわす
let time: CMTime = kCMTimeZero

投稿者:

nackpan

nackpan

iOSアプリを作っています。 リピーティングに便利な「語学学習支援プレイヤー」つくりました。

「[Swift]CMTimeを使う」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です