Share via


IMFPMediaPlayer::InsertEffect 메서드(mfplay.h)

중요 되지 않는. 이 API는 향후 Windows 릴리스에서 제거될 수 있습니다. 애플리케이션은 재생을 위해 미디어 세션을 사용해야 합니다.
 

재생에 오디오 또는 비디오 효과를 적용합니다.

구문

HRESULT InsertEffect(
  [in] IUnknown *pEffect,
  [in] BOOL     fOptional
);

매개 변수

[in] pEffect

다음 중 하나에 대한 IUnknown 인터페이스에 대한 포인터입니다.

[in] fOptional

효과가 선택 사항인지 여부를 지정합니다.

의미
TRUE
효과는 선택 사항입니다. MFPlay 플레이어 개체가 효과를 추가할 수 없는 경우 효과를 무시하고 재생을 계속합니다.
FALSE
MFPlay 플레이어 개체가 효과를 추가할 수 없는 경우 재생 오류가 발생합니다.

반환 값

이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.

반환 코드 설명
S_OK
메서드가 성공했습니다.
MF_E_INVALIDINDEX
이 효과가 이미 추가되었습니다.

설명

pEffect 매개 변수에 지정된 개체는 비디오 효과 또는 오디오 효과를 구현할 수 있습니다. 이 효과는 메서드가 호출된 후 설정된 모든 미디어 항목에 적용됩니다. 현재 미디어 항목에는 적용되지 않습니다.

각 미디어 항목에 대해 효과가 일치하는 형식(오디오 또는 비디오)의 처음 선택된 스트림에 적용됩니다. 미디어 항목에 동일한 형식의 두 개의 선택한 스트림이 있는 경우 두 번째 스트림은 효과를 받지 않습니다. 미디어 항목에 효과 유형과 일치하는 스트림이 없으면 효과가 무시됩니다. 예를 들어 비디오 효과를 설정하고 오디오만 포함된 파일을 재생하는 경우 오류가 발생하지 않지만 비디오 효과는 무시됩니다.

애플리케이션이 효과를 제거할 때까지 모든 후속 미디어 항목에 효과가 적용됩니다. 효과를 제거하려면 IMFPMediaPlayer::RemoveEffect 또는 IMFPMediaPlayer::RemoveAllEffects를 호출합니다.

동일한 형식(오디오 또는 비디오)의 여러 효과를 설정하는 경우 InsertEffect를 호출하는 순서와 동일한 순서로 적용됩니다.

원격 재생 최적화

오디오 및 비디오 효과는 원격 재생에 사용되는 최적화와 호환되지 않을 수 있습니다. 다음 설명은 재생 중에 실제로 사용되는 오디오 또는 비디오 효과에만 적용됩니다.
  • 필요에 따라 오디오 또는 비디오 효과를 표시하는 경우 fOptionalFALSE로 설정하면 MFPlay에서 원격 재생 최적화를 사용하지 않도록 설정합니다.
  • 그렇지 않은 경우 모든 오디오/비디오 효과가 선택 사항으로 표시되면 MFPlay는 원격 재생 최적화를 사용하도록 설정하기 위해 효과를 삭제할 수 있습니다.
즉, 필요한 효과는 원격 최적화보다 우선 순위가 있지만 선택적 효과는 그렇지 않습니다.

다른 이유로 원격 최적화를 사용하지 않도록 설정할 수 있습니다. 예를 들어 플레이어 개체를 만들 때 MFP_OPTION_NO_REMOTE_DESKTOP_OPTIMIZATION 옵션을 설정하면 사용하지 않도록 설정됩니다. 이 경우 MFPlay는 선택적 효과를 삽입하려고 시도합니다.

비 오디오, 비비디오 효과는 원격 최적화에 영향을 미치지 않습니다. 또한 필요한 효과를 삽입하지만 원본에 해당 형식의 스트림이 포함되어 있지 않으면 원격 최적화를 사용하지 않도록 설정되지 않습니다.

예제

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;
}

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 mfplay.h

추가 정보

오디오 또는 비디오 효과를 추가하는 방법

IMFPMediaPlayer

오디오/비디오 재생에 MFPlay 사용