Como adicionar efeitos de áudio ou vídeo
[O recurso associado a esta página, MFPlay, é um recurso herdado. Foi substituído pelo MediaPlayer e IMFMediaEngine. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda enfaticamente que o novo código use o MediaPlayer and IMFMediaEngine em vez de DirectShow quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito, se possível, para usar as novas APIs.
Este tópico descreve como usar efeitos de áudio/vídeo com o MFPlay.
Para usar um efeito com MFPlay, o efeito deve ser implementado como uma MFT (transformação do Media Foundation). Para obter mais informações, confira Transformações do Media Foundation.
Para adicionar um efeito de áudio ou vídeo
- Crie uma instância do MFT que implemente o efeito.
- Chame IMFPMediaPlayer::InsertEffect.
Chame InsertEffect antes de abrir o arquivo de mídia para reprodução. O MFPlay determina automaticamente se o efeito é de vídeo ou de áudio.
O método InsertEffect também usa um parâmetro booliano que especifica se o efeito é opcional ou obrigatório. Se o MFPlay não puder adicionar um efeito necessário (por exemplo, porque o formato do fluxo é incompatível), ocorrerá um erro de reprodução. Na maioria dos casos, é melhor definir um efeito como opcional.
O MFPlay continua usando o efeito para todas as reproduções subsequentes. Para remover o efeito, chame IMFPMediaPlayer::RemoveEffect ou IMFPMediaPlayer::RemoveAllEffects.
HRESULT AddPlaybackEffect(REFGUID clsid, IMFPMediaPlayer *pPlayer)
{
IMFTransform *pMFT = NULL;
HRESULT hr = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&pMFT));
if (SUCCEEDED(hr))
{
hr = pPlayer->InsertEffect(pMFT, TRUE); // Set as optional.
}
SafeRelease(&pMFT);
return hr;
}
Requisitos
A MFPlay requer o Windows 7.
Tópicos relacionados