2014-06-25 21 views
7

tôi cố gắng để nắm bắt video:
https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/04_MediaCapture.html#//apple_ref/doc/uid/TP40010188-CH5-SW26nhanh chóng và CMTimeMake

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

1 hàng có lỗi: Sử dụng mô-đun 'CMTime' như một loại
2 hàng có lỗi: Sử dụng định danh chưa được giải quyết 'CMTimeMake'

tôi làm gì sai?

Trả lời

14

CMTimeCMTimeMake được định nghĩa trong "CoreMedia" module, do đó bạn phải

import CoreMedia 

Sau đó này biên dịch không có vấn đề:

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

Cập nhật cho Swift 3:

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

nếu 'CMTimeMake' cũng r eceives giây sự khác biệt với 'CMTimeMakeWithSeconds' là gì? và nếu 'preferredTimeScale' chỉ là mẫu số trong' CMTimeMake' thì không rõ mục đích của nó là gì trong 'CMTimeMakeWithSeconds' – dashesy

+1

@dashesy:' CMTimeMake (value, timescale) 'trả về một CMTime với giá trị và thời gian đã cho, đại diện cho giây = giá trị/thời gian (so sánh ví dụ http://stackoverflow.com/a/13001917/1187415). 'CMTimeMakeWithSeconds (seconds, preferredTimeScale)' trả về một CMTime nơi giá trị và khoảng thời gian được chọn sao cho seconds = value/timescale và timescale được ưu tiênTimeScale (hoặc một phần nhỏ của nó trong trường hợp tràn). Như một ví dụ 'CMTimeMake (2, 10)' và 'CMTimeMakeWithSeconds (0.2, 10)' cho cùng một kết quả. –

Các vấn đề liên quan