Я играю видео в единстве, и короткие клипы - это хорошо, но более длинные отрезаны за последние несколько секунд. Мое видео длится 52 секунды и останавливается, когда проигрывается около 50 секунд. Я попробовал случайное видео 2:45 из сети, и оно прекратилось после 2:41. Я не могу понять, что происходит.
Я пробовал видеоклип и URL. У обоих есть проблема.
IEnumerator playVideo(SubjectClipState clipState)
{
clipState.clipObject.videoPlayer.Stop();
clipState.clipObject.audioSource.Stop();
clipState.clipObject.videoPlayer.playOnAwake = false;
clipState.clipObject.audioSource.playOnAwake = false;
clipState.clipObject.videoPlayer.source = VideoSource.Url;
clipState.clipObject.videoPlayer.audioOutputMode = clipState.clipConfig.hasAudio ? VideoAudioOutputMode.AudioSource : VideoAudioOutputMode.None;
clipState.clipObject.videoPlayer.controlledAudioTrackCount = clipState.clipConfig.hasAudio ? Convert.ToUInt16(1) : Convert.ToUInt16(0);
clipState.clipObject.videoPlayer.EnableAudioTrack(0, clipState.clipConfig.hasAudio);
if (clipState.clipConfig.hasAudio) clipState.clipObject.videoPlayer.SetTargetAudioSource(0, clipState.clipObject.audioSource);
clipState.clipObject.videoPlayer.url = clipState.clipConfig.url;
clipState.clipObject.videoPlayer.isLooping = clipState.clipConfig.endAction.type == "loop";
clipState.clipObject.videoPlayer.Prepare();
while (!clipState.clipObject.videoPlayer.isPrepared)
{
yield return null;
}
clipState.clipObject.videoPlayer.Play();
}
Примечание: videoPlayer и audioSource установлены в другом месте кода. LoopPointReached прилагается.
Я играю так:
StartCoroutine("playVideo", subjectClipState);
LoopPointReached сломается за пару секунд до того, как это должно быть сделано. Видеоплеер х / х фреймов правильный. например 2740/2740 кадров.