USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic.Net    (Imagem/Som/Multimídia)

Título da Dica:  lendo e escrevento Tags de MP3
Postada em 1/2/2004 por messohal            
===>>>A CLASSE<<<===

Imports System.IO

Public Class MP3ID3v1

    ' Construindo
    Public Sub New(Optional ByVal Filename As String = "")
        MyBase.New()
        If (Filename <> "") Then Me.Filename = Filename
    End Sub

    ' Generos
    Public Enum Genres As Byte
        Blues = 0
        ClassicRock = 1
        Country = 2
        Dance = 3
        Disco = 4
        Funk = 5
        Grunge = 6
        HipHop = 7
        Jazz = 8
        Metal = 9
        NewAge = 10
        Oldies = 11
        Other = 12
        Pop = 13
        RnB = 14
        Rap = 15
        Reggae = 16
        Rock = 17
        Techno = 18
        Industrial = 19
        Alternative = 20
        Ska = 21
        DeathMetal = 22
        Pranks = 23
        Soundtrack = 24
        EuroTechno = 25
        Ambient = 26
        TripHop = 27
        Vocal = 28
        JazzFunk = 29
        Fusion = 30
        Trance = 31
        Classical = 32
        Instrumental = 33
        Acid = 34
        House = 35
        Game = 36
        SoundClip = 37
        Gospel = 38
        Noise = 39
        AlternRock = 40
        Bass = 41
        Soul = 42
        Punk = 43
        Space = 44
        Meditative = 45
        InstrumentalPop = 46
        InstrumentalRock = 47
        Ethnic = 48
        Gothic = 49
        Darkwave = 50
        TechnoIndustrial = 51
        Electronic = 52
        PopFolk = 53
        Eurodance = 54
        Dream = 55
        SouthernRock = 56
        Comedy = 57
        Cult = 58
        Gangsta = 59
        Top40 = 60
        ChristianRap = 61
        PopFunk = 62
        Jungle = 63
        NativeAmerican = 64
        Cabaret = 65
        NewWave = 66
        Psychadelic = 67
        Rave = 68
        Showtunes = 69
        Trailer = 70
        LoFi = 71
        Tribal = 72
        AcidPunk = 73
        AcidJazz = 74
        Polka = 75
        Retro = 76
        Musical = 77
        RocknRoll = 78
        HardRock = 79
        None = 255
    End Enum

    ' Tipos de Frames
    Public Enum FrameTypes As Byte
        Title = 0
        Artist = 1
        Album = 2
        Year = 3
        Track = 4
        Comment = 5
        Genre = 6
    End Enum
    ' Nome do Arquivo
    Private mstrFilename As String
    Public Property Filename() As String
        Get
            Return mstrFilename
        End Get
        Set(ByVal Value As String)
            Dim objFile As File
            If (objFile.Exists(Value)) Then
                mstrFilename = Value
                Refresh()
            Else
                Throw New System.IO.FileLoadException( _
                    "O arquivo Naum existe", Value)
            End If
        End Set
    End Property

    ' Tag existe?
    Private mblnTagExists As Boolean
    Public ReadOnly Property TagExists() As Boolean
        Get
            Return mblnTagExists
        End Get
    End Property

    ' Frame
    Private mobjFrame(7) As Object
    Public Property Frame(ByVal FrameType As FrameTypes)
        Get
            Return mobjFrame(FrameType)
        End Get
        Set(ByVal Value)
            mobjFrame(FrameType) = Value
        End Set
    End Property

    ' Refresh
    Public Sub Refresh()

        ' Declaracoes
        Dim strTag As New String(" ", 3)
        Dim strTitle As New String(" ", 30)
        Dim strArtist As New String(" ", 30)
        Dim strAlbum As New String(" ", 30)
        Dim strYear As New String(" ", 4)
        Dim strComment As New String(" ", 28)
        Dim bytDummy As Byte
        Dim bytTrack As Byte
        Dim bytGenre As Byte

        ' Abrindo o Arquivo
        Dim intFile As Integer = FreeFile()
        FileOpen(intFile, mstrFilename, OpenMode.Binary, _
              OpenAccess.Read, OpenShare.LockWrite)

        ' Tamanho do Arquivo
        Dim lngLOF As Long = LOF(intFile)
        If (lngLOF > 128) Then

            ' Check ID3v1 tag
            FileGet(intFile, strTag, lngLOF - 127, True)
            If (strTag.ToUpper <> "TAG") Then

                ' Naum ID3v1 tag encontrada
                mblnTagExists = False
                mobjFrame(0) = ""
                mobjFrame(1) = ""
                mobjFrame(2) = ""
                mobjFrame(3) = ""
                mobjFrame(4) = ""
                mobjFrame(5) = ""
                mobjFrame(6) = ""

            Else

                ' ID3v1 tag found
                mblnTagExists = True

                ' Lendo todos os Frames do Arquivo
                FileGet(intFile, strTitle)
                FileGet(intFile, strArtist)
                FileGet(intFile, strAlbum)
                FileGet(intFile, strYear)
                FileGet(intFile, strComment)
                FileGet(intFile, bytDummy)
                FileGet(intFile, bytTrack)
                FileGet(intFile, bytGenre)

                ' Pegando as Propriedades do Frame
                mobjFrame(0) = strTitle
                mobjFrame(1) = strArtist
                mobjFrame(2) = strAlbum
                mobjFrame(3) = strYear
                mobjFrame(4) = bytTrack
                mobjFrame(5) = strComment
                mobjFrame(6) = bytGenre

            End If
        End If

        ' Fechando o Arquivo
        FileClose(intFile)

    End Sub

    ' Update
    Public Sub Update()

        ' Declaracoes
        Dim strTag As New String(" ", 3)
        Dim strTitle As New String(" ", 30)
        Dim strArtist As New String(" ", 30)
        Dim strAlbum As New String(" ", 30)
        Dim strYear As New String(" ", 4)
        Dim strComment As New String(" ", 28)
        Dim bytDummy As Byte
        Dim bytTrack As Byte
        Dim bytGenre As Byte

        ' Abrindo o Arquivo
        Dim intFile As Integer = FreeFile()
        FileOpen(intFile, mstrFilename, OpenMode.Binary, _
           OpenAccess.ReadWrite, OpenShare.LockWrite)

        ' Pegando o Tamanho do arquivo
        Dim lngLOF As Long = LOF(intFile)
        If (lngLOF > 0) Then
            If (lngLOF > 128) Then

                ' Check ID3v1 tag
                FileGet(intFile, strTag, lngLOF - 127)
                If (strTag.ToUpper <> "TAG") Then

                    ' Naum ID3v1 tag encontrada
                    Seek(intFile, lngLOF)
                    strTag = "TAG"
                    FilePut(intFile, strTag)

                End If

                ' Fixando o Tamanho dos Frames
                strTitle = LSet(mobjFrame(0), Len(strTitle))
                strArtist = LSet(mobjFrame(1), Len(strArtist))
                strAlbum = LSet(mobjFrame(2), Len(strAlbum))
                strYear = LSet(mobjFrame(3), Len(strYear))
                bytTrack = mobjFrame(4)
                strComment = LSet(mobjFrame(5), Len(strComment))
                bytGenre = mobjFrame(6)

                ' Escrevendo o Tamanho dos Arquivos
                FilePut(intFile, strTitle)
                FilePut(intFile, strArtist)
                FilePut(intFile, strAlbum)
                FilePut(intFile, strYear)
                FilePut(intFile, strComment)
                FilePut(intFile, bytDummy)
                FilePut(intFile, bytTrack)
                FilePut(intFile, bytGenre)

            End If
        End If

        ' Fechando o Arquivo
        FileClose(intFile)

    End Sub

End Class

===>>>CHAMANDO<<<====

Dim objMP3V1 As New MP3ID3v1("c:\song.mp3")

If (objMP3V1.TagExists) Then
    MessageBox.Show(objMP3V1.Frame(MP3ID3v1.FrameTypes.Album))
    MessageBox.Show(objMP3V1.Frame(MP3ID3v1.FrameTypes.Artist))
End If

objMP3V1.Frame(MP3ID3v1.FrameTypes.Album) = "Album name"
objMP3V1.Update()
 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página