Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEnginee Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
[Esta API não é suportada e pode ser alterada ou indisponível no futuro.]
Para carregar um arquivo de projeto, você precisa de dois componentes: o analisador XML e uma linha do tempo vazia. O analisador XML lê um arquivo de projeto XML e cria cada objeto definido no arquivo. Em seguida, ele insere os objetos na linha do tempo e define quaisquer atributos da linha do tempo, como a taxa de quadros padrão. O exemplo de código a seguir carrega um arquivo.
HRESULT hr;
IAMTimeline *pTL = NULL;
IXml2Dex *pXML = NULL;
hr = CoCreateInstance(CLSID_AMTimeline, NULL, CLSCTX_INPROC_SERVER,
IID_IAMTimeline, (void**)&pTL);
hr = CoCreateInstance(CLSID_Xml2Dex, NULL, CLSCTX_INPROC_SERVER,
IID_IXml2Dex, (void**)&pXML);
BSTR bstrFile = SysAllocStringLen(OLESTR("C:\\example.xtl"), 15);
hr = pXML->ReadXMLFile(pTL, bstrFile);
SysFreeString(bstrFile);
pXML->Release();
O analisador expõe a interface IXml2Dex, que contém métodos para carregar e salvar arquivos de projeto. A linha do tempo expõe a interfaceIAMTimeline, que contém métodos para manipular a linha do tempo e criar novos objetos de linha do tempo. Chame o função CoCreateInstance para criar cada componente, conforme mostrado. Lembre-se de que, ao criar uma nova instância, você está incrementando a contagem de referência na interface. Para evitar fugas de memória, libere sempre uma interface quando terminar de usá-la. Neste exemplo, o ponteiro para IXml2Dex não é necessário para mais nada, para que você possa liberar a interface. O ponteiro para IAMTimeline ainda é necessário para visualizar a linha do tempo.
O métodoIXml2Dex::ReadXMLFile lê o arquivo especificado e preenche a linha do tempo com os objetos definidos no arquivo. O nome do ficheiro é especificado usando um valor de BSTR. Para encurtar o exemplo, o nome do arquivo no exemplo é dado como uma cadeia de caracteres literal. Normalmente, obtém-no a partir de uma caixa de diálogo Abrir ficheiro ou algo semelhante.
Se o método ReadXML for bem-sucedido, ele retornará um código de êxito. Caso contrário, ele retorna um código de erro, como VFW_E_INVALID_FILE_FORMAT. Verifique sempre o valor de retorno, a fim de lidar com as condições de erro graciosamente. Novamente por uma questão de brevidade, o código de exemplo não verifica se há erros.
Tópicos relacionados