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";
            }
        }
Esempio n. 2
0
        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();
            }
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        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");
        }