当前位置: 首页>>代码示例>>C#>>正文


C# Tag.AddTrack方法代码示例

本文整理汇总了C#中Tag.AddTrack方法的典型用法代码示例。如果您正苦于以下问题:C# Tag.AddTrack方法的具体用法?C# Tag.AddTrack怎么用?C# Tag.AddTrack使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Tag的用法示例。


在下文中一共展示了Tag.AddTrack方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CombineTags

        public static Tag CombineTags(params Tag [] tags)
        {
            Tag ret = new Tag();

            foreach(Tag tag in tags) {
                if(tag == null) {
                    continue;
                }

                foreach(TagTextField artist in tag.Artist) {
                    ret.AddArtist (artist.Content);
                }
                
                foreach(TagTextField album in tag.Album) {
                    ret.AddAlbum(album.Content);
                }

                foreach(TagTextField title in tag.Title) {
                    ret.AddTitle(title.Content);
                }
                
                foreach(TagTextField track in tag.Track) {
                    ret.AddTrack(track.Content);
                }
                
                foreach(TagTextField trackcount in tag.TrackCount) {
                    ret.AddTrackCount(trackcount.Content);
                }
                
                foreach(TagTextField year in tag.Year) {
                    ret.AddYear(year.Content);
                }

                foreach(TagTextField comment in tag.Comment) {
                    ret.AddComment(comment.Content);
                }
                
                foreach(TagTextField license in tag.License) {
                    ret.AddLicense(license.Content);
                }
                
                foreach(TagTextField genre in tag.Genre) {
                    ret.AddGenre(genre.Content);
                }
            }

            return ret;
        }
开发者ID:emtees,项目名称:old-code,代码行数:48,代码来源:Utils.cs

示例2: Read

		public Tag Read(Stream apeStream)
		{
			Tag tag = new Tag();
			
			//Check wether the file contains an APE tag--------------------------------
			apeStream.Seek( apeStream.Length - 32 , SeekOrigin.Begin);
			
			byte[] b = new byte[8];
			apeStream.Read(b, 0, b.Length);
			
			string tagS = new string( System.Text.Encoding.ASCII.GetChars(b) );
			if(tagS != "APETAGEX" ){
				throw new CannotReadException("There is no APE Tag in this file");
			}
			//Parse the tag -)------------------------------------------------
			//Version
			b = new byte[4];
			apeStream.Read( b , 0,  b .Length);
			int version = Utils.GetNumber(b, 0,3);
			if(version != 2000) {
				throw new CannotReadException("APE Tag other than version 2.0 are not supported");
			}
			
			//Size
			b = new byte[4];
			apeStream.Read( b , 0,  b .Length);
			long tagSize = Utils.GetLongNumber(b, 0,3);

			//Number of items
			b = new byte[4];
			apeStream.Read( b , 0,  b .Length);
			int itemNumber = Utils.GetNumber(b, 0,3);
			
			//Tag Flags
			b = new byte[4];
			apeStream.Read( b , 0,  b .Length);
			//TODO handle these
			
			apeStream.Seek(apeStream.Length - tagSize, SeekOrigin.Begin);
			
			for(int i = 0; i<itemNumber; i++) {
				//Content length
				b = new byte[4];
				apeStream.Read( b , 0,  b .Length);
				int contentLength = Utils.GetNumber(b, 0,3);
				if(contentLength > 500000)
					throw new CannotReadException("Item size is much too large: "+contentLength+" bytes");
				
				//Item flags
				b = new byte[4];
				apeStream.Read( b , 0,  b .Length);
				//TODO handle these
				bool binary = ((b[0]&0x06) >> 1) == 1;
				
				int j = 0;
				while(apeStream.ReadByte() != 0)
					j++;
				apeStream.Seek(apeStream.Position - j -1, SeekOrigin.Begin);
				int fieldSize = j;
				
				//Read Item key
				b = new byte[fieldSize];
				apeStream.Read( b , 0,  b .Length);
				apeStream.Seek(1, SeekOrigin.Current);
				string field = new string(System.Text.Encoding.GetEncoding("ISO-8859-1").GetChars(b));

				//Read Item content
				b = new byte[contentLength];
				apeStream.Read( b , 0,  b .Length);
				if(!binary) {
					string content = Encoding.UTF8.GetString(b);
					switch (field) {
					case "Track":
						string num, count;
						Utils.SplitTrackNumber(content, out num, out count);
						if (num != null)
							tag.AddTrack(num);
						if (count != null)
							tag.AddTrackCount(count);
						break;

					default:
					    tag.Add(field, content);
						break;
					}
					
				} //else FIXME
				   // tag.Add(new ApeTagBinaryField(field, b));
			}
			
			return tag;
		} 
开发者ID:emtees,项目名称:old-code,代码行数:92,代码来源:ApeTagReader.cs


注:本文中的Tag.AddTrack方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。