【问题标题】:swift and CMTimeMakeswift 和 CMTimeMake
【发布时间】:2014-06-25 11:30:34
【问题描述】:

我尝试捕捉视频:
https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/04_MediaCapture.html#//apple_ref/doc/uid/TP40010188-CH5-SW26

var maxDuration : CMTime = CMTimeMake(seconds, preferredTimeScale)
aMovieFileOutput.maxRecordedDuration = CMTimeMake(seconds, preferredTimeScale)

1 行有错误:使用模块“CMTime”作为类型
2 行有错误:使用未解析的标识符 'CMTimeMake'

我做错了什么?

【问题讨论】:

    标签: ios swift cmtime


    【解决方案1】:

    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: CMTimeMake(value, timescale) 返回具有给定值和时间刻度的 CMTime,表示秒 = 值/时间刻度(例如比较 stackoverflow.com/a/13001917/1187415)。 CMTimeMakeWithSeconds(seconds, preferredTimeScale) 返回一个 CMTime,其中选择了值和时间刻度,使得秒 = 值/时间刻度,并且时间刻度是首选时间刻度(或溢出情况下的一小部分)。例如CMTimeMake(2, 10)CMTimeMakeWithSeconds(0.2, 10) 给出相同的结果。
    猜你喜欢
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 2014-09-20
    • 2014-12-29
    相关资源
    最近更新 更多