swift and CMTimeMake

17
1个回答

31

CMTimeCMTimeMake 定义在 "CoreMedia" 模块中,因此您需要

import CoreMedia

然后这段代码可以顺利编译:

let seconds : Int64 = 10
let preferredTimeScale : Int32 = 1
let aMovieFileOutput = AVCaptureMovieFileOutput()
let maxDuration : CMTime = CMTimeMake(seconds, preferredTimeScale)
aMovieFileOutput.maxRecordedDuration = maxDuration

Swift 3更新:

let maxDuration = CMTime(seconds: Double(seconds), preferredTimescale: 1)

如果CMTimeMake也接收秒数,那么它与CMTimeMakeWithSeconds有什么区别?如果preferredTimeScale只是CMTimeMake中的分母,在CMTimeMakeWithSeconds中它的目的不清楚。 - dashesy
2
@dashesy: CMTimeMake(value, timescale) 返回一个具有给定值和时间刻度的 CMTime,表示秒数 = value/timescale(例如请参见 https://dev59.com/n2cs5IYBdhLWcg3wYy5T#13001917)。`CMTimeMakeWithSeconds(seconds, preferredTimeScale) 返回一个 CMTime,其中选择了值和时间刻度,使得秒数=value/timescale,并且时间刻度为preferredTimeScale(在溢出的情况下是其分数)。例如,CMTimeMake(2, 10)CMTimeMakeWithSeconds(0.2, 10)` 给出相同的结果。 - Martin R

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接