public void FixedUpdate() { elapsedTime += Time.deltaTime;; if (elapsedTime <= 5) { return; } elapsedTime = 0; if (videoPlayer.GetVideoPlayer() == null) { return; } if (master == null) { GetMaster(); } masterTextComponent.text = $"{master.displayName}"; ownerTextComponent.text = $"{Networking.GetOwner(videoPlayer.gameObject).displayName}"; var url = videoPlayer.GetUrl(); inputField.textComponent.text = url.Get(); inputField.SetUrl(url); }
public void OnPowerOff() { DebugLog($"Received a power-off event."); enabled = false; _status = _status_off | _status_stop; _player1.Stop(); _player2.Stop(); _addressInput.SetUrl(VRCUrl.Empty); _player = null; _progressDrag = false; ValidateView(); }
public void _HandleUrlInputDelay() { VRCUrl url = urlInput.GetUrl(); urlInput.SetUrl(VRCUrl.Empty); // Hack to get around Unity always firing OnEndEdit event for submit and lost focus // If loading override was on, but it's off immediately after submit, assume user closed override // instead of submitting. Half second delay is a crude defense against a UI race. if (pendingFromLoadOverride && !loadActive) { return; } videoPlayer._ChangeUrl(url); loadActive = false; }
void PlayVideo(VRCUrl url, bool disablePlaylist) { bool isOwner = Networking.IsOwner(gameObject); if (!isOwner && !Networking.IsMaster && _masterOnly) { return; } if (_syncedURL != null && url.Get() == "") { return; } if (!isOwner) { Networking.SetOwner(Networking.LocalPlayer, gameObject); } if (disablePlaylist) { // -1 means we have stopped using the playlist since we had manual input _nextPlaylistIndex = -1; } StopVideo(); _syncedURL = url; inputField.SetUrl(VRCUrl.Empty); if (isOwner) { _videoNumber++; } else // Add two to avoid having conflicts where the old owner increases the count { _videoNumber += 2; } _loadedVideoNumber = _videoNumber; StartVideoLoad(_syncedURL); _currentPlayer.Stop(); _ownerPlaying = false; _locallyPaused = _ownerPaused = false; _videoStartNetworkTime = float.MaxValue; if (Networking.IsOwner(gameObject)) { // Attempt to parse out a start time from YouTube links with t= or start= string urlStr = url.Get(); if (currentPlayerMode != PLAYER_MODE_STREAM && (urlStr.Contains("youtube.com/watch") || urlStr.Contains("youtu.be/"))) { int tIndex = -1; tIndex = urlStr.IndexOf("?t="); if (tIndex == -1) { tIndex = urlStr.IndexOf("&t="); } if (tIndex == -1) { tIndex = urlStr.IndexOf("?start="); } if (tIndex == -1) { tIndex = urlStr.IndexOf("&start="); } if (tIndex != -1) { char[] urlArr = urlStr.ToCharArray(); int numIdx = urlStr.IndexOf('=', tIndex) + 1; string intStr = ""; while (numIdx < urlArr.Length) { char currentChar = urlArr[numIdx]; if (!char.IsNumber(currentChar)) { break; } intStr += currentChar; ++numIdx; } if (intStr.Length > 0) { int secondsCount = 0; if (int.TryParse(intStr, out secondsCount)) { _videoTargetStartTime = secondsCount; } else { _videoTargetStartTime = 0f; } } else { _videoTargetStartTime = 0f; } } else { _videoTargetStartTime = 0f; } } else { _videoTargetStartTime = 0f; } } else { _videoTargetStartTime = 0f; } Debug.Log("[USharpVideo] Video URL Changed to " + _syncedURL); }