private async void ButtonDownloadTrack_Click(object sender, RoutedEventArgs e) { var trackAux = (Track)datagrid_Track.SelectedItem; if (trackAux != null) { try { using (FileStream fs = File.Create("..\\LocalTracks\\" + trackAux.StoragePath + ".mp3")) { RequestTrackAudio newRequestTrackAudio = new RequestTrackAudio(); newRequestTrackAudio.Filename = trackAux.StoragePath; TrackAudio newTrackAudio = await Session.streamingServerConnection.streamingService.GetTrackAudioAsync(newRequestTrackAudio); fs.Write(newTrackAudio.Song, 0, newTrackAudio.Song.Length); textBlock_Message.Text = "*Track has been download"; } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } else { textBlock_Message.Text = "*Select a track"; } }
public async Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken) { iprot.IncrementRecursionDepth(); try { TField field; await iprot.ReadStructBeginAsync(cancellationToken); while (true) { field = await iprot.ReadFieldBeginAsync(cancellationToken); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 1: if (field.Type == TType.Struct) { RequestTrackAudio = new RequestTrackAudio(); await RequestTrackAudio.ReadAsync(iprot, cancellationToken); } else { await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken); } break; default: await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken); break; } await iprot.ReadFieldEndAsync(cancellationToken); } await iprot.ReadStructEndAsync(cancellationToken); } finally { iprot.DecrementRecursionDepth(); } }
public static async Task <bool> UploadTrackAsync(Track track) { try { RequestTrackAudio requestTrackAudio = new RequestTrackAudio(); requestTrackAudio.Filename = track.StoragePath; TrackAudio trackAudio = await Session.streamingServerConnection.streamingService.GetTrackAudioAsync(requestTrackAudio); byte[] bytes = trackAudio.Song; StreamingPlayer.StopPlayer(); Mp3FileReader mp3Reader = new Mp3FileReader(new MemoryStream(bytes)); waveStream = new WaveChannel32(mp3Reader); waveOutEvent.Init(waveStream); isTrackReady = true; StreamingPlayer.StartPlayer(); return(true); } catch (Exception ex) { Console.WriteLine(ex); return(false); } }
public async Task <TrackAudio> GetTrackAudioAsync(RequestTrackAudio requestTrackAudio, CancellationToken cancellationToken = default(CancellationToken)) { await OutputProtocol.WriteMessageBeginAsync(new TMessage("GetTrackAudio", TMessageType.Call, SeqId), cancellationToken); var args = new GetTrackAudioArgs(); args.RequestTrackAudio = requestTrackAudio; await args.WriteAsync(OutputProtocol, cancellationToken); await OutputProtocol.WriteMessageEndAsync(cancellationToken); await OutputProtocol.Transport.FlushAsync(cancellationToken); var msg = await InputProtocol.ReadMessageBeginAsync(cancellationToken); if (msg.Type == TMessageType.Exception) { var x = await TApplicationException.ReadAsync(InputProtocol, cancellationToken); await InputProtocol.ReadMessageEndAsync(cancellationToken); throw x; } var result = new GetTrackAudioResult(); await result.ReadAsync(InputProtocol, cancellationToken); await InputProtocol.ReadMessageEndAsync(cancellationToken); if (result.__isset.success) { return(result.Success); } throw new TApplicationException(TApplicationException.ExceptionType.MissingResult, "GetTrackAudio failed: unknown result"); }