|
Approccio veloce all'uso di MediaInfo
Esempio
Cosa devi fare
Un esempio veloce, linea per linea (nota : se usi la DLL devi adattare queste
linee al tuo linguaggio):
-
Init (only one time):
MediaInfo::Options("Info_Version", "**VERSION**;**APP_NAME**;**APP_VERSION**")
MediaInfo Handle (for DLL : void* Handle=MediaInfo::New())
-
For each file:
MediaInfo::Open("**FILENAME**")
MediaInfo::Inform()
...
(for DLL only: MediaInfo::Delete(Handle))
Troppo complicato? Prova questo!
Puoi utilizzare questo se non ti interessano tutti i messaggi di errore (ne sarà
mostrato solo uno di tutti i possibili errori) e e hai intenzione di aprire
solo un file:
void* Hande=MediaInfo::OpenQuick("**FILENAME**", "**VERSION**;**APP_NAME**;**APP_VERSION**")
MediaInfo::Inform()
...
(per la versione DLL: MediaInfo::Delete(Handle))
Unicode?
Come ogni libreria moderna, , MediaInfo(Lib) supporta l'Unicode.
Non scordati di impostare dove vuoi che compaia il testo nel tuo programma.
Questo è in formato internationalization
(I18N), e può visualizzare diversi alfabeti (Greek, russian, french...)
senza problemi!
Ti consiglio di utilizzare la libreria Unicode e creare il tuo programma che
supporti l'Unicode se inizi un novo programa.
Eccezioni : se hai intenzione di utilizzare le righe di comando di Microsoft
Windows ti ricordo che questo non supporta l'Unicode, quindi se vuoi utilizzare
la riga di comando, utilizza MediaInfo senza supporto Unicode.
Per la DLL, visto che è stata rialsciata solo una versione, devi:
- MediaInfo::XXX methods. Utilizzano il supporto Unicode (caratteri di 2
o 4 bytes).
- MediaInfoA_XXX methods. Versione ANSI (1 carattere per byte) della versione
sovrastante. Sono utilizzati i caratteri di sistema.
Nota : solo per la DLL, puoi utilizzare i caratteri UTF-8:
MediaInfoA_Options("CodePage", "UTF-8")
Init the library
Connessione Internet
MediaInfoLib prova a collegarsi a un server Internet per controllare la disponibilità
di nuove versioni del software, in modo anonimo
e ottiene le informazioni su un file (Non ancora implementato).
Se epr qualche ragione non vuoi questa funzione, disattivala.
MediaInfo::Options("Internet", "No")
Versione della libreria
Prima di tutto devi conoscere la versione della libreria DLL.
Perché con una nuova versione potrebbero insorgere crash o operazioni
non volute...
MediaInfo::Options("Info_Version", "**VERSION**;**APP_NAME**;**APP_VERSION**")
**VERSION** è la versione di MediaInfo che hai testato. Dovrebbe essere
simili a questo : "A.B.C.D" (esempio : "0.7.0.0")
**APP_NAME** è il nome del tuo programma. Esempi : "MediaInfoGUI", "MediaInfoCmd".
**APP_VERSION** versione del tuo programma. Esempio : "0.7.0.0", "1.2", "1.26beta1".
Nota : se durante i test di versioni beta noti delle incompatibilità
tra la libreria e un vecchio programma, contatta lo sviluppatore di MediaInfo,
lui metterà la versione di quel programma nella lista nera.
La stringa si ottenuta:
- "MediaInfoLib - vA.B.C.D xxx" se non ci sono incompatibilità tra
la versione nel comando e la versione della libreria (xxx può essere
un sito internet, le informazioni su modifiche alla DLL...).
- "" (stringa vuota) se ci sono incompatibilità tra la versione del
comando e la versione nella libreria. In questo caso il programma uscirà
con un errore (un messaggio del tipo "MediaInfo.dll is not compatible with
this version, you must use MediaInfo.dll vX.X.X.X")
Imposta la lingua della libreria
La lingua predefinita è l'Inglese.
Puoi cambiare la lingua col la stringa.
MediaInfo::Options("Language", "**LANGUAGE_STRING**")
**LANGUAGE_STRING** è una stringa compatibile CSV :
Internal name1;translation1
Internal name2;translation2
Nota : durante lo sviluppo, puoi utilizzare nomi di liste interne con :
MediaInfo::Options("Language_Get")
Creare un nuovo Handle
Un Handle deve essere creato prima dell'utilizzo di MediaInfoLib :
"C++" : MediaInfo Handle;
"C" (DLL...) : void* Handle=MediaInfo::New();
Aprire uno o più files
Prima di ottenere informazioni su uno o più files devi aprirli :
MediaInfo::Open("**FILENAME**")
o
MediaInfoList::Open("**FILENAMES**")
Ottenere informazioni
Testo preformattato
Output Standard - Se hai bisogno di un output
testuale:
MediaInfo::Inform(InformOption_Nothing)
Se vuoi un output in formato HTML :
MediaInfo::Inform(InformOption_HTML)
Personalizzato
La lista standard utilizza molte informazioni. Ma tu puoi personalizzarla :
MediaInfo::Option("Inform", "**YOUR_TEXT**")
MediaInfo::Inform(InformOption_Custom)
**YOUR_TEXT** è una lista di oggetti. Per maggiori informazioni clicca
qui
Ottenere una parte delle informazioni
Puoi accedere direttamente a una parte delle informazioni:
MediaInfo::Get ("**StreamKind**", "**StreamNumber**", "**Parameter**", "**InfoKind**")
**StreamKind** can be : Stream_General, Stream_Video, Stream_Audio, Stream_Text, Stream_Chapters
**StreamNumber** è la posizione del flusso che ti interessa. Esempio
per l'Audio : 0 se vuoi il primo Audio, 1 se vuoi il secondo.
**Parameter** è il nome della parte di informazioni che ti interessano.
Esempio : "BitRate", "Width"...
**InfoKind** deve essere impostata come MediaInfo::Info_Text, eccezion fatta
se vuoi informazioni avanzate
Nota : nello sviluppo puoi avere la lista dei parametri utilizzando:
MediaInfo::Options("Info_Parameters")
Liberare la memoria
Per liberare la memoria devi cancellare l'handle:
"C++" : non è necessario, sarà cancellato al termine del method
"C" (DLL...) : MediaInfo::Delete(Handle);
Nota : puoi riutilizzare l'Handle per un altro MediaInfo::Open("**FILENAME**")
utilizzato prima della cancellazione.
|