Ejemplo n.º 1
0
        /// <summary>
        /// Save the audio file to media library.
        /// </summary>
        /// <param name="sender">Save menu item</param>
        /// <param name="e">Event arguments</param>
        private void Save_Click(object sender, EventArgs e)
        {
            AudioFileModel selected = (AudioFileModel)AudioFilesList.SelectedItem;

            if (selected != null)
            {
                var  library = new MediaLibrary();
                Song s       = library.SaveSong(
                    new Uri(selected.FileName, UriKind.RelativeOrAbsolute),
                    null,

                    /*
                     * new SongMetadata()
                     * {
                     *  ArtistName = "ArtistName",
                     *  AlbumArtistName = "AlbumArtistName",
                     *  Name = "SongName",
                     *  AlbumName = "AlbumName",
                     *  Duration = TimeSpan.FromSeconds(10),
                     *  TrackNumber = 1,
                     *  AlbumReleaseDate = DateTime.Now,
                     *  GenreName = "Genre"
                     * },
                     */
                    SaveSongOperation.CopyToLibrary);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Called when an audio file is selected.
        /// </summary>
        /// <param name="sender">AudioFilesList (LongListSelector).</param>
        /// <param name="e">Event arguments.</param>
        void OnAudioFileSelected(Object sender, SelectionChangedEventArgs e)
        {
            AudioFileModel selected = (AudioFileModel)AudioFilesList.SelectedItem;

            if (App.AudioModel.IsPlaying)
            {
                App.AudioManager.StopPlayback();
            }

            if (selected != null)
            {
                selectedFileName = selected.FileName;

                StopPlayButton.IsEnabled = true;
                SaveButton.IsEnabled     = true;
                DeleteButton.IsEnabled   = true;
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Start/Stop the audio playback.
 /// </summary>
 /// <param name="sender">StopPlay menu item</param>
 /// <param name="e">Event arguments</param>
 private void StopPlay_Click(object sender, EventArgs e)
 {
     if (App.AudioModel.IsPlaying)
     {
         App.AudioManager.StopPlayback();
     }
     else
     {
         if (selectedFileName.Length == 0)
         {
             MessageBox.Show("Select an audio file first.");
         }
         else
         {
             AudioFileModel selected  = (AudioFileModel)AudioFilesList.SelectedItem;
             Boolean        useWasapi = selected.SampleRate != 16000 || selected.ChannelCount != 1;
             App.AudioManager.StartPlayback(selectedFileName, useWasapi);
         }
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Loads local audio information.
        /// </summary>
        public void ReadAudioFileInfo()
        {
            AudioFiles.Clear();

            // Load the image which was filtered from isolated app storage.
            System.IO.IsolatedStorage.IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication();

            try
            {
                string[] fileNames = myStore.GetFileNames();
                foreach (string s in fileNames)
                {
                    AudioFileModel audioFile = new AudioFileModel();
                    audioFile.FileName = s;
                    IsolatedStorageFileStream fileStream = myStore.OpenFile(s, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                    audioFile.FileSize = "" + fileStream.Length + " bytes";

                    // Read sample rate and channel count
                    Encoding encoding = Encoding.UTF8;
                    byte[]   bytes    = new byte[4];

                    // channel count
                    fileStream.Seek(22, SeekOrigin.Begin);
                    fileStream.Read(bytes, 0, 2);
                    audioFile.ChannelCount = BitConverter.ToInt16(bytes, 0);

                    // sample rate
                    fileStream.Read(bytes, 0, 4);
                    audioFile.SampleRate = BitConverter.ToInt32(bytes, 0);

                    audioFile.FileLength = "" + fileStream.Length / (2 * audioFile.SampleRate * audioFile.ChannelCount) + " seconds";
                    AudioFiles.Add(audioFile);

                    fileStream.Dispose();
                }
            }
            catch
            {
                MessageBox.Show("Error while trying to read audio files.");
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Delete the audio file.
        /// </summary>
        /// <param name="sender">Delete menu item</param>
        /// <param name="e">Event arguments</param>
        private void Delete_Click(object sender, EventArgs e)
        {
            AudioFileModel selected = (AudioFileModel)AudioFilesList.SelectedItem;

            if (selected != null)
            {
                IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication();
                try
                {
                    myStore.DeleteFile(selected.FileName);
                    App.AudioModel.AudioFiles.Remove(selected);
                    selectedFileName = "";
                }
                catch
                {
                    MessageBox.Show("Error while deleting audio file " + selected.FileName + ".");
                }

                StopPlayButton.IsEnabled = false;
                SaveButton.IsEnabled     = false;
                DeleteButton.IsEnabled   = false;
                ForwardButton.IsEnabled  = false;
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Loads local audio information.
        /// </summary>
        public void ReadAudioFileInfo()
        {
            AudioFiles.Clear();

            // Load the image which was filtered from isolated app storage.
            System.IO.IsolatedStorage.IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication();

            try
            {
                string[] fileNames = myStore.GetFileNames();
                foreach (string s in fileNames)
                {
                    AudioFileModel audioFile = new AudioFileModel();
                    audioFile.FileName = s;
                    IsolatedStorageFileStream fileStream = myStore.OpenFile(s, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                    audioFile.FileSize = "" + fileStream.Length + " bytes";

                    // Read sample rate and channel count
                    Encoding encoding = Encoding.UTF8;
                    byte[] bytes = new byte[4];

                    // channel count
                    fileStream.Seek(22, SeekOrigin.Begin);
                    fileStream.Read(bytes, 0, 2);
                    audioFile.ChannelCount = BitConverter.ToInt16(bytes, 0);

                    // sample rate
                    fileStream.Read(bytes, 0, 4);
                    audioFile.SampleRate = BitConverter.ToInt32(bytes, 0);

                    audioFile.FileLength = "" + fileStream.Length / (2 * audioFile.SampleRate * audioFile.ChannelCount) + " seconds";
                    AudioFiles.Add(audioFile);

                    fileStream.Dispose();
                }
            }
            catch
            {
                MessageBox.Show("Error while trying to read audio files.");
            }
        }