public void OnVideoClick(VideoListItem video) { if (video != null && video.Id != string.Empty) { Firebase.Analytics.FirebaseAnalytics.LogEvent("navigation", listController.curCategoryPanel.categoryId, SessionData.VidCount); SessionData.CategoryLogs.Add(new CategoryLog { Category = listController.curCategoryPanel.categoryId, LogTime = System.DateTime.UtcNow.ToLongTimeString() }); isActuallyPlaying = false; disableVideoOptions = true; Player.Pause(); Player.LoadYoutubeVideo(youtubeUrl + video.Id); if (curCoroutine != null) { StopCoroutine(curCoroutine); } curCoroutine = StartCoroutine(VideoLoading()); } if (ShouldIntermission() && SessionData.IntermissionVideoIds.Count > 0) { NotificationController.ShowNotification("A hygiene tip from your dentist..."); IntermissionPlayer.gameObject.SetActive(true); IntermissionPlayer.LoadYoutubeVideo(IntermissionPlayer.youtubeUrl); MatchIntermissionToPlayerAudio(); Player.gameObject.SetActive(false); } }
public async void CommandBinding_PlayFire(object sender, ExecutedRoutedEventArgs e) { if (!menuPlayFire.IsEnabled) { return; } SearchSettings settings = new SearchSettings(); settings.MediaType = MediaType.Video; settings.RatingRatio = SessionCore.Instance.NgMain.RatioSlider.Value; settings.RatingCategory = "Fire"; settings.RatingOperator = OperatorConditionEnum.GreaterOrEqual; settings.RatingValue = 7.5f; settings.RatingFilters.Add(new SearchRatingSetting() { Category = "Length", Operator = OperatorConditionEnum.Smaller, Value = 12 }); VideoListItem Result = SearchVideoWindow.Instance(settings); if (Result != null) { await SessionCore.Instance.Business.SetNextVideoFileAsync(PlayerMode.Fire, Result.FileName); } }
private void FixContainer(VideoListItem item) { SetStatus(item, VideoListItemStatusEnum.Converting); string SrcFile = Settings.NaturalGroundingFolder + item.FileName; if (item.FileName != null && File.Exists(SrcFile)) { FFmpegProcess FileInfo = MediaInfo.GetFileInfo(SrcFile); string Ext1 = Path.GetExtension(item.FileName).ToLower(); string Ext2 = DownloadBusiness.GetFinalExtension(FileInfo.VideoStream?.Format, FileInfo.AudioStream?.Format); if ((Ext2 == ".mp4" || Ext2 == ".webm") && Ext1 != Ext2) { string DstFile = item.FileName.Substring(0, item.FileName.Length - Ext1.Length) + Ext2; if (MediaMuxer.Muxe(SrcFile, SrcFile, Settings.NaturalGroundingFolder + DstFile) == CompletionStatus.Success) { FileOperationAPIWrapper.MoveToRecycleBin(SrcFile); // Change database binding. EditVideoBusiness Business = new EditVideoBusiness(); Media ExistingData = Business.GetVideoById(item.MediaId.Value); if (ExistingData != null) { // Edit video info. ExistingData.FileName = DstFile; Business.Save(); SetStatus(item, VideoListItemStatusEnum.Done); return; } } } } SetStatus(item, VideoListItemStatusEnum.Failed); }
public bool UpdateFileName(VideoListItem item, string fileName) { EditVideoBusiness Business = new EditVideoBusiness(); if (Business.GetVideoByFileName(fileName) == null) { // Update database. Media DbItem = Business.GetVideoById(item.MediaId.Value); DbItem.FileName = fileName; Business.Save(); // Update in-memory list. if (!item.FileExists) { item.FileExists = true; item.FileName = fileName; playlist.RemoveAll(v => v.FileName == fileName && v.IsInDatabase == false); } else if (!item.IsInDatabase) { item.IsInDatabase = true; item.FileName = fileName; playlist.RemoveAll(v => v.FileName == fileName && v.FileExists == false); } return(true); } else { return(false); } }
private async void PlayButton_Click(object sender, RoutedEventArgs e) { VideoListItem VideoInfo = MediaList.SelectedItem; if (MediaList.IsDetailView && VideoInfo != null) { if (VideoInfo.FileName != null) { // File exists, play. if (SessionCore.Instance.Business.IsStarted) { if (SessionCore.Instance.Business.IsPaused) { SessionCore.Instance.Menu.ResumeSession(); } await SessionCore.Instance.Business.SetNextVideoFileAsync(PlayerMode.Manual, VideoInfo.FileName).ConfigureAwait(false); if (PlayButton.Content != MenuPlayNext.Header) { await SessionCore.Instance.Business.SkipVideoAsync().ConfigureAwait(false); } } else { await SessionCore.Instance.Menu.CommandBinding_StartSessionAsync(VideoInfo.FileName).ConfigureAwait(false); } } else if (VideoInfo.HasDownloadUrl) { // File doesn't exist, download. await SessionCore.Instance.Business.DownloadManager.DownloadVideoAsync(PlayerAccess.GetVideoById(VideoInfo.MediaId.Value), -1, DownloadBusiness_DownloadCompleted).ConfigureAwait(false); } } }
private void EditButton_Click(object sender, RoutedEventArgs e) { if (VideosView.SelectedItem != null) { VideoListItem Item = (VideoListItem)VideosView.SelectedItem; ShowEditForm(Item); } }
private void VideosView_ItemRightButtonUp(object sender, MouseButtonEventArgs e) { if (VideosView.SelectedItem != null) { VideoListItem Item = (VideoListItem)VideosView.SelectedItem; ShowEditFormPopup(Item, sender as UIElement); } }
private VideoListItem GetVideoListItem(Models.BaseUnit x, bool isResumeWatching = false) { var result = new VideoListItem(x, this, isResumeWatching); result.RemoveButtonClicked += Result_RemoveButtonClicked; return(result); }
public void EditSelection() { if (VideosView.SelectedItem != null) { VideoListItem Item = (VideoListItem)VideosView.SelectedItem; ShowEditForm(Item); } }
public async void EditForm_Closed(Media result) { if (result != null) { VideoListItem OldItem = (VideoListItem)VideosView.SelectedItem; business.RefreshPlaylist(result, OldItem != null ? OldItem.FileName : null); await LoadDataAsync(); } }
private void refreshThePlaylist() { var temp = windowPlaylist.SelectedItem; windowPlaylist.ItemsSource = null; windowPlaylist.ItemsSource = playlist; windowPlaylist.SelectedItem = temp; totalTimePlaylist.Text = "Playlist duration time: " + VideoListItem.TotalDuration(playlist); }
public void SetStatus(VideoListItem item, VideoListItemStatusEnum status, string statusText) { item.Status = status; if (statusText != null) { item.StatusText = statusText; } // Store results in cache. scanResults[item.MediaId.Value] = new ScanResultItem(item.Status, item.StatusText); }
private async void SelectButton_Click(object sender, RoutedEventArgs e) { selection = MediaList.SelectedItem; if (selection != null) { this.Close(); } else { await MediaList.ShowDetailsAsync(); } }
/// <summary> /// デザイナ用 /// </summary> /// <param name="inTitle"></param> /// <param name="inResourceURL"></param> /// <returns></returns> private VideoListItem AddVideoItems(string inTitle, string inResourceURL) { var source = new BitmapImage(); source.BeginInit(); source.UriSource = new Uri(inResourceURL); source.EndInit(); VideoListItem item = new VideoListItem(inTitle, source); return(item); }
public bool UpdateFileName(Guid videoId, string fileName) { VideoListItem Item = playlist.Find(v => v.MediaId == videoId); if (Item == null) { Item = new VideoListItem() { MediaId = videoId } } ; return(UpdateFileName(Item, fileName)); }
public void InitWith(List <VideoData> videoList) { videoRender = new RenderTexture(1280, 720, 24); videoPlayer.renderMode = VideoRenderMode.RenderTexture; videoPlayer.targetTexture = videoRender; for (int i = 0; i < videoList.Count; i++) { GameObject go = Instantiate(videoListItem.gameObject, videoListItem.transform.parent); VideoListItem videoItem = go.GetComponent <VideoListItem>(); videoItem.InitWith(videoList[i], OnClickVideoItem); } videoListItem.gameObject.SetActive(false); SetVideoPlayData(videoList[0]); }
public void CreateImaPlayer(VideoListItem video) { imaPlayer?.Release(); videoPlayerContainer.RemoveAllViews(); string adTagUrl = video.adUrl; string videoTitle = video.title; imaPlayer = new ImaPlayer.Builder(this, videoPlayerContainer, video.video) .SetVideoTitle(videoTitle) .SetAdTagUrl(adTagUrl) .Build(); imaPlayer.Play(); }
private async Task DownloadFile(VideoListItem item, DownloadAction action) { if (Manager != null && item != null && item.MediaId != null) { Media ItemData = PlayerAccess.GetVideoById(item.MediaId.Value); if (ItemData != null) { SetStatus(item, VideoListItemStatusEnum.Downloading, null); await Manager.DownloadVideoAsync(ItemData, -1, (sender, e) => { SetStatus(item, e.DownloadInfo.IsCompleted ? VideoListItemStatusEnum.Done : VideoListItemStatusEnum.Failed); }, action, null); } } }
IEnumerator GetImage(VideoListItem listItem, string categoryId) { UnityWebRequest www = UnityWebRequestTexture.GetTexture(listItem.ThumbnailUrl); yield return(www.Send()); if (www.isNetworkError) { Debug.Log(www.error); } else { listItem.Thumbnail.texture = ((DownloadHandlerTexture)www.downloadHandler).texture; CategoryIdToThumbnails[categoryId].Add(listItem.Id, listItem.Thumbnail.texture); } }
public void OnVideoClick(VideoListItem video) { if (video != null && video.Id != string.Empty) { isActuallyPlaying = false; disableVideoOptions = true; SimplePlayback.Play_Pause(); SimplePlayback.videoId = video.Id; SimplePlayback.PlayYoutubeVideo(video.Id); if (curCoroutine != null) { StopCoroutine(curCoroutine); } curCoroutine = StartCoroutine(VideoLoading()); } }
private async void PlayButton_Click(object sender, RoutedEventArgs e) { VideoListItem VideoInfo = MediaList.SelectedItem; if (VideoInfo != null) { if (VideoInfo.FileName != null && VideoInfo.FileExists) { // File exists, play. await owner.Player.PlayVideoAsync(PlayerAccess.GetVideoByFileName(VideoInfo.FileName), false); } else if (VideoInfo.HasDownloadUrl) { // File doesn't exist, download. await SessionCore.Instance.Business.DownloadManager.DownloadVideoAsync(PlayerAccess.GetVideoById(VideoInfo.MediaId.Value), -1, DownloadBusiness_DownloadCompleted); } } }
public void HideListUI(VideoListItem vid) { disableButtons = true; NavController.prevPanel = null; NavController.curPanel = ListController?.curCategoryPanel?.gameObject?.GetComponent <NavObject>(); NavController.indicator.transform.localScale = new Vector3(1.5f, 1.5f); StartCoroutine(HideVideos()); if (vid != null) { StartCoroutine(ShowFadedCategoriesThenCenterVideo()); } else { StartCoroutine(ShowCategories()); SleepTimer?.Reset(); SleepTimer?.Start(); } }
private async void CommandBinding_SpecialRequest(object sender, ExecutedRoutedEventArgs e) { if (!menuSpecialRequest.IsEnabled) { return; } SearchSettings SearchSettings = new SearchSettings() { MediaType = MediaType.Video, RatingRatio = SessionCore.Instance.NgMain.RatioSlider.Value }; VideoListItem Result = SearchVideoWindow.Instance(SearchSettings); if (Result != null) { await SessionCore.Instance.Business.SetNextVideoFileAsync(PlayerMode.SpecialRequest, Result.FileName).ConfigureAwait(false); } }
public void CommandBinding_AddLucidVideo(object sender, ExecutedRoutedEventArgs e) { if (!menuAddLucidVideo.IsEnabled) { return; } VideoListItem Result = SearchVideoWindow.Instance(new SearchSettings() { MediaType = MediaType.Video }); if (Result != null) { LayerLucidVideoControl Layer = new LayerLucidVideoControl(); Layer.OpenMedia(SessionCore.Instance.Business.GetMediaObject(Result.FileName)); SessionCore.Instance.Layers.Add(Layer); } }
IEnumerator GetImage(VideoListItem listItem, string categoryId) { if (listItem?.ThumbnailUrl != null) { UnityWebRequest www = UnityWebRequestTexture.GetTexture(listItem?.ThumbnailUrl); yield return(www.Send()); if (www.isNetworkError) { Debug.Log(www.error); } else { if (!CategoryIdToThumbnails[categoryId].ContainsKey(listItem.Id)) { CategoryIdToThumbnails[categoryId].Add(listItem.Id, ((DownloadHandlerTexture)www.downloadHandler)?.texture); } } } yield return(null); }
public void CreateImaPlayer(VideoListItem video) { imaPlayer?.Release(); videoPlayerContainer.RemoveAllViews(); string adTagUrl = video.adUrl; string videoTitle = video.title; var settings = new ImaSdkSettings(); settings.AutoPlayAdBreaks = true; imaPlayer = new ImaPlayer(this, videoPlayerContainer, video.video, videoTitle, adTagUrl); imaPlayer.SetFullscreenCallback(this); Drawable logo = Resources.GetDrawable(Resource.Drawable.gmf_icon); imaPlayer.SetLogoImage(logo); imaPlayer.Play(); }
private void ShowEditFormPopup(VideoListItem item, UIElement target) { EditVideoWindow.InstancePopup(target, PlacementMode.Mouse, item.MediaId, item.FileName, EditForm_Closed); }
private async void menuSelectFile_Click(object sender, RoutedEventArgs e) { if (!isNew) { // Bind to another file. Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog(); dlg.InitialDirectory = Settings.NaturalGroundingFolder; if (video.MediaType == MediaType.Video) { dlg.Filter = string.Format("Video Files|*{0})", string.Join(";*", AppPaths.VideoExtensions)); } else if (video.MediaType == MediaType.Audio) { dlg.Filter = string.Format("Audio Files|*{0})", string.Join(";*", AppPaths.AudioExtensions)); } else if (video.MediaType == MediaType.Image) { dlg.Filter = string.Format("Image Files|*{0})", string.Join(";*", AppPaths.ImageExtensions)); } if (dlg.ShowDialog(IsLoaded ? this : Owner).Value == true) { if (!dlg.FileName.StartsWith(Settings.NaturalGroundingFolder)) { MessageBox.Show("You must select a file within your Natural Grounding folder.", "Error", MessageBoxButton.OK, MessageBoxImage.Information); } else { string BindFile = dlg.FileName.Substring(Settings.NaturalGroundingFolder.Length); if (business.GetVideoByFileName(BindFile) == null) { video.FileName = BindFile; video.Length = null; video.Height = null; await LoadMediaInfoAsync(); if (isPopup) { SaveChanges(); } } else { MessageBox.Show("This file is already in the database.", "Error", MessageBoxButton.OK, MessageBoxImage.Information); } } fileNotFound = false; } } else { // Bind file to an existing entry. SearchSettings settings = new SearchSettings() { MediaType = (MediaType)video.MediaTypeId, ConditionField = FieldConditionEnum.FileExists, ConditionValue = BoolConditionEnum.No, ListIsInDatabase = true }; VideoListItem Result = SearchVideoWindow.Instance(settings); if (Result != null) { // Close and re-open selected entry. Close(); EditVideoWindow NewForm = Instance(Result.MediaId, null, callback); NewForm.video.FileName = video.FileName; NewForm.video.Length = null; NewForm.video.Height = null; await NewForm.LoadMediaInfoAsync(); } } }
IEnumerator GetText() { foreach (string key in CategoryVideos.Keys) { Debug.Log(key); UnityWebRequest www = null; if (ChannelIds[key][0] == 'P') { www = UnityWebRequest.Get("https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=" + ChannelIds[key] + "&maxResults=" + maxResults + "&videoDefinition=standard&key=AIzaSyCOu6VAoXIymLoI-5U5CWh3LFOAoVGXvIQ"); } else { www = UnityWebRequest.Get("https://www.googleapis.com/youtube/v3/search?type=video&maxResults=" + maxResults + "&part=snippet&channelId=" + ChannelIds[key] + "&videoDefinition=standard&key=AIzaSyCOu6VAoXIymLoI-5U5CWh3LFOAoVGXvIQ"); } yield return(www.SendWebRequest()); if (www.isNetworkError || www.isHttpError) { Debug.Log(www.error); } else { string jsonData = ""; jsonData = System.Text.Encoding.UTF8.GetString(www.downloadHandler.data, 3, www.downloadHandler.data.Length - 3); // Skip thr first 3 bytes (i.e. the UTF8 BOM) JSONObject json = new JSONObject(jsonData); // Or retrieve results as binary data //Debug.Log(www.downloadHandler.text); if (ChannelIds[key][0] != 'P') { YoutubeResponseData responseData = JsonUtility.FromJson <YoutubeResponseData>(www.downloadHandler.text); foreach (var videoItem in responseData.items) { if (videoItem.id.kind != "youtube#video") { continue; } VideoListItem video = new VideoListItem { Title = videoItem.snippet.title, Id = videoItem.id.videoId, ThumbnailUrl = videoItem.snippet.thumbnails.medium.url }; Debug.Log(video.Title + " " + video.Id + " " + video.ThumbnailUrl); CategoryVideos[key].Add(video); } } else { YoutubePlaylistResponseData responseData = JsonUtility.FromJson <YoutubePlaylistResponseData>(www.downloadHandler.text); foreach (var videoItem in responseData.items) { if (videoItem.snippet.resourceId.kind != "youtube#video" || videoItem.snippet.title == "Private video") { continue; } VideoListItem video = new VideoListItem { Title = videoItem.snippet.title, Id = videoItem.snippet.resourceId.videoId, ThumbnailUrl = videoItem.snippet.thumbnails?.medium?.url ?? videoItem.snippet.thumbnails?.standard?.url }; // Debug.Log(video.Title + " " + video.Id + " " + video.ThumbnailUrl); CategoryVideos[key].Add(video); } } } } RefreshList(); }
public void SetStatus(VideoListItem item, VideoListItemStatusEnum status) { SetStatus(item, status, null); }