44using System ;
55using System . Diagnostics ;
66using System . Globalization ;
7+ using System . Threading . Tasks ;
78using System . Windows . Forms ;
89
910namespace SpotifyAPI . Example
@@ -22,7 +23,7 @@ public LocalControl()
2223 _spotify . OnTrackChange += _spotify_OnTrackChange ;
2324 _spotify . OnTrackTimeChange += _spotify_OnTrackTimeChange ;
2425 _spotify . OnVolumeChange += _spotify_OnVolumeChange ;
25- _spotify . SynchronizingObject = this ;
26+ // _spotify.SynchronizingObject = this;
2627
2728 artistLinkLabel . Click += ( sender , args ) => Process . Start ( artistLinkLabel . Tag . ToString ( ) ) ;
2829 albumLinkLabel . Click += ( sender , args ) => Process . Start ( albumLinkLabel . Tag . ToString ( ) ) ;
@@ -108,22 +109,42 @@ public void UpdatePlayingStatus(bool playing)
108109
109110 private void _spotify_OnVolumeChange ( object sender , VolumeChangeEventArgs e )
110111 {
112+ if ( InvokeRequired )
113+ {
114+ Invoke ( new Action ( ( ) => _spotify_OnVolumeChange ( sender , e ) ) ) ;
115+ return ;
116+ }
111117 volumeLabel . Text = ( e . NewVolume * 100 ) . ToString ( CultureInfo . InvariantCulture ) ;
112118 }
113119
114120 private void _spotify_OnTrackTimeChange ( object sender , TrackTimeChangeEventArgs e )
115121 {
116- timeLabel . Text = $ "{ FormatTime ( e . TrackTime ) } /{ FormatTime ( _currentTrack . Length ) } ";
122+ if ( InvokeRequired )
123+ {
124+ Invoke ( new Action ( ( ) => _spotify_OnTrackTimeChange ( sender , e ) ) ) ;
125+ return ;
126+ }
127+ timeLabel . Text = $@ "{ FormatTime ( e . TrackTime ) } /{ FormatTime ( _currentTrack . Length ) } ";
117128 timeProgressBar . Value = ( int ) e . TrackTime ;
118129 }
119130
120131 private void _spotify_OnTrackChange ( object sender , TrackChangeEventArgs e )
121132 {
133+ if ( InvokeRequired )
134+ {
135+ Invoke ( new Action ( ( ) => _spotify_OnTrackChange ( sender , e ) ) ) ;
136+ return ;
137+ }
122138 UpdateTrack ( e . NewTrack ) ;
123139 }
124140
125141 private void _spotify_OnPlayStateChange ( object sender , PlayStateEventArgs e )
126142 {
143+ if ( InvokeRequired )
144+ {
145+ Invoke ( new Action ( ( ) => _spotify_OnPlayStateChange ( sender , e ) ) ) ;
146+ return ;
147+ }
127148 UpdatePlayingStatus ( e . Playing ) ;
128149 }
129150
@@ -132,19 +153,19 @@ private void connectBtn_Click(object sender, EventArgs e)
132153 Connect ( ) ;
133154 }
134155
135- private void playUrlBtn_Click ( object sender , EventArgs e )
156+ private async void playUrlBtn_Click ( object sender , EventArgs e )
136157 {
137- _spotify . PlayURL ( playTextBox . Text , contextTextBox . Text ) ;
158+ await _spotify . PlayURL ( playTextBox . Text , contextTextBox . Text ) ;
138159 }
139160
140- private void playBtn_Click ( object sender , EventArgs e )
161+ private async void playBtn_Click ( object sender , EventArgs e )
141162 {
142- _spotify . Play ( ) ;
163+ await _spotify . Play ( ) ;
143164 }
144165
145- private void pauseBtn_Click ( object sender , EventArgs e )
166+ private async void pauseBtn_Click ( object sender , EventArgs e )
146167 {
147- _spotify . Pause ( ) ;
168+ await _spotify . Pause ( ) ;
148169 }
149170
150171 private void prevBtn_Click ( object sender , EventArgs e )
0 commit comments