1) CMTimeMake(1,10)
berarti durasi 1 detik dan skala 10, atau 10 frame per detik. Ini berarti 1s durasi video dengan 10 frame?
2)
CMTime lastTime=CMTimeMake(1,10);
CMTime frameTime=CMTimeMake(1, 10);
CMTime currentTime=CMTimeAdd(lastTime, frameTime)
= (2, 10)?
Video 2 detik dan dengan 10 frame per detik saat ini?
CMTimeMake(1, 48)
untuk menjalankan satu blok kode setiap 1/48 detik yaitu 1 blok per bingkaiJawaban:
1)
CMTimeMake(1,10)
sebenarnya berarti nilai 1 dan skala waktu 10. Mereka adalah pembilang dan penyebut, jadi itu adalah 1/10 dari satu detik, bukan 1 detik.2) Hasilnya akan seperti
CMTimeMake(2, 10)
, yaitu 2/10 dari satu detik.sumber
value/timescale = seconds
secara eksplisit.Peter benar. Kode berikut membuat konsep lebih jelas:
1)
Kode di atas memberikan: {3000/600 = 5.000}
Yang berarti total durasi 5 detik, dengan 3000 frame dengan skala waktu 600 frame per detik.
2)
Yang ini memberi {10000/600 = 16.667}
Yang berarti total durasi 16,667 detik, dengan 10.000 frame dengan skala waktu 600 frame per detik.
Perhatikan perbedaan antara CMTimeMake (nilai int64_t, int32_t timescale) dan CMTimeMakeWithSeconds (Float64 detik, int32_t preferTimeScale)
Semoga penjelasan ini membantu. Untuk klarifikasi lebih lanjut, jangan ragu untuk mengirim pertanyaan lebih lanjut pada posting ini.
sumber
setMaxRecordedDuration
perlupreferredTimeScale
kapanframe_rate
diatur secara berbeda. Semua orang hanya menggunakan 600 secara membabi buta, dan tidak ada penjelasan yang tepat tentang apa yang dilakukannya.Dengan
CMTimeMake(A, B)
Anda menyimpan angka rasional, fraksi tepatA / B
detikCMTimeMake(1, 4)
-> interval waktu 0,25 detikDengan
CMTimeMakeWithSeconds(A, B)
Anda menyimpanA
detik ke resolusiB
langkahCMTimeMakeWithSeconds(0.25, ...)
-> interval waktu 0,25 detikAnda biasa melihat
CMTimeMakeWithSeconds(time, NSEC_PER_SEC)
. SecaraNSEC_PER_SEC
efektif berarti " resolusi maksimal ".sumber
Jika Anda hanya ingin tahu cara membuat interval selama 1 detik (seperti saya), ini adalah jawaban Anda:
sumber
CMTime struct mewakili
length of time that is stored as rational number.
CMTime yang memiliki nilai dan bidang skala waktu, dan mewakili nilai waktu / skala waktu detik.Lihat Lihat Jawaban SO ini yang jelas
sumber