示例#1
0
文件: Track.cs 项目: thomas-db/Youdow
        private async void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
        {
            try
            {
                // TODO changer l'emplacement de sauvergarde et nettoyer le code
                byte[] buffer = new byte[e.Result.Length];
                //Store bytes in buffer, so it can be saved later on
                await e.Result.ReadAsync(buffer, 0, buffer.Length);

                //Store to isolatedstorage
                IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication();

                //Create file
                using (IsolatedStorageFileStream stream = file.OpenFile(title + ".mp3", FileMode.Create))
                {
                    //Write content stream to file
                    await stream.WriteAsync(buffer, 0, buffer.Length);
                }
                // Access the file.
                StorageFolder local      = Windows.Storage.ApplicationData.Current.LocalFolder;
                StorageFile   storedFile = await local.GetFileAsync(title + ".mp3");

                Microsoft.Xna.Framework.Media.PhoneExtensions.SongMetadata metaData = new Microsoft.Xna.Framework.Media.PhoneExtensions.SongMetadata();
                // enregistre musique dans le dossier choisi
                MainPage.main.Dispatcher.BeginInvoke(new Action(delegate()
                {
                    if (MainPage.main.FolderName.Text != "")
                    {
                        metaData.AlbumName = MainPage.main.FolderName.Text;
                    }
                    else
                    {
                        metaData.AlbumName = "YoudowSave";
                    }
                    metaData.ArtistName = "Youdow";
                    metaData.GenreName  = "";
                    if (artist != "Artiste inconnu")
                    {
                        metaData.Name = artist + " - " + title;
                    }
                    else
                    {
                        metaData.Name = artist + " - " + title;
                    }
                    var ml      = new MediaLibrary();
                    Uri songUri = new Uri(title + ".mp3", UriKind.RelativeOrAbsolute);
                    var song    = Microsoft.Xna.Framework.Media.PhoneExtensions.MediaLibraryExtensions.SaveSong(ml, songUri, metaData, Microsoft.Xna.Framework.Media.PhoneExtensions.SaveSongOperation.MoveToLibrary);
                    MessageBox.Show("Téléchargement de \"" + title + "\" terminé !");
                    file.DeleteFile(title + ".mp3");
                }));
            }
            catch (Exception ex)
            {
                MessageBox.Show("We could not finish your download. Error message: " + ex.Message);
            }
        }
        private void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
        {
            if (e.Result == null)
                return;
            var isolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication();
            using (isolatedStorageFile)
            {
                var isolatedStorageFileStream = isolatedStorageFile.CreateFile(currClip.aid.ToString());

                int chunkSize = 4096;
                byte[] bytes = new byte[chunkSize];
                int byteCount;
                while ((byteCount = e.Result.Read(bytes, 0, chunkSize)) > 0)
                {
                    isolatedStorageFileStream.Write(bytes, 0, byteCount);
                }
                isolatedStorageFileStream.Close();

                Microsoft.Xna.Framework.Media.PhoneExtensions.SongMetadata metaData = new Microsoft.Xna.Framework.Media.PhoneExtensions.SongMetadata();
                metaData.ArtistName = currClip.artist;
                metaData.Name = currClip.title;
                metaData.GenreName = "vkontakte";

                var ml = new MediaLibrary();
                Uri songUri = new Uri(currClip.aid.ToString(), UriKind.RelativeOrAbsolute);

                var song = Microsoft.Xna.Framework.Media.PhoneExtensions.MediaLibraryExtensions.SaveSong
                           (ml,
                            songUri,
                            metaData, Microsoft.Xna.Framework.Media.PhoneExtensions.SaveSongOperation.CopyToLibrary
                            );

                isolatedStorageFile.DeleteFile(currClip.aid.ToString());
            }

            DownloadNext();
        }
 private void ApplicationBarIconButton_Click(object sender, EventArgs e)
 {
     Microsoft.Xna.Framework.Media.PhoneExtensions.SongMetadata songMetadata = new Microsoft.Xna.Framework.Media.PhoneExtensions.SongMetadata();
 }