Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: [VB6] Info Wav ed MP3

  1. #1

    [VB6] Info Wav ed MP3

    Salve,

    mi servirebbe un pezzettino di codice per ottenere quanto segue:

    1) le informazioni di un file wav
    -durata
    -sample rate
    -frequenza di campionamento
    -nome
    .....

    2) la durata e il bitrate di un mp3 (ma è un'altra domanda)


    grazie
    Dice il saggio:
    Non ci sono domande difficili, esistono solo risposte che non conosciamo!
    "Se qualcosa può andare male, lo farà" - Murphy

  2. #2
    per l'mp3 dai un occhiata qua http://www.programmazione.it/index.p...ip=9&idArea=10

    per il wav nn so, ma potresti provare con il controllo media player, magari ti da la possibilita di ricavare dati
    Il Ticino è biancoblù
    DVDS delegato ufficiale

  3. #3
    Suggerimento interessante ma peccato! C'è solo il modo di leggere l'ID3 dell'mp3... quello lo so fare!

    È la durata che mi manca!

    Ritenta! Sarò più fortunato??

    A parte gli scherzi... sono bloccato! Ho fatto un programmino bellino e questa sarebbe la ciliegina sulla torta!

    Qualcuno deve saperlo! Bill Gates lo sa! Non sarà certo l'unico!
    Dice il saggio:
    Non ci sono domande difficili, esistono solo risposte che non conosciamo!
    "Se qualcosa può andare male, lo farà" - Murphy

  4. #4
    ora la domanda te la faccio io, il tuo programmino fa anche il play degli mp3?
    se si, usi un algoritmo o un activex?
    Il Ticino è biancoblù
    DVDS delegato ufficiale

  5. #5
    rifletti!

    se sapessi fare il play.... per quale motivo avrei problemi a conoscere il bitrate del file?


    è proprio quello che mi serve!!
    Dice il saggio:
    Non ci sono domande difficili, esistono solo risposte che non conosciamo!
    "Se qualcosa può andare male, lo farà" - Murphy

  6. #6
    ah ok, magari usavi un qualche ocx scagazzato
    Il Ticino è biancoblù
    DVDS delegato ufficiale

  7. #7
    no, purtroppo non ho nessun ocx... ma ora che ci penso mi pare di averlo trovato da qualche parte un programmino vb che legge gli mp3 (ma li legge soltanto, niente info).


    Se lo ritrovo magari te lo mando (ma non ci contare troppo, avrò formattato 200 volte in un anno!)
    Dice il saggio:
    Non ci sono domande difficili, esistono solo risposte che non conosciamo!
    "Se qualcosa può andare male, lo farà" - Murphy

  8. #8
    per estrarre qualche info usate questa classe

    codice:
    ' cMP3Info Class
    Private mvarFilename As String
    Private Type Info
        sTitle As String
        sArtist As String
        sAlbum As String
        sComment As String
        sYear As String
        sGenre As String
    End Type
    Private MP3Info As Info
    Public Property Get Filename() As String
        Filename = mvarFilename
    End Property
    
    Private Function IsValidFile(ByVal sFilename) As Boolean
        Dim bOk As Boolean
        ' make sure file exists
        bOk = CBool(Dir(sFilename, vbHidden) <> "")
        Dim aExtensions, ext
        aExtensions = Array(".mp3", ".mp2", ".mp1")
        Dim bOkayExtension As Boolean
        bOkayExtension = False
        If bOk Then
            For Each ext In aExtensions
                If InStr(1, sFilename, ext, vbTextCompare) > 0 Then
                    bOkayExtension = True
                End If
            Next    'ext
        End If
        IsValidFile = bOk And bOkayExtension
    End Function
    
    Public Property Let Filename(ByVal sPassFilename As String)
        Dim iFreefile As Integer
        Dim lFilePos As Long
        Dim sData As String * 128
        Dim sGenre() As String
        ' Genre
        Const sGenreMatrix As String = "Blues|Classic Rock|Country|Dance|Disco|Funk|Grunge|" + _
            "Hip-Hop|Jazz|Metal|New Age|Oldies|Other|Pop|R&B|Rap|Reggae|Rock|Techno|" + _
            "Industrial|Alternative|Ska|Death Metal|Pranks|Soundtrack|Euro-Techno|" + _
            "Ambient|Trip Hop|Vocal|Jazz+Funk|Fusion|Trance|Classical|Instrumental|Acid|" + _
            "House|Game|Sound Clip|Gospel|Noise|Alt. Rock|Bass|Soul|Punk|Space|Meditative|" + _
            "Instrumental Pop|Instrumental Rock|Ethnic|Gothic|Darkwave|Techno-Industrial|Electronic|" + _
            "Pop-Folk|Eurodance|Dream|Southern Rock|Comedy|Cult|Gangsta Rap|Top 40|Christian Rap|" + _
            "Pop/Punk|Jungle|Native American|Cabaret|New Wave|Phychedelic|Rave|Showtunes|Trailer|" + _
            "Lo-Fi|Tribal|Acid Punk|Acid Jazz|Polka|Retro|Musical|Rock & Roll|Hard Rock|Folk|" + _
            "Folk/Rock|National Folk|Swing|Fast-Fusion|Bebob|Latin|Revival|Celtic|Blue Grass|" + _
            "Avantegarde|Gothic Rock|Progressive Rock|Psychedelic Rock|Symphonic Rock|Slow Rock|" + _
            "Big Band|Chorus|Easy Listening|Acoustic|Humour|Speech|Chanson|Opera|Chamber Music|" + _
            "Sonata|Symphony|Booty Bass|Primus|Porn Groove|Satire|Slow Jam|Club|Tango|Samba|Folklore|" + _
            "Ballad|power Ballad|Rhythmic Soul|Freestyle|Duet|Punk Rock|Drum Solo|A Capella|Euro-House|" + _
            "Dance Hall|Goa|Drum & Bass|Club-House|Hardcore|Terror|indie|Brit Pop|Negerpunk|Polsk Punk|" + _
            "Beat|Christian Gangsta Rap|Heavy Metal|Black Metal|Crossover|Comteporary Christian|" + _
            "Christian Rock|Merengue|Salsa|Trash Metal|Anime|JPop|Synth Pop"
        ' Build the Genre array (VB6+ only)
        sGenre = Split(sGenreMatrix, "|")
        ' Store the filename (for "Get Filename"
        '     property)
        mvarFilename = sPassFilename
        ' Clear the info variables
        If Not IsValidFile(sPassFilename) Then    ' bug fix
        Exit Property
    End If
    MP3Info.sTitle = ""
    MP3Info.sArtist = ""
    MP3Info.sAlbum = ""
    MP3Info.sYear = ""
    MP3Info.sComment = ""
    ' Ensure the MP3 file exists
    ' Retrieve the info data from the MP3
    iFreefile = FreeFile
    lFilePos = FileLen(mvarFilename) - 127
    If lFilePos > 0 Then    ' bug fix
    Open mvarFilename For Binary As #iFreefile
    Get #iFreefile, lFilePos, sData
    Close #iFreefile
    End If
    ' Populate the info variables
    If Left(sData, 3) = "TAG" Then
    MP3Info.sTitle = Mid(sData, 4, 30)
    MP3Info.sArtist = Mid(sData, 34, 30)
    MP3Info.sAlbum = Mid(sData, 64, 30)
    MP3Info.sYear = Mid(sData, 94, 4)
    MP3Info.sComment = Mid(sData, 98, 30)
    Dim lGenre
    lGenre = Asc(Mid(sData, 128, 1))
    If lGenre <= UBound(sGenre) Then
        MP3Info.sGenre = sGenre(lGenre)
    Else
        MP3Info.sGenre = ""
    End If
    Else
    MP3Info = GetInfo(mvarFilename)
    End If
    End Property
    
    Private Function GetInfo(ByVal sFilename) As Info
    Dim i As Info
    GetInfo = i
    Dim s
    s = sFilename
    If InStrRev(s, "\) > 0 Then    'it's a full path
    s = Mid(s, InStrRev(s, "\) + 1)
    End If
    'drop extension
    s = Left(s, InStrRev(s, ".", , vbTextCompare) - 1)
    s = Replace(Trim(s), " ", " ")
    s = Trim(s)
    If CountItems(s, " ") < 1 Then
    i.sTitle = Replace(s, "_", " ")
    GetInfo = i
    Exit Function
    End If
    s = Trim(Replace(s, "_", " "))
    If Left(s, 1) = "(" And CountItems(s, "-") < 3 Then
    i.sArtist = Mid(s, 2, InStr(s, ")") - 2)
    s = Trim(Mid(s, InStr(s, ")") + 1))
    If Left(s, 1) = "-" Then    'grab title
    i.sTitle = Trim(Mid(s, 2))
    Else    'grab title anyway
    If InStr(s, "-") > 0 Then
    i.sAlbum = Mid(s, InStr(s, "-") + 1)
    i.sTitle = Left(s, InStr(s, "-") - 1)
    Else
    i.sTitle = Trim(s)
    End If
    End If
    Else
    Dim aThings
    Dim l
    aThings = Split(s, "- ")
    For l = 0 To UBound(aThings)
    If Not IsNumeric(aThings(l)) Then
    If i.sArtist = "" Then
        i.sArtist = aThings(l)
    Else
        If IsNumeric(aThings(l - 1)) Then    ' title
        If i.sTitle = "" Then
            i.sTitle = aThings(l)
        End If
    ElseIf i.sAlbum = "" Then
        i.sAlbum = aThings(l)
    End If
    End If
    End If
    Next    ' i
    End If
    i.sArtist = Replace(Replace(i.sArtist, "(", ""), ")", "")
    If Left(s, 1) <> "(" And i.sTitle = "" And (InStr(sFilename, "\) <> InStrRev(sFilename, "\)) Then
    ' recurse
    GetInfo = GetInfo(FixDir(sFilename))
    Else
    GetInfo = i
    End If
    End Function
    
    Private Function CountItems(s, sToCount)
    Dim a
    a = Split(s, sToCount)
    If UBound(a) = -1 Then
    CountItems = 0
    Else
    CountItems = UBound(a) - LBound(a)
    End If
    End Function
    
    Private Function FixDir(sFullpath)
    Dim s1, s2
    s1 = Trim(Left(sFullpath, InStrRev(sFullpath, "\) - 1))
    s2 = Trim(Mid(sFullpath, InStrRev(sFullpath, "\) + 1))
    FixDir = s1 & " - " & s2
    End Function
    
    Public Property Get Title() As String
    Title = Trim(MP3Info.sTitle)
    End Property
    
    Public Property Get Artist() As String
    Artist = Trim(MP3Info.sArtist)
    End Property
    
    Public Property Get Genre() As String
    Genre = Trim(MP3Info.sGenre)
    End Property
    
    Public Property Get Album() As String
    Album = Trim(MP3Info.sAlbum)
    End Property
    
    Public Property Get Year() As String
    Year = Trim(MP3Info.sYear)
    End Property
    
    Public Property Get Comment() As String
    Comment = Trim(MP3Info.sComment)
    End Property
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  9. #9
    siccome mi ci vorrebbero 2 ore a leggere tutto il listato (lo farò presto!) mi dici subito una cosa?

    Ce li ricavo il bitrate e la durata dell'mp3?
    Dice il saggio:
    Non ci sono domande difficili, esistono solo risposte che non conosciamo!
    "Se qualcosa può andare male, lo farà" - Murphy

  10. #10
    Originariamente inviato da cleverboy
    siccome mi ci vorrebbero 2 ore a leggere tutto il listato (lo farò presto!) mi dici subito una cosa?

    Ce li ricavo il bitrate e la durata dell'mp3?
    da qui non puoi ti trovi solo le cose informazioni dentro la type in alto
    però smanettandoci un po' forse trovi qualcos'altro
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.