Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Tips & tricks

#1686 - Hämta ID3-information från en mp3-fil

Postat 2003-07-10 10:28:22 av Jimmy Mattsson i Kategori Programmering, C#, Kommandon med 0 Kommentarer

using System;
using System.IO;
using System.Text;

class getID3
{
public string Title;
public string Artist;
public string Album;
public string Year;
public string Comment;
public string Track;
public string Genre;

public getID3(string path)
{
setFile(path);
}

public getID3()
{
;
}

public void setFile(string path)
{
string file = path;

Title = "";
Artist = "";
Album = "";
Year = "";
Comment = "";
Track = "";
Genre = "";

try
{
using (FileStream fs = File.OpenRead(file))
{
fs.Position = fs.Length - 128;
byte[] b = new byte[1024];
while (fs.Read(b,0,b.Length) > 0)
{
if(fs.Length - 128 < fs.Position)
{
for(int i = 0; i < b.Length; i++)
{

if(b[i] == 84 && b[i + 1] == 65 && b[i + 2] == 71)
{
int pos = i + 3;

//Get the title
for(int y = 0; y < 30; y++)
{
if(b[pos] == 0 && b[pos + 1] == 0)
{
pos += 30 - y;
y = 30;
}
else
{
Title = Title + Convert.ToString(Convert.ToChar(b[pos]));
pos++;
}

}

//Get the artist
for(int y = 0; y < 30; y++)
{
if(b[pos] == 0 && b[pos + 1] == 0)
{
pos += 30 - y;
y = 30;
}
else
{
Artist = Artist + Convert.ToString(Convert.ToChar(b[pos]));
pos++;
}
}

//Get the Album
for(int y = 0; y < 30; y++)
{
if(b[pos] == 0 && b[pos + 1] == 0)
{
pos += 30 - y;
y = 30;
}
else
{
Album = Album + Convert.ToString(Convert.ToChar(b[pos]));
pos++;
}
}

//Get the Year
for(int y = 0; y < 4; y++)
{
if(b[pos] == 0 && b[pos + 1] == 0)
{
pos += 4 - y;
y = 4;
}
else
{
Year = Year + Convert.ToString(Convert.ToChar(b[pos]));
pos++;
}
}

//Get the Comment
for(int y = 0; y < 28; y++)
{
if(b[pos] == 0 && b[pos + 1] == 0)
{
pos += 28 - y;
y = 28;
}
else
{
Comment = Comment + Convert.ToString(Convert.ToChar(b[pos]));
pos++;
}
}

//Get the Track
for(int y = 0; y < 2; y++)
{
if(b[pos] == 0 && b[pos + 1] == 0)
{
pos += 2 - y;
y = 2;
}
else
{
Track = Track + Convert.ToString(b[pos]);
pos++;
}
}
Title = Title.Trim();
Artist = Artist.Trim();
Album = Album.Trim();
Year = Year.Trim();
Comment = Comment.Trim();
Track = Track.Trim();

Genre = getGenre(b[pos]);

i = b.Length;
}
}
}
}
}
}
catch
{
;
}
}

public string getGenre(byte b)
{
string name;

switch(b)
{
case 0: name = "Blues"; break;
case 1: name = "Classic Rock"; break;
case 2: name = "Country"; break;
case 3: name = "Dance"; break;
case 4: name = "Disco"; break;
case 5: name = "Funk"; break;
case 6: name = "Grunge"; break;
case 7: name = "Hip-Hop"; break;
case 8: name = "Jazz"; break;
case 9: name = "Metal"; break;
case 10: name = "New Age"; break;
case 11: name = "Oldies"; break;
case 12: name = "Other"; break;
case 13: name = "Pop"; break;
case 14: name = "R&B"; break;
case 15: name = "Rap"; break;
case 16: name = "Reggae"; break;
case 17: name = "Rock"; break;
case 18: name = "Techno"; break;
case 19: name = "Industrial"; break;
case 20: name = "Alternative"; break;
case 21: name = "Ska"; break;
case 22: name = "Death Metal"; break;
case 23: name = "Pranks"; break;
case 24: name = "Soundtrack"; break;
case 25: name = "Euro-Techno"; break;
case 26: name = "Ambient"; break;
case 27: name = "Trip-Hop"; break;
case 28: name = "Vocal"; break;
case 29: name = "Jazz+Funk"; break;
case 30: name = "Fusion"; break;
case 31: name = "Trance"; break;
case 32: name = "Classical"; break;
case 33: name = "Instrumental"; break;
case 34: name = "Acid"; break;
case 35: name = "House"; break;
case 36: name = "Game"; break;
case 37: name = "Sound Clip"; break;
case 38: name = "Gospel"; break;
case 39: name = "Noise"; break;
case 40: name = "AlternRock"; break;
case 41: name = "Bass"; break;
case 42: name = "Soul"; break;
case 43: name = "Punk"; break;
case 44: name = "Space"; break;
case 45: name = "Meditative"; break;
case 46: name = "Instrumental Pop"; break;
case 47: name = "Instrumental Rock"; break;
case 48: name = "Ethnic"; break;
case 49: name = "Gothic"; break;
case 50: name = "Darkwave"; break;
case 51: name = "Techno-Industrial"; break;
case 52: name = "Electronic"; break;
case 53: name = "Pop-Folk"; break;
case 54: name = "Eurodance"; break;
case 55: name = "Dream"; break;
case 56: name = "Southern Rock"; break;
case 57: name = "Comedy"; break;
case 58: name = "Cult"; break;
case 59: name = "Gangsta"; break;
case 60: name = "Top 40"; break;
case 61: name = "Christian Rap"; break;
case 62: name = "Pop/Funk"; break;
case 63: name = "Jungle"; break;
case 64: name = "Native American"; break;
case 65: name = "Cabaret"; break;
case 66: name = "New Wave"; break;
case 67: name = "Psychedelic"; break;
case 68: name = "Rave"; break;
case 69: name = "Showtunes"; break;
case 70: name = "Trailer"; break;
case 71: name = "Lo-Fi"; break;
case 72: name = "Tribal"; break;
case 73: name = "Acid Punk"; break;
case 74: name = "Acid Jazz"; break;
case 75: name = "Polka"; break;
case 76: name = "Retro"; break;
case 77: name = "Musical"; break;
case 78: name = "Rock & Roll"; break;
case 79: name = "Hard Rock"; break;
default: name = null; break;
}
return name;
}
}

Sample: id3.cs
Size: 5,47 kB

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 153
27 952
271 704
1 197
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies