VideoClip.length
Declaration
public double length;Описание
Длина видеоклипа в секундах. (только для чтения).
Вы можете использовать это свойство для обеспечения того, чтобы любые события, звуки, визуальные эффекты, логика и т.д., которые вы хотите запустить во время видео, происходили в пределах временных ограничений видео.
Примечание: VideoClip может возвращать неточную длину из-за неточности внешнего кодера. Используйте VideoPlayer.frameCount и VideoPlayer.frameRate для получения более точных результатов.
// This script outputs the length of the video clip given by the VideoClip component // and the length given by calculating the VideoPlayer frame rate and frame count. These can // sometimes give different results, but the VideoPlayer is more accurate, especially after the video // plays through once.
using UnityEngine; using UnityEngine.Video;
public class VideoClipExample : MonoBehaviour { VideoPlayer videoPlayer;
void Start() { if(videoPlayer != null) { videoPlayer = GetComponent<VideoPlayer>(); videoPlayer.isLooping = true; VideoClip videoClip = videoPlayer.clip;
if (videoClip != null) { CalculateVideoLength(videoClip); videoPlayer.loopPointReached += OnLoop; videoPlayer.Play(); } else { Debug.LogWarning("VideoClip is not assigned."); } } else { Debug.LogWarning("VideoPlayer is not assigned."); } }
void CalculateVideoLength(VideoClip clip) { // Get frame count and frame rate from the VideoPlayer. ulong frameCount = videoPlayer.frameCount; double frameRate = videoPlayer.frameRate;
// Calculate the length in seconds. double lengthInSeconds = frameCount / frameRate;
// Output the length from the VideoClip and the calculated length. Debug.Log($"Initial clip length: {clip.length} seconds."); Debug.Log($"Calculated Length: {lengthInSeconds} seconds."); }
void OnLoop(VideoPlayer vp) { // Recalculate the video length with each loop. CalculateVideoLength(vp.clip); } }