MediaInfo, multimedia data manager
 

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.

SourceForge Valid XHTML 1.0 Strict Valid CSS