現在の再生時間に5秒を追加するにはどうすればよいですか?
実際、これは私のコードです:
CMTime currentTime = music.currentTime;
CMTime形式が必要なため、CMTimeGetSeconds()を使用できません。
ご回答ありがとうございます...
編集:CMTimeの変数を設定するにはどうすればよいですか?
これが1つの方法です:
CMTimeMakeWithSeconds(CMTimeGetSeconds(music.currentTime) + 5, music.currentTime.timescale);
エレガントな方法はCMTimeAdd
を使用することです
CMTime currentTime = music.currentTime;
CMTime timeToAdd = CMTimeMakeWithSeconds(5,1);
CMTime resultTime = CMTimeAdd(currentTime,timeToAdd);
//then hopefully
[music seekToTime:resultTime];
あなたの編集に:あなたはこれらの方法でCMTime構造体を作成することができます
CMTimeMake
CMTimeMakeFromDictionary
CMTimeMakeWithEpoch
CMTimeMakeWithSeconds
Swiftの場合:
private extension CMTime {
func timeWithOffset(offset: NSTimeInterval) -> CMTime {
let seconds = CMTimeGetSeconds(self)
let secondsWithOffset = seconds + offset
return CMTimeMakeWithSeconds(secondsWithOffset, timescale)
}
}
Swift 4、カスタム演算子を使用:
extension CMTime {
static func + (lhs: CMTime, rhs: TimeInterval) -> CMTime {
return CMTime(seconds: lhs.seconds + rhs,
preferredTimescale: lhs.timescale)
}
static func += (lhs: inout CMTime, rhs: TimeInterval) {
lhs = CMTime(seconds: lhs.seconds + rhs,
preferredTimescale: lhs.timescale)
}
}