iOS:バンドル内のファイルを読む処理でハマった件Android:OpenGL ESのテクスチャについて(補足)

2012年06月01日

iOS:CMTimeの使い方まとめ

動画を色々いじってて、ちょっとわかりにくかったのがCMTimeの扱い。
CMTimeは構造体で、幾つかの要素を持ちますが、特に重要なのがvalueとtimescaleの二つ。
timescaleってのがなんとなくわかりにくいけど、要はフレームレート的なものかなと。
valueをtimescaleで割った値が秒になるようです。

色々なサンプルを見るとtimescaleの値は600にしてることが多い。
なので、3秒を表すには CMTimeMake()を使用して
CMTime time = CMTimeMake(1800, 600);
とすればいい。

デバッグ等で何秒かを見たい時は
NSLog(@"second:%f", CMTimeGetSeconds(time));
のようにする。 

間隔を表すには CMTimeRangeMake()を使う。
冒頭から3秒を表すには
CMTime start = CMTimeMake(0, 600);
CMTime duration = CMTimeMake(1800, 600);
CMTimeRange range = CMTimeRangeMake(start, duration);
のようにする。

なお、0はkCMTimeZeroで表せるので上記の例は
CMTimeRange range = CMTimeRangeMake(kCMTimeZero, duration);
でもOK。

実際に使う際はdefineなりconstなりでプロジェクト全体のtimescaleの値を定義しておいたほうがよさそう。


sen_ritsu at 10:09│Comments(0)TrackBack(0) 勉強 

トラックバックURL

コメントする

名前
 
  絵文字
 
 
iOS:バンドル内のファイルを読む処理でハマった件Android:OpenGL ESのテクスチャについて(補足)