|
| Hjælp!! MP3-registrering med Listview... Fra : Martin Wiboe |
Dato : 01-02-03 14:11 |
|
Hej gruppe!
Jeg håber virkelig der er nogen der kan hjælpe mig med det her, for jeg kan
ikke se hvad der er galt.... Denne rutine skal registrere alle mp3er fra en
række biblioteker i en listview (finde deres titel med MediaPlayer-object,
kunstner og størrelse). Men dataene bliver forkert placeret, mht. kunstner
og nogle gange virker størrelse ikke....
Objekter: LocalMP3s er en listview med 3 kolonner: Title, Artist og Size.
MP3Loader er en filelist med pattern = "*.mp3". Mediaplayer er et Windows
Media Player objekt (den gamle!)... Plz svar!
Formatet for Sources.Dat filen der refereres til i koden er
filsti
filsti
etc...
Venlig hilsen
Marin Wiboe
Følgende sub indlæser som sagt filerne:
Private Sub LoadMp3s()
'On Error Resume Next
Dim FileNumber As Integer, CurrMP3Path As String, CurrFileNum As Integer,
TotalFileNum As Integer
Dim Artist As String, Title As String, Size As Integer
Close
MediaPlayer.Mute = True
FileNumber = FreeFile
Open App.Path & "\Sources.dat" For Input As #FileNumber
Do Until EOF(FileNumber)
Line Input #FileNumber, CurrMP3Path
MP3Loader.Path = CurrMP3Path
For CurrFileNum = 0 To MP3Loader.ListCount - 1
MediaPlayer.FileName = MP3Loader.Path & "\" & MP3Loader.List(CurrFileNum)
Title = MediaPlayer.GetMediaInfoString(mpClipTitle)
Artist = MediaPlayer.GetMediaInfoString(mpClipAuthor)
Size = (FileLen(MP3Loader.Path & "\" & MP3Loader.List(CurrFileNum)) /
1024) / 1024
If MediaPlayer.GetMediaInfoString(mpClipTitle) <> "" Then
LocalMP3s.ListItems.Add Index:=TotalFileNum + CurrFileNum + 1,
Key:=MP3Loader.Path & "\" & MP3Loader.List(CurrFileNum), Text:=Title ',
SmallIcon:=1
Else
LocalMP3s.ListItems.Add Index:=TotalFileNum + CurrFileNum + 1,
Key:=MP3Loader.Path & "\" & MP3Loader.List(CurrFileNum),
Text:=Mid(MP3Loader.List(CurrFileNum), 1, Len(MP3Loader.List(CurrFileNum)) -
4) ', SmallIcon:=1
End If
LocalMP3s.ListItems(TotalFileNum + CurrFileNum + 1).SubItems(1) = Artist
LocalMP3s.ListItems(TotalFileNum + CurrFileNum + 1).SubItems(2) = Size & "
MB"
LocalMP3s.Refresh
Next
Loop
MediaPlayer.Stop
MediaPlayer.Mute = False
Close
For CurrFileNum = 1 To LocalMP3s.ListItems.Count
If LocalMP3s.ListItems(CurrFileNum).SubItems(1) = "" Then
LocalMP3s.ListItems(CurrFileNum).SubItems(1) = "Unknown"
If LocalMP3s.ListItems(CurrFileNum).Text = "" Then
LocalMP3s.ListItems(CurrFileNum).Text = LocalMP3s.ListItems(CurrFileNum).Key
Next
End Sub
| |
preben nielsen (01-02-2003)
| Kommentar Fra : preben nielsen |
Dato : 01-02-03 15:54 |
|
"Martin Wiboe" <martin_wiboe[removethis]@hotmail.com> skrev i en
meddelelse news:b1gh4t$fkl$1@sunsite.dk...
> Hej gruppe!
>
> Marin Wiboe
>
> Følgende sub indlæser som sagt filerne:
>
> Private Sub LoadMp3s()
> 'On Error Resume Next
> Dim FileNumber As Integer, CurrMP3Path As String, CurrFileNum As
Integer,
> TotalFileNum As Integer
> Dim Artist As String, Title As String, Size As Integer
Size er da slet ikke stor nok (i VB6) ! Brug Long.
--
/\ preben nielsen
\/\ prel@post.tele.dk
| |
Martin Wiboe (01-02-2003)
| Kommentar Fra : Martin Wiboe |
Dato : 01-02-03 18:55 |
|
Du har ret! Ændrer det lige, tak! Mht. koden har jeg fundet fejlen: Listview
er sat til Sorted, så når man refererer til de forskellige Listitems pr.
Index, er det klart det går galt.... Undskyld at du har måttet læse hele min
smøre til ingen nytte
Mange venlige hilsner,
Martin Wiboe
"preben nielsen" <prel@post.tele.dk> skrev i en meddelelse
news:3e3bdf87$0$124$edfadb0f@dread16.news.tele.dk...
>
> "Martin Wiboe" <martin_wiboe[removethis]@hotmail.com> skrev i en
> meddelelse news:b1gh4t$fkl$1@sunsite.dk...
> > Hej gruppe!
> >
> > Marin Wiboe
> >
> > Følgende sub indlæser som sagt filerne:
> >
> > Private Sub LoadMp3s()
> > 'On Error Resume Next
> > Dim FileNumber As Integer, CurrMP3Path As String, CurrFileNum As
> Integer,
> > TotalFileNum As Integer
> > Dim Artist As String, Title As String, Size As Integer
>
> Size er da slet ikke stor nok (i VB6) ! Brug Long.
>
>
> --
> /\ preben nielsen
> \/\ prel@post.tele.dk
>
>
>
| |
preben nielsen (01-02-2003)
| Kommentar Fra : preben nielsen |
Dato : 01-02-03 20:20 |
|
"Martin Wiboe" <martin_wiboe[removethis]@hotmail.com> skrev i en
meddelelse news:b1h1p1$26s$1@sunsite.dk...
> Du har ret! Ændrer det lige, tak! Mht. koden har jeg fundet
fejlen: Listview
> er sat til Sorted, så når man refererer til de forskellige
Listitems pr.
> Index, er det klart det går galt....
Jeg undrede mig faktisk også over din måde at håndtere dette på
Hvorfor holder du ikke bare fast på dit Item når du har
..Add'et det ?
Sådan her:
Dim li As ListItem
Set li = LocalMP3s.ListItems.Add(Text:="Tekst 1")
li.SubItems(1) = "A"
li.SubItems(2) = "B"
Set li = LocalMP3s.ListItems.Add(Text:="Tekst 2")
li.SubItems(1) = "A"
li.SubItems(2) = "B"
--
/\ preben nielsen
\/\ prel@post.tele.dk
| |
Martin Wiboe (02-02-2003)
| Kommentar Fra : Martin Wiboe |
Dato : 02-02-03 09:50 |
|
Det er selvfølgelig en mere genial løsning end min, men er ikke så fortrolig
med Set. Hvis jeg havde haft løsningen da jeg startede, var det dog den jeg
havde valgt. Men if it isn't broke, don't fix it, så jeg lader det blive ved
min nuværende løsning. Men du har forøget min horisont med VB, din løsning
er både bedre og mere objektorienteret.
Takker!
Med venlig hilsen,
Martin Wiboe
"preben nielsen" <prel@post.tele.dk> skrev i en meddelelse
news:3e3c1df3$0$137$edfadb0f@dread16.news.tele.dk...
>
> "Martin Wiboe" <martin_wiboe[removethis]@hotmail.com> skrev i en
> meddelelse news:b1h1p1$26s$1@sunsite.dk...
> > Du har ret! Ændrer det lige, tak! Mht. koden har jeg fundet
> fejlen: Listview
> > er sat til Sorted, så når man refererer til de forskellige
> Listitems pr.
> > Index, er det klart det går galt....
>
> Jeg undrede mig faktisk også over din måde at håndtere dette på
> Hvorfor holder du ikke bare fast på dit Item når du har
> .Add'et det ?
>
> Sådan her:
>
> Dim li As ListItem
>
> Set li = LocalMP3s.ListItems.Add(Text:="Tekst 1")
> li.SubItems(1) = "A"
> li.SubItems(2) = "B"
>
> Set li = LocalMP3s.ListItems.Add(Text:="Tekst 2")
> li.SubItems(1) = "A"
> li.SubItems(2) = "B"
>
> --
> /\ preben nielsen
> \/\ prel@post.tele.dk
>
>
>
| |
|
|