// Extracts simple meta data from the path and fills a new AudioFile
        // information about the audio source. If it fails in the downloader or here,
        // we simply return null.
        private async Task <AudioFile> GetAudioFileAsync(string path)
        {
            try // We put this in a try catch block.
            {
                AudioFile song = await m_AudioDownloader.GetAudioFileInfo(path);

                if (song != null) // We check for a local available version.
                {
                    string filename = m_AudioDownloader.GetItem(song.Title);
                    if (filename != null) // We found a local version.
                    {
                        song.FileName     = filename;
                        song.IsNetwork    = false; // Network is now false.
                        song.IsDownloaded = true;
                    }
                }
                return(song);
            }
            catch
            {
                return(null);
            }
        }