2009-06-27 9 views
7

Desidero poter memorizzare informazioni su un brano che è stato aperto utilizzando la mia applicazione. Vorrei che l'utente fosse in grado di assegnare una valutazione alla canzone e questa valutazione venisse caricata ogni volta che gli utenti aprissero quel file utilizzando la mia applicazione.Come posso memorizzare una valutazione in una canzone?

Ho anche bisogno di sapere se dovrei memorizzare le valutazioni in un database o in un file xml.

+1

In qualsiasi momento! Consiglierei di rispondere a questa domanda a qualcosa del tipo "Come posso memorizzare una valutazione in una canzone?" –

risposta

5

C# ID3 Library è una libreria di classi .Net per la modifica dei tag id3 (v1-2.4). Vorrei memorizzare le valutazioni direttamente nella sezione commenti del mp3 poiché id3v1 non ha molte delle funzionalità di archiviazione che fa id3v2. Se vuoi memorizzare informazioni aggiuntive per ogni mp3, che ne dici di posizionare un identificatore univoco sul mp3 e poi farlo fare una ricerca nel database?

Sarei cauto nell'aggiungere tag personalizzati agli mp3 in quanto è un modo semplice per rovinare una libreria di grandi dimensioni. Inoltre, ho intrapreso questa strada prima e mentre mi piaceva la conoscenza di programmazione che ne derivava, provare qualcosa come iTunes SDK o Last FM poteva essere un percorso migliore.

+0

Grazie! Avevo già scaricato C# ID3 Lib, ma non pensavo di usare i commenti come modo per salvare la valutazione. Questo mi permette anche di usare un sistema di valutazione migliore quindi solo 1-5. –

0

Vorrei memorizzare le valutazioni in un file XML, in questo modo è facile da modificare dall'esterno, facile da leggere in .NET e non devi preoccuparti di spedire un database per qualcosa di semplice con l'applicazione.

Qualcosa di simile potrebbe funzionare per voi:

<Songs> 
    <Song Title="{SongTitle}"> 
    <Path>{Song path}</Path> 
    <Rating>3</Rating> 
    </Song> 
</Songs> 
+2

Negli attributi XML use = e deve essere quotato. I tag elemento sono case sensitive (""). –

2

vorrei conservarlo in un file come è più facile da mantenere con il file mp3 in sé. Se tutto quello che stai facendo è archiviare le valutazioni, potresti prendere in considerazione l'impostazione del campo di classificazione ID3?

+0

Potresti fornire ulteriori informazioni sul campo di valutazione ID3? (Specificamente come cambiare e salvarlo usando C#) –

4

Vorrei utilizzare un database di zero-config a file singolo. SQL Server Compact nel tuo caso.

Non penso che XML sia una buona idea. XML risplende nei dati interscambio e memorizza piccole quantità di informazioni. In questo caso, un utente può valutare migliaia di tracce (personalmente nelle radio online che autorizzano le valutazioni) e potresti avere molte altre informazioni da memorizzare sulla traccia.

Esportare e importare utilizzando le procedure di esportazione XML se necessario. Non usarlo come datastore principale.

+2

Sqlite è un altro famoso database a file singolo, zero-config. –

1

Per questo tipo di archiviazione molto semplice, non penso che importi davvero tanto. Il pro di XML è molto facile da implementare e modificabile al di fuori della tua app. i contro sono, è modificabile al di fuori dell'applicazione (potrebbe essere buono, potrebbe essere cattivo, dipende dalla situazione)

Forse un'altra opzione (solo perché è possibile ;-) è un OODBMS, controlla DB4Objects, è seriamente coinvolgente e molto, molto bello.

1

Come accennato in precedenza è meglio memorizzare tali informazioni nel file multimediale stesso. E il mio suggerimento è di usare la lib di TagLib# per questo (la migliore media metadata lib che posso trovare). Molto potente e facile da usare.

0

Se il formato della canzone supporta metadati appropriati (ad esempio MP3), seguire il consiglio di Kevin di utilizzare i metadati. Questo è di gran lunga il modo migliore per farlo, ed è ciò a cui sono destinati i meta dati.

In caso contrario, dipende in realtà dall'applicazione. Se si desidera condividere le informazioni sulla valutazione, in particolare su un servizio Web, sceglierei XML: sarebbe banale, ad esempio, fornire i propri elenchi XML come un unico grande feed.

XML (o la maggior parte degli altri formati di testo) hanno anche il vantaggio di poter essere facilmente modificati da un essere umano in un editor di testo.

Il database avrebbe i suoi vantaggi se si disponesse di un sistema più chiuso, si desiderava velocità e indicizzazione rapida e/o altre tabelle che si desidera memorizzare (ad esempio dati su album e bande).

Problemi correlati