Condividi tramite


Recupero delle informazioni sul profilo durante la riproduzione

[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita dal lettore di origine e dal writer sink. Lettore di origine e writer sink sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi lettore di origine e writer sink anziché Windows Media Format 11 SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Le informazioni del profilo utilizzato per creare un file vengono archiviate nella sezione di intestazione del file. Entrambi gli oggetti lettore possono accedere alle informazioni del profilo dall'intestazione del file. Esistono diversi motivi per cui si potrebbe voler accedere ai dati del profilo dal lettore. In genere, sarà necessario recuperare informazioni sui flussi, sugli oggetti di esclusione reciproca e sugli oggetti di condivisione della larghezza di banda.

Sia l'oggetto lettore asincrono che l'oggetto lettore sincrono possono essere sottoposti a query per l'interfaccia IWMProfile . Nessuna modifica apportata alle informazioni sul profilo può influire sul file nel lettore. Per altre informazioni sull'accesso alle informazioni sul profilo, vedere Utilizzo dei profili.

Informazioni sul flusso

A volte è importante sapere come viene configurato un flusso. Quando si recuperano proprietà multimediali da uno degli oggetti lettore, si ottengono le proprietà degli output. Le proprietà di output descrivono come i dati non compressi da un flusso verranno recapitati dal lettore, non come viene configurato il flusso all'interno del file ASF.

Quando si ricevono esempi di flusso non compressi da entrambi gli oggetti lettore, è necessario usare le informazioni sul profilo per identificare il formato dei dati compressi. Ciò è particolarmente importante se si intende scrivere il flusso compresso in un altro file ASF.

È anche necessario accedere alle informazioni di flusso quando si usa la ricompressione intelligente per transcodificare un flusso audio a una velocità di bit inferiore.

È possibile determinare se un flusso è stato scritto usando la codifica VBR (Variable Bit Rate). Non è possibile accedere alle informazioni VBR dall'interfaccia IWMProfile di entrambi gli oggetti lettore. Ciò è dovuto al fatto che le informazioni VBR non vengono archiviate nel file dopo la codifica. È possibile determinare se un flusso è stato creato usando la codifica VBR ottenendo un puntatore all'interfaccia IWMHeaderInfo dell'oggetto lettore e chiamando IWMHeaderInfo::GetAttributeByName. È necessario specificare il numero di flusso e passare g_wszIsVBR come nome dell'attributo.

Informazioni di esclusione reciproca

Se si vuole creare un'applicazione di lettura che usa l'esclusione reciproca, è necessario accedere alle informazioni sugli oggetti di esclusione reciproca inclusi nel profilo. Per tutti i tipi di esclusione reciproca ad eccezione della velocità in bit, l'applicazione di lettura è responsabile di qualsiasi cambio di flusso necessario. Per cambiare flussi, è necessario sapere quali flussi sono.

Informazioni sulla condivisione della larghezza di banda

Gli oggetti di condivisione della larghezza di banda inclusi in un profilo sono inclusi solo a scopo informativo. Né l'oggetto writer né nessuno degli oggetti lettore esegue alcuna azione in seguito alla condivisione dei dati della larghezza di banda. Se si vuole usare la condivisione della larghezza di banda nell'applicazione di lettura, è necessario accedere alle informazioni sulla condivisione della larghezza di banda dai dati del profilo.

Nota

Non tutte le informazioni del profilo usato per creare un file sono presenti nell'intestazione del file. Come regola generale, i dati usati solo al momento della codifica non vengono salvati in modo permanente nel file. Sono incluse le impostazioni di input impostate usando il metodo IWMWriterAdvanced2::SetInputSetting , nonché le proprietà impostate usando il metodo IWMPropertyVault::SetProperty .

 

Interfaccia IWMProfile

Lettura di file ASF