/// <summary> /// 音量取得 /// </summary> private void getVolume() { CurrentPlayback = spotifyApi.GetCurrentPlayback(Properties.Settings.Default.Spotify_Markets); if (CurrentPlayback == null) { return; } trackBarVolume.Value = CurrentPlayback.device.volume_percent; setMuteButtonStyle(); }
private static int GetPlayingIndex(CurrentPlayback currentPlaybackState, List <Track> landingTracks) { var playingTrackIndex = -1; for (int i = 0; i < landingTracks.Count; i++) { if (landingTracks[i].Id == currentPlaybackState.Id) { playingTrackIndex = i; break; } } return(playingTrackIndex); }
private void ToggleIsPlaying(object sender, RoutedEventArgs e) { if (IsPlaying) { CurrentPlayback?.Pause(); } else { CurrentPlayback?.Play(); } if (CurrentPlayback != null) { IsPlaying = !IsPlaying; } }
private async Task UpdatePlaybackState(CurrentPlayback currentPlaybackState) { if (!currentPlaybackState.Is_Playing) { if (DefaultDeviceId != null) { await UpdateDevice(new DevicesPostDto { Device_Id = DefaultDeviceId, Play = true }); } } if (currentPlaybackState.Shuffle_State) { await ToggleShuffle(false); } }
public static CurrentStateResponseDto ToDto(this CurrentPlayback playback, Track nextSong) { var report = new CurrentStateResponseDto { Device = playback.Device, Id = playback.Id, Is_Playing = playback.Is_Playing, Item = playback.Item, Name = playback.Name, Progress_ms = playback.Progress_ms, Repeat_State = playback.Repeat_State, Shuffle_State = playback.Shuffle_State, TimeStamp = playback.TimeStamp, NextSong = nextSong }; return(report); }
/// <summary> /// spotify再生情報取得 /// </summary> /// <param name="wait">取得開始までの待機時間(ms)</param> private async void setCurrentPlayback(Int32 wait) { try { if (wait != 0) { await Task.Delay(wait); } //再生情報を取得 PrevPlayback = CurrentPlayback; CurrentPlayback = spotifyApi.GetCurrentPlayback(Properties.Settings.Default.Spotify_Markets); if (CurrentPlayback == null) { initPlayInfo(); tpsSpotifyApiStatus.Text = "Error."; tpsSpotifyApiStatus.ForeColor = Color.Red; return; } tpsSpotifyApiStatus.Text = "Connected."; tpsSpotifyApiStatus.ForeColor = Color.Black; if (PrevPlayback == null || PrevPlayback.item.album.id != CurrentPlayback.item.album.id) { if (pbArtwork.BackgroundImage != null) { pbArtwork.BackgroundImage.Dispose(); } pbArtwork.BackgroundImage = GetImage(CurrentPlayback.item.album.images[1].url); } if (lblAlubum.Text != CurrentPlayback.item.album.name) { lblAlubum.Text = CurrentPlayback.item.album.name; } if (lblAlbumArtist.Text != CurrentPlayback.item.album.artists[0].name) { lblAlbumArtist.Text = CurrentPlayback.item.album.artists[0].name; } if (lblReleaseDate.Text != CurrentPlayback.item.album.release_date) { lblReleaseDate.Text = CurrentPlayback.item.album.release_date; } lblTrackCount.Text = ""; if (lblExplicit.Visible != CurrentPlayback.item.@explicit) { lblExplicit.Visible = CurrentPlayback.item.@explicit; } if (lblTrackName.Text != CurrentPlayback.item.name) { lblTrackName.Text = CurrentPlayback.item.name; } if (lblTrackArtist.Text != CurrentPlayback.item.artists[0].name) { lblTrackArtist.Text = CurrentPlayback.item.artists[0].name; } seekBarPlayPos.Minimum = 0; seekBarPlayPos.Maximum = CurrentPlayback.item.duration_ms; seekBarPlayPos.Value = CurrentPlayback.progress_ms; lblTrackTime.Text = msToTime(seekBarPlayPos.Maximum); lblPlayPos.Text = msToTime(seekBarPlayPos.Value); timer1.Enabled = CurrentPlayback.is_playing; setPlayButtonStyle(timer1.Enabled); //if (timer1.Enabled) //{ // timer1.Start(); //} //else //{ // timer1.Stop(); //} //リピート設定 setRepeatButtonStyle(CurrentPlayback.repeat_state); //シャッフル設定 //ボリューム設定 trackBarVolume.Value = CurrentPlayback.device.volume_percent; setMuteButtonStyle(); //再生デバイス setAvailableDevices(0); //title if (Properties.Settings.Default.ShowTitlebarInfo) { Text = string.Format("{0} / {1} with {2}", lblTrackName.Text, lblTrackArtist.Text, Properties.Settings.Default.AppName); } //自動toot if (Properties.Settings.Default.Mastodon_Toot_TrackChangedAutoPost) { TootNowPlaying(false); } } catch { } }