19

如何将当前播放时间增加 5 秒?
其实这是我的代码:

CMTime currentTime = music.currentTime;

我不能使用 CMTimeGetSeconds() ,因为我需要 CMTime 格式。

谢谢您的回答...

编辑:如何为 CMTime 设置变量?

4

4 回答 4

33

这是一种方法:

CMTimeMakeWithSeconds(CMTimeGetSeconds(music.currentTime) + 5, music.currentTime.timescale);
于 2013-02-26T19:56:21.727 回答
24

优雅的方式是使用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

更多@: https ://developer.apple.com/library/mac/#documentation/CoreMedia/Reference/CMTime/Reference/reference.html

于 2013-02-27T23:20:06.083 回答
4

在斯威夫特:

private extension CMTime {

    func timeWithOffset(offset: TimeInterval) -> CMTime {

        let seconds = CMTimeGetSeconds(self)
        let secondsWithOffset = seconds + offset

        return CMTimeMakeWithSeconds(secondsWithOffset, preferredTimescale: timescale)

    }

}
于 2015-03-31T13:18:06.103 回答
1

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)
    }

}
于 2018-10-16T13:51:21.567 回答