[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

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

  1. とても分かりやすく、いつも助けていただいております。
    ありがとうございます!!

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください