Ik ben dus bezig met een update voor mijn sidebar gadget voor Windows Vista. Nu is het zo dat die gadgets gewoon kleine webpagina's zijn.
Zo kun je natuurlijk ook gebruik maken van de Media Player object van Microsoft.
Hier meer info
Op deze manier heb ik het volgende al voor elkaar:
- Haal alle muziek items op
- Haal alle playlists op excl de standaard playlists met sterren etc
- Haal alle artiesten op
- Haal alle liedjes van die artiest op
Wat moet nog:
- Filter uit de liedjes alle albums
- Zet alle liedjes in die albums
- geef de albums terug en geef ze weer op je scherm (het makkelijke gedeelte
)
Maar nu moet ik dus met die informatie een lijst met albums bouwen en daaronder de juiste liedjes stoppen. Opzich helemaal geen moeilijke taak meer, maar op de een of andere manier kom ik in een loop terecht etc. Ik zie gewoon even door de bomen het bos niet meer.
Het stuk wat commented is geeft de fout. Ik denk dat mijn processor gewoon flink op zijn kop krijgt als javascript voor 183 artiesten alle liedjes op moet gaan zoeken, maar ik kan dit niet met zekerheid zeggen.
Ziet iemand wat er fout aan is, of wat nog geoptimaliseerd kan worden om tijd te besparen?
Zo kun je natuurlijk ook gebruik maken van de Media Player object van Microsoft.
Hier meer info
Op deze manier heb ik het volgende al voor elkaar:
- Haal alle muziek items op
- Haal alle playlists op excl de standaard playlists met sterren etc
- Haal alle artiesten op
- Haal alle liedjes van die artiest op
Wat moet nog:
- Filter uit de liedjes alle albums
- Zet alle liedjes in die albums
- geef de albums terug en geef ze weer op je scherm (het makkelijke gedeelte
Maar nu moet ik dus met die informatie een lijst met albums bouwen en daaronder de juiste liedjes stoppen. Opzich helemaal geen moeilijke taak meer, maar op de een of andere manier kom ik in een loop terecht etc. Ik zie gewoon even door de bomen het bos niet meer.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
| function get_playlists() { var playlists = new Array(); var all_audio = Player.mediaCollection.getByAttribute("MediaType", "Audio"); var temp_playlists = Player.MediaCollection.getByAttribute("MediaType", "playlist"); playlists[0] = all_audio; for (i = 0; i < temp_playlists.count; i++) { var current_playlist = temp_playlists.item(i).getItemInfo("WM/MediaClassSecondaryID"); var auto_playlist = '{EB0BAFB6-3C4F-4C31-AA39-95C7B8D7831D}'; if (current_playlist != auto_playlist) playlists[playlists.length] = temp_playlists.item(i); } return playlists; } function get_library() { var library = new Array(); var artists = get_artists(); for (i = 1; i < artists.count; i++) library[library.length] = new Array(artists.item(i), get_albums(artists.item(i))); for (i = 0; i < library.length; i++) document.write(library[i][0]); } function get_artists() { return Player.mediaCollection.getAttributeStringCollection("Author", "Audio"); } function get_albums(artist) { var albums = new Array(); var songs = Player.mediaCollection.getByAuthor(artist); alert(songs.count); /* for (i = 0; i < songs.count; i++) { var album = songs.item(i).getItemInfo("WM/AlbumTitle"); if (!in_array(album, albums)) albums[albums.length][0] = album; } for (i = 0; i < albums.length; i++) albums[i][1] = Player.mediaCollection.getByAlbum(albums[i][0]); } */ return albums; } function play_playlist(playlist) { } function play_album(album) { } function play_song(song) { } function in_array(needle, haystack) { for (i = 0; i < haystack.length; i++) { if (haystack[i] == needle) return true; } return false; } |
Het stuk wat commented is geeft de fout. Ik denk dat mijn processor gewoon flink op zijn kop krijgt als javascript voor 183 artiesten alle liedjes op moet gaan zoeken, maar ik kan dit niet met zekerheid zeggen.
Ziet iemand wat er fout aan is, of wat nog geoptimaliseerd kan worden om tijd te besparen?
A byte walks into a bar and orders a pint. Bartender asks him "What's wrong?" Byte says "Parity error." Bartender nods and says "Yeah, I thought you looked a bit off."