Peter đúng. Các mã sau đây làm cho các khái niệm rõ ràng hơn:
1)
Float64 seconds = 5;
int32_t preferredTimeScale = 600;
CMTime inTime = CMTimeMakeWithSeconds(seconds, preferredTimeScale);
CMTimeShow(inTime);
Đoạn mã trên cho: {3000/600 = 5.000}
Có nghĩa là tổng thời gian 5 giây, với 3000 khung hình với khoảng thời gian 600 khung hình mỗi giây.
2)
int64_t value = 10000;
int32_t preferredTimeScale = 600;
CMTime inTime = CMTimeMake(value, preferredTimeScale);
CMTimeShow(inTime);
một này mang đến cho {10000/600 = 16,667}
Có nghĩa là tổng thời gian 16,667 giây, với 10000 khung với một khoảng thời gian là 600 khung hình mỗi giây.
Chú ý sự khác biệt giữa CMTimeMake (int64_t giá trị, khoảng thời gian int32_t) và CMTimeMakeWithSeconds (Float64 giây, int32_t preferredTimeScale)
Hope lời giải thích này sẽ giúp. Để biết thêm chi tiết, vui lòng đăng câu hỏi thêm về bài đăng này.
nếu video của bạn là 48 FPS (khung mỗi giây) bạn sẽ dễ dàng thực hiện 'CMTimeMake (1, 48)' để chạy một khối mã mỗi 1/48 của một giây nghĩa là 1 khối trên mỗi khung – Honey