示例#1
0
 public Track(PlaybackTrack track)
 {
     TrackRef = track;
     Artist   = "Unknown Artist";
     Title    = TrackRef.Title;
     if (TrackRef is LibraryPlaybackTrack)
     {
         LibraryPlaybackTrack libraryPlaybackTrack = (LibraryPlaybackTrack)TrackRef;
         if (libraryPlaybackTrack.AlbumLibraryId > 0)
         {
             MicrosoftZuneLibrary.AlbumMetadata album =
                 FindAlbumInfoHelper.GetAlbumMetadata(libraryPlaybackTrack.AlbumLibraryId);
             Artist = album.AlbumArtist;
         }
     }
 }
示例#2
0
文件: Track.cs 项目: quad341/zpd
        public Track(PlaybackTrack zuneTrack, int index)
            : this()
        {
            if (zuneTrack != null)
            {
                ZuneTrack = zuneTrack;
                string trackUri;
                zuneTrack.GetURI(out trackUri);
                Uri = trackUri;
                Title = zuneTrack.Title;
                Duration = zuneTrack.Duration;
                MediaId = zuneTrack.ZuneMediaId.GetHashCode();
                ConvertedMediaTypeId = (int) zuneTrack.MediaType;

                if (zuneTrack is LibraryPlaybackTrack)
                {
                    LibraryPlaybackTrack libraryPlaybackTrack = (LibraryPlaybackTrack)zuneTrack;
                    MediaId = libraryPlaybackTrack.MediaId;

                    if (libraryPlaybackTrack.AlbumLibraryId > 0)
                    {
                        AlbumMetadata album = FindAlbumInfoHelper.GetAlbumMetadata(libraryPlaybackTrack.AlbumLibraryId);

                        Artist = album.AlbumArtist;
                        ArtistId = libraryPlaybackTrack.AlbumArtistLibraryId;
                        Album = album.AlbumTitle;
                        AlbumId = libraryPlaybackTrack.AlbumLibraryId;
                        ReleaseYear = album.ReleaseYear;
                        CoverUrl = album.CoverUrl;
                    }
                }
                else if (zuneTrack is MarketplacePlaybackTrack)
                {
                    MarketplacePlaybackTrack marketplacePlaybackTrack = (MarketplacePlaybackTrack)zuneTrack;

                    Artist = marketplacePlaybackTrack.Artist;
                    Album = marketplacePlaybackTrack.Album;
                }
                //else if (zuneTrack is StreamingPlaybackTrack)
                //{
                //    StreamingPlaybackTrack streamingPlaybackTrack = (StreamingPlaybackTrack)zuneTrack;
                //}
                //else if (zuneTrack is StreamingRadioPlaybackTrack)
                //{
                //    StreamingRadioPlaybackTrack streamingRadioPlaybackTrack = (StreamingRadioPlaybackTrack)zuneTrack;
                //}
                else if (zuneTrack is VideoPlaybackTrack)
                {
                    VideoPlaybackTrack videoPlaybackTrack = (VideoPlaybackTrack)zuneTrack;
                    Artist = videoPlaybackTrack.Artist;
                }

                // user rating
                Rating = (TrackRating)zuneTrack.UserRating;
                if (zuneTrack.RatingChanged.Available)
                {
                    // anonymous event handler should take care of possible memory leaks
                    zuneTrack.RatingChanged.PropertyChanged += delegate(object ratingSender, PropertyChangedEventArgs ratingEvent)
                    {
                        Rating = (TrackRating)zuneTrack.UserRating;
                    };
                }
            }
            Index = index;
        }