public void PlayDone(PlaylistItem item, bool canPlayNext = false) { // 次送りが出来る場合は次へ if (canPlayNext && (Player?.CanGoNext ?? false)) { Player.GoNext(); } else if (canPlayNext) { if (PlaylistSettings.PlaylistEndAction == PlaylistEndAction.ChangeIntoSplit) { if (PlayerDisplayType == PlayerDisplayType.PrimaryView) { PlayerDisplayType = PlayerDisplayType.PrimaryWithSmall; } } else if (PlaylistSettings.PlaylistEndAction == PlaylistEndAction.CloseIfPlayWithCurrentWindow) { IsDisplayMainViewPlayer = false; } } // あとで見るプレイリストの場合、再生後に // アイテムを削除する if (CurrentPlaylist == DefaultPlaylist) { DefaultPlaylist.Remove(item); } }
public void PlayDone(PlaylistItem item, bool canPlayNext = false) { // 次送りが出来る場合は次へ if (canPlayNext && (Player?.CanGoNext ?? false)) { Player.GoNext(); } else if (canPlayNext) { if (PlayerViewManager.IsPlayerShowWithPrimaryView) { switch (PlaylistSettings.PlaylistEndAction) { case PlaylistEndAction.ChangeIntoSplit: PlayerViewManager.IsPlayerSmallWindowModeEnabled = true; break; case PlaylistEndAction.CloseIfPlayWithCurrentWindow: PlayerViewManager.ClosePlayer(); break; } } } // あとで見るプレイリストの場合、再生後に // アイテムを削除する if (CurrentPlaylist == DefaultPlaylist) { DefaultPlaylist.RemoveMylistItem(item.ContentId); } }
public void PlayDone(PlaylistItem item, bool canPlayNext = false) { // 次送りが出来る場合は次へ if (canPlayNext && (Player?.CanGoNext ?? false)) { Player.GoNext(); } else if (canPlayNext) { if (PlaylistSettings.PlaylistEndAction == PlaylistEndAction.ChangeIntoSplit) { IsPlayerFloatingModeEnable = true; } else if (PlaylistSettings.PlaylistEndAction == PlaylistEndAction.CloseIfPlayWithCurrentWindow) { IsDisplayPlayer = false; } } // あとで見るプレイリストの場合、再生後に // アイテムを削除する if (CurrentPlaylist == DefaultPlaylist) { DefaultPlaylist.Remove(item); } ResetMediaPlayerCommand(); }
public void AddWatchAfterPlaylist(string contentId) { if (!NiconicoRegex.IsVideoId(contentId) && !int.TryParse(contentId, out var temp)) { return; } var result = DefaultPlaylist.AddMylistItem(contentId, ContentInsertPosition.Tail); }
// あとで見るプレイリストを通じての再生をサポート // プレイリストが空だった場合、その場で再生を開始 public void PlayVideo(string contentId, string title = "", NicoVideoQuality?quality = null) { if (!NiconicoRegex.IsVideoId(contentId) && !int.TryParse(contentId, out var temp)) { return; } var newItem = DefaultPlaylist.AddVideo(contentId, title, ContentInsertPosition.Head); Play(newItem); }
public void PlayVideo(IVideoContent video) { if (!(NiconicoRegex.IsVideoId(video.Id) || video.Id.All(x => '0' <= x && x <= '9'))) { return; } var item = DefaultPlaylist.PlaylistItems.FirstOrDefault(x => x.Type == PlaylistItemType.Video && x.ContentId == video.Id) ?? DefaultPlaylist.AddVideo(video.Id, video.Label, ContentInsertPosition.Head); Play(item); }
public void PlayVideo(IVideoContent video) { if (!(NiconicoRegex.IsVideoId(video.Id) || video.Id.All(x => '0' <= x && x <= '9'))) { return; } DefaultPlaylist.AddMylistItem(video.Id, ContentInsertPosition.Head); Play(new QualityVideoPlaylistItem() { ContentId = video.Id, Owner = video.OnwerPlaylist ?? DefaultPlaylist, Title = video.Label, Type = PlaylistItemType.Video, }); }
// あとで見るプレイリストを通じての再生をサポート // プレイリストが空だった場合、その場で再生を開始 public void PlayVideo(string contentId, string title = "", NicoVideoQuality?quality = null) { if (!NiconicoRegex.IsVideoId(contentId) && !int.TryParse(contentId, out var temp)) { return; } var result = DefaultPlaylist.AddMylistItem(contentId, ContentInsertPosition.Head); Play(new QualityVideoPlaylistItem() { ContentId = contentId, Owner = DefaultPlaylist, Title = title, Type = PlaylistItemType.Video, Quality = quality }); }
public void PlayVideoWithPlaylist(IVideoContent video) { if (!(NiconicoRegex.IsVideoId(video.Id) || video.Id.All(x => '0' <= x && x <= '9'))) { return; } if (video.Playlist != null) { var playlistItem = video.Playlist.PlaylistItems.FirstOrDefault(x => x.ContentId == video.Id); if (playlistItem != null) { Play(playlistItem); } } else { var newItem = DefaultPlaylist.AddVideo(video.Id, video.Label, ContentInsertPosition.Head); Play(newItem); } }
// あとで見るプレイリストを通じての再生をサポート // プレイリストが空だった場合、その場で再生を開始 public void PlayVideo(string contentId, string title = "", NicoVideoQuality?quality = null) { var newItem = DefaultPlaylist.AddVideo(contentId, title, ContentInsertPosition.Head); Play(newItem); }
public async Task Load() { var files = await HohoemaApp.GetSyncRoamingData(PlaylistsSaveFolder); // ファイルがない場合 if (files.Count == 0) { // デフォルトプレイリストを作成 MakeDefaultPlaylist(); CurrentPlaylist = DefaultPlaylist; return; } // 古いデータを解放 foreach (var playlist in _Playlists) { playlist.Dispose(); } _PlaylistFileAccessorMap.Clear(); _Playlists.Clear(); DefaultPlaylist = null; // 読み込み List <LocalMylist> loadedItem = new List <LocalMylist>(); foreach (var file in files) { var playlistFileAccessor = new FileAccessor <LocalMylist>(PlaylistsSaveFolder, file.Name); var playlist = await playlistFileAccessor.Load(); if (playlist != null) { playlist.HohoemaPlaylist = this; // 重複登録されている場合、ファイルの日付が古いほうを削除 // (本来はリネームのミスがないようにするべき) if (_PlaylistFileAccessorMap.ContainsKey(playlist.Id)) { var prevFileAccessor = _PlaylistFileAccessorMap[playlist.Id]; var prevFile = await prevFileAccessor.TryGetFile(); var prevFileProp = await prevFile.GetBasicPropertiesAsync(); var fileProp = await file.GetBasicPropertiesAsync(); if (prevFileProp.DateModified < fileProp.DateModified) { await prevFileAccessor.Delete(StorageDeleteOption.PermanentDelete); _PlaylistFileAccessorMap.Remove(playlist.Id); _PlaylistFileAccessorMap.Add(playlist.Id, playlistFileAccessor); loadedItem.Add(playlist); } else { await HohoemaApp.RoamingDataRemoved(file); await file.DeleteAsync(); } } else { _PlaylistFileAccessorMap.Add(playlist.Id, playlistFileAccessor); loadedItem.Add(playlist); } } if (playlist.Id == WatchAfterPlaylistId) { DefaultPlaylist = playlist; } } loadedItem.Sort((x, y) => x.SortIndex - y.SortIndex); foreach (var sortedPlaylist in loadedItem) { _Playlists.Add(sortedPlaylist); } // デフォルトプレイリストが削除されていた場合に対応 if (DefaultPlaylist == null) { MakeDefaultPlaylist(); } // Live Item は削除 foreach (var i in DefaultPlaylist.PlaylistItems.Where(x => x.ContentId.StartsWith("lv")).ToArray()) { DefaultPlaylist.Remove(i); } }