OvenPlayer SDK for Windows Developer s Guide Release 20 AirenSoft 4 월 07, 2016
Contents 1 소개 11 12 13 14 15 1 1 1 2 2 2 2 설치 및 사용방법 21 다운로드 22 라이브러리 등록 23 컴포넌트 삽입 24 Wrapper Class 추가 및 사용 25 Event Hanler 정의 3 3 3 3 8 8 3 간단한 예제 31 URL 재생 32 현재 위치 UI 업데이트 33 재생/일시중지/중지 34 샘플 코드 다운로드 11 11 11 12 12 4 Method 목록 41 IsOpened 42 GetStartPosition 43 SetStartPosition 44 Open 45 IsPlaying 46 Play 47 Pause 48 Stop 49 SetVolume 410 SetMute 411 IsMuted 412 ToggleMute 413 Seek 414 Backward 415 Forward 416 GetCurrentPosition 417 GetDuration 418 GetPlaybackRate 419 SetPlaybackRate 13 13 13 13 14 14 14 14 14 15 15 15 15 15 16 16 16 16 17 17 기능 장점 동작 환경 라이선스 및 유료 정책 다운로드 5 Event Listener 목록 18 51 OnUpdateCurrentPosition 18 i
52 OnStatusChanged 18 53 OnReflectWindowMessage 19 6 ERROR CODE 20 61 Windows 기본오류코드 20 62 OvenPlayer 오류코드 21 7 부록 27 71 State Diagram 27 ii
CHAPTER 1 소개 OvenPlayer SDK for Windows 는 윈도우 어플레이케이션에 탑재할 수 있는 스트리밍 플레이어 SDK 입니다 다양한 어플리케이션에 탑재되어 다수의 윈도우 PC에서 5년간 안정적으로 동작한 검증된 플레이어 이며, 사용자에게 최고의 미디어 경험을 제공할 수 있는 가장 좋은 플레이어 솔루션 입니다 OvenPlayer SDK for Windows 는 로컬 파일을 재생하는 것 뿐만 아니라 RTMP, HLS, RTSP, HTTP와 같은 다양한 스트리밍 프로토콜을 지원합니다 또한 다양한 포멧의 파일을 재생할 수 있습니다 기능 HLS, RTMP, RTSP, HTTP 프로토콜 스트리밍 재생 로컬 파일 재생 MP4, AVI, ASF, WMV, WMA, MOV 등 다양한 포멧 지원 (Package On Demand, 기본 MP4) HLS의 AES 암호화 오디오 전용 재생 로컬 캐시 HLS ID3 Timed Meta, RTMP Metadata 배속 재생 쉬운 통합 장점 작고 가벼워서 어플리케이션에 무리를 주지 않습니다 1
OvenPlayer SDK for Windows Developer s Guide, Release 20 윈도우 어플리케이션에 스트리밍 비디오를 재생할 수 있는 가장 쉽고 간편한 방법입니다 Active X 컴포넌트로 제공되어 어플리케이션에 쉽게 통합할 수 있습니다 동작 환경 Windows XP ServicePack 3 이상 라이선스 및 유료 정책 이 프로그램에 포함된 비디오 디코더는 FFmpeg 을 사용하여 제작하였으며, FFmpeg의 라이선스는 LGPL 을 따릅니다 LGPL에 따른 변경된 소스 코드 및 오브젝트는 Github : OvenPlayer-SDK-forAndroid 에 공개되어 있습니다 본 플레이어는 비영리 목적으로 사용하는 모든 개인 개발자는 무료로 사용할 수 있습니다 비영리 목적으로 사용한 개인 개발자라도 본 SDK를 적용한 최종 결과물(Application)이 기업/영리/비영리법 인/공공기관/교육기관/기타단체을 목적으로 개발되었다면 무료 대상에 포함되지 않습니다 다운로드 Github OvenPlayer-SDK-for-Windows 13 동작 환경 2
CHAPTER 2 설치 및 사용방법 다운로드 Github OvenPlayer-SDK-for-Windows 에서 최신 SDK를 받으십시오 최종 바이너리는 다음과 같이 구성되어 있습니다 Table 21: 라이브러리 파일 목록 파일명 OvenPlayerBrowserActiveXdll OvenPlayerdll OvenPlayerUIdll OvenPlayerWrappercpp OvenPlayerWrapperh avcodec-54dll avformat-54dll avutil-52dll swresample-0dll swscale-2dll 필수여부 O O O X X O O O O O 설명 ActiveX 컴포넌트 Player 엔진 Plyaer UI 처리 모듈 연동 인터페이스 Demux/Decoder 라이브러리 등록 OvenPlayer SDK for Windows는 ActiveX 컴포넌트로 제공되어 어플리케이션에 쉽게 통합할 수 있습니다 사용하기 전에 OvenPlayerBrowserActiveXdll 파일을 시스템에 등록해야 합니다 ActiveX 컴포넌트는 어플 리케이션이 설치될 때 다음과 같은 명령행으로 등록할 수 있습니다 $ regsvr32 \path\to\ovenplayerbrowseractivexdll 컴포넌트 삽입 ActiveX 컴포넌트는 다양한 개발 환경에서 사용할 수 있으며, 본 문서에서는 Visual Studio와 MFC 기반의 개발 환경에서 삽입하는 예시를 설명합니다 ActiveX 컨트롤 추가 Visual Studio에서 제공하는 리소스 편집기 도구에서 다음과 같이 ActiveX 컨트롤을 추가합니다 3
OvenPlayer SDK for Windows Developer s Guide, Release 20 라이브러리가 성공적으로 등록되었다면 아래와 같이 OvenPlayerCtrl Class나 나타납니다 ActiveX가 성공적으로 프로젝트에 추가되었다면 다음과 같이 Dialog에 표시되며, 이를 적절한 위치에 배치하 면 됩니다 23 컴포넌트 삽입 4
OvenPlayer SDK for Windows Developer s Guide, Release 20 ActiveX 컨트롤 변수 매핑 ActiveX 컨트롤을 제어하기 위해서는 변수와 매핑해야 합니다 다음과 같이 추가된 컨트롤을 우클릭 한 후 Add Variable 을 선택한 후 변수 이름을 입력하십시오 23 컴포넌트 삽입 5
OvenPlayer SDK for Windows Developer s Guide, Release 20 23 컴포넌트삽입 6
OvenPlayer SDK for Windows Developer s Guide, Release 20 등록확인 모든과정이성공적으로완료되었다면다음과같이 Solution Explorer 에 ovenplayerctrl1h 와 ovenplayerctrlcpp 파일이추가된것을확인할수있습니다 23 컴포넌트삽입 7
OvenPlayer SDK for Windows Developer s Guide, Release 20 Wrapper Class 추가 및 사용 OvenPlayer SDK for Windows를 더 쉽게 사용할 수 있도록 Wrapper 클래스인 COvenPlayerWrapper 클래 스를 제공합니다 COvenPlayerWrapper 클래스는 COvenplayerctrl1를 상속받아 구현한 클래스로 플레이어 를 제어하는데 필요한 모든 기능이 정의되어 있으므로, 해당 클래스를 사용하는 것을 추천합니다 해당 Wrapper Class를 사용하기 위해서는 OvenPlayerWrapperh 및 OvenPlayerWrappercpp 파일을 ovenplayerctrl1h/ovenplayerctrl1cpp 파일과 동일한 경로에 복사한 뒤 Solution Explorer를 통해 프로젝트에 추가합니다 그런 후 Main Dialog의 헤더 파일을 다음과 같이 수정합니다 // #include "ovenplayerctrl1h" // 삭제 #include "OvenPlayerWrapperh" // 추가 // COvenplayerctrl1 m_ovenplayer; // 삭제 COvenPlayerWrapper m_ovenplayer; // 추가 Event Hanler 정의 플레이어 구성이 완료된 뒤 OvenPlayer SDK가 전달하는 이벤트를 받으려면 다음과 같이 진행하면 됩니다 먼서 리소스 편집기에서 플레이어를 우클릭한 뒤 Add Event Handler를 클릭하십시오 24 Wrapper Class 추가 및 사용 8
OvenPlayer SDK for Windows Developer s Guide, Release 20 그럼 아래 그림과 같이 선택할 수 있는 이벤트가 나열되며, 사용하려고 하는 이벤트를 선택하여 추가하면 됩니다 25 Event Hanler 정의 9
OvenPlayer SDK for Windows Developer s Guide, Release 20 사용할 수 있는 이벤트 목록은 다음과 같습니다 Table 22: Evnet Handler 목록 항목 OnUpdateCurrentPosition OnStatusChanged OnReflectWindowMessage 설명 현재 재생 중인 위치가 변경되면 발생하는 이벤트 재생 상태 (일시정지, 정지 등)가 변경되면,발생하는 이벤트 Player에서 Windows 메시지를 수신할 때 발생하는 이벤트 이벤트의 자세한 사용 방법은 Event Listener 목록 를 참조하십시오 25 Event Hanler 정의 10
CHAPTER 3 간단한 예제 OvenPlayer를 사용하는 간단한 예제를 나열합니다 URL 재생 COvenPayerWrapper 인스턴스의 Open() 및 Play() API를 이용하여 기본적인 재생을 테스트 해볼 수 있습니 다 HRESULT hrresult; hrresult = m_ovenplayeropen(_t("http://test_url/mp4m3u8")); if(succeeded(hrresult)) hrresult = m_ovenplayerplay(); } if(failed(hrresult)) AfxMessageBox(_T("URL을 불러오는 도중 오류가 발생하였습니다")); } 현재 위치 UI 업데이트 타이머나 별도 쓰레드를 통해 일정 시간마다 현재 위치를 구해서 UI 상테 업데이트 할 수 있으며 다음과 같이 작성할 수 있습니다 void COvenPlayerSampleDlg::OnTimer(UINT_PTR nidevent) switch(nidevent) if(m_bisseeking == false) // seek bar 갱신 m_sldrseeksetpos((int)m_ovenplayergetcurrentposition()); } break; } CDialog::OnTimer(nIDEvent); } 11
OvenPlayer SDK for Windows Developer s Guide, Release 20 재생/일시중지/중지 비디오 재생을 일시중지(Pause), 중지(Stop), 재생(Play) 하려면 다음과 같이 작성합니다 void COvenPlayerSampleDlg::OnBnClickedButtonPlay() if(failed(m_ovenplayerplay())) ::AfxMessageBox(_T("재생 도중 오류가 발생하였습니다")); } } void COvenPlayerSampleDlg::OnBnClickedButtonPause() if(failed(m_ovenplayerpause())) ::AfxMessageBox(_T("일시중지 도중 오류가 발생하였습니다")); } } void COvenPlayerSampleDlg::OnBnClickedButtonStop() if(failed(m_ovenplayerstop())) ::AfxMessageBox(_T("중지 도중 오류가 발생하였습니다")); } } 샘플 코드 다운로드 다음 URL에서 샘플 코드를 다운로드 할 수 있습니다 https://githubcom/airensoft/ovenplayer-sdk-for-windows/sample 33 재생/일시중지/중지 12
CHAPTER 4 Method 목록 OvenPlayer SDK for Android를 사용하기 위한 public OvenMediaPlayer Class 를 제공하며, 이 Class의 Method를 나열합니다 IsOpened bool IsOpened() 콘텐츠가 열려 있는 상태를 반환합니다 반환 형식bool 반환재생 상태(play/pause/stop)와는 상관 없이 정상적으로 Open()되었다면 true를, 정상 적으로 Open()되지 않았다면 false를 반환합니다 GetStartPosition int64 GetStartPosition() 동영상이 처음 재생될 때 특정 위치에서부터 재생되도록 설정된 시작 위치 값을 반환 합니다 반환 형식 int64 반환재생 상태(play/pause/stop)와는 상관 없이 정상적으로 Open()되었다면 true를, 정상 적으로 Open()되지 않았다면 false를 반환합니다 SetStartPosition HRESULT SetStartPosition( int64 npositioninmillisecond) 동영상이 처음 재생될 때 특정 위치에서부터 재생될 수 있도록 위치 값을 설정합니다 SetStartPosition()은 반드시 Open()되기 전 또는 Stop()된 후에 설정되어야 합니다 반환 형식HRESULT 반환성공적으로 설정 되었다면 S_OK를, 오류가 발생하였다면 실패를 나타내는 ERROR CODE 값을 반환합니다 매개 변수nPositionInMillisecond ( int64) 위치 값 (ms) 주석: SetStartPosition() 호출 후 동영상이 한 번이라도 재생되면 시작 위치는 0으로 초기화 되기 때문에 GetStartPosition()은 0을 반환합니다 13
OvenPlayer SDK for Windows Developer s Guide, Release 20 Open HRESULT Open(LPCTSTR pszuri) 미디어 콘텐츠를 재생할 준비를 합니다 반환 형식HRESULT 반환미디어 콘텐츠가 정상적이고 성공적으로 열렸다면 S_OK를, 오류가 발생하였다면 실패 를 나타내는 ERROR CODE 값을 반환합니다 매개 변수pszURI (LPCTSTR) 재생할 콘텐츠의 URI IsPlaying bool IsPlaying() 동영상이 재생 중인지 여부를 얻어옵니다 반환 형식bool 반환동영상이 재생 중이라면 true를, 일시 중지 되었거나 콘텐츠 상태가 정상적이지 않다면 false를 반환합니다 Play HRESULT Play() 재생을 시작합니다 반환 형식HRESULT 반환성공적으로 재생을 시작하였다면 S_OK를, 이미 재생 중이거나 콘텐츠 상태가 정상적이 지 않다면 실패를 나타내는 ERROR CODE 값을 반환합니다 Pause HRESULT Pause() 재생 중인 콘텐츠를 일시 중지 합니다 반환 형식HRESULT 반환성공적으로 일시 중지 되었다면 S_OK를, 재생 중이 아니거나 재생 상태가 정상이 아니 라면 실패를 나타내는 ERROR CODE 값을 반환합니다 Stop HRESULT Stop() 재생을 완전히 중단 합니다 반환 형식HRESULT 반환성공적으로 중지 되었다면 S_OK를, 재생 중이 아니거나 재생 상태가 정상이 아니라면 실패를 나타내는 ERROR CODE 값을 반환합니다 44 Open 14
OvenPlayer SDK for Windows Developer s Guide, Release 20 SetVolume HRESULT SetVolume(int nvolume) 음량을 조절합니다 반환 형식HRESULT 반환성공적으로 음량이 설정 되었다면 S_OK를, 음량 설정 도중 오류가 발생하였다면 실패를 나타내는 ERROR CODE 값을 반환합니다 매개 변수nVolume (int) 0부터 100까지의 음량 (0은 최소 음량, 100은 최대 음량) 주석: SetMute(true)를 호출 한 상태에서 SetVolume()을 호출하게 되면 IsMuted() 상태가 false를 반환합니다 SetMute HRESULT SetMute(bool bmute) 음소거 상태를 설정합니다 반환 형식HRESULT 반환성공적으로 음소거 설정/해제가 되었다면 S_OK를, 오류가 발생하였다면 실패를 나타 내는 ERROR CODE 값을 반환합니다 매개 변수bMute (bool) true면 음소거를 설정하고 false면 음소거를 해제합니다 IsMuted bool IsMuted() 음소거 상태를 얻어옵니다 반환 형식bool 반환만약 음소거가 된 상태라면 true를, 음소거가 되지 않은 상태라면 false를 반환합니다 주석: SetMute(true)를 호출 한 상태에서 SetVolume()을 호출하게 되면 IsMuted() 상태가 false를 반환합니다 ToggleMute HRESULT ToggleMute() 음소거 상태가 아니라면 음소거 상태로, 음소거 상태라면 음소거를 해제합니다 반환 형식HRESULT 반환성공적으로 음소거 설정/해제가 토글 되었다면 S_OK를, 오류가 발생하였다면 실패를 나타내는 ERROR CODE 값을 반환합니다 Seek HRESULT Seek( int64 npositioninmillisecond) 지정한 위치로 이동합니다 49 SetVolume 15
OvenPlayer SDK for Windows Developer s Guide, Release 20 반환 형식HRESULT 반환성공적으로 이동 명령이 전달 되었다면 S_OK를, 재생 중이 아니거나 콘텐츠가 live 형태이거나 상태가 정상적이지 않다면 실패를 나타내는 ERROR CODE 값을 반환합니다 매개 변수nPositionInMillisecond ( int64) millisecond 단위의 이동하고자 하는 위치 입니다 Backward HRESULT Backward( int64 nmilliseconds) 지정된 시간 이전으로 이동합니다 반환 형식HRESULT 반환성공적으로 이동 명령이 전달 되었다면 S_OK를, 재생 중이 아니거나 콘텐츠가 live 형태이거나 상태가 정상적이지 않다면 실패를 나타내는 ERROR CODE 값을 반환합니다 매개 변수nMilliseconds ( int64) millisecond 단위의 이동하고자 하는 현재 위치로부 터의 상대 위치입니다 주석: Backward(30000)는 Seek(GetCurrentPosition() - 30000) 명령과 동일합니다 Forward HRESULT Forward( int64 nmilliseconds) 지정된 시간 이후로 이동합니다 반환 형식HRESULT 반환성공적으로 이동 명령이 전달 되었다면 S_OK를, 재생 중이 아니거나 콘텐츠가 live 형태이거나 상태가 정상적이지 않다면 실패를 나타내는 ERROR CODE 값을 반환합니다 매개 변수nMilliseconds ( int64) millisecond 단위의 이동하고자 하는 현재 위치로부 터의 상대 위치입니다 주석: Forward(30000)는 Seek(GetCurrentPosition() + 30000) 명령과 동일합니다 GetCurrentPosition int64 GetCurrentPosition() 현재 위치를 얻어옵니다 반환 형식 int64 반환millisecond 단위의 현재 위치를 반환합니다 만약 재생 중이 아니거나 콘텐츠가 live 형태이거나 상태가 정상적이지 않다면 0을 반환합니다 GetDuration int64 GetDuration() 총 길이를 얻어옵니다 반환 형식 int64 414 Backward 16
OvenPlayer SDK for Windows Developer s Guide, Release 20 반환millisecond 단위의 총 길이를 반환합니다 만약 재생 중이 아니거나 콘텐츠가 live 형태 이거나 상태가 정상적이지 않다면 0을 반환합니다 GetPlaybackRate float GetPlaybackRate() 재생 배속 정보를 얻어옵니다 반환 형식float 반환배속 정보를 반환합니다 SetPlaybackRate HRESULT SetPlaybackRate(float fplaybackrate) 재생 배속을 설정합니다 반환 형식HRESULT 반환배속이 성공적으로 설정 되었다면 S_OK를, fplaybackrate값이 유효하지 않거나 설정 도중 오류가 발생하였다면 실패를 나타내는 ERROR CODE 값을 반환합니다 매개 변수fPlaybackRate (float) 05 ~ 40 사이의 배속 재생 값을 지정합니다 20을 초과하는 배속은 재생하는 PC 환경에 따라 성능상 문제가 발생할 수 있기 때문에 05 ~ 20 까지의 범위를 사용하는 것을 추천합니다 418 GetPlaybackRate 17
CHAPTER 5 Event Listener 목록 OvenPlayer SDK for Windows 가 제공하는 Event Handler를 나열합니다 OnUpdateCurrentPosition void OnUpdateCurrentPositionOvenplayerCtrl(LONGLONG llcurrentposition, LONGLONG llduration) 현재 재생중인 위치가 변경되면 발생하는 이벤트로, 현재 위치와 총 재생 길이 정보를 받을 수 있습니다 반환 형식void 매개 변수 llcurrentposition (LONGLONG) 현재 재생 중인 위치 (ms) llduration (LONGLONG) 총 재생 길이 (ms) 예제 void COvenPlayerSampleDlg::OnUpdateCurrentPositionOvenplayerCtrl(LONGLONG llcurrentposition, LONGLONG llduration // 현재 재생중인 위치: llcurrentposition // 총 길이: llduration } OnStatusChanged void OnStatusChangedOvenplayerCtrl(INT nstatus) 플레이어 상태가 변경되면 발생하는 이벤트입니다 재생중, 일시 중지, 중지, 재생 종료를 파악할 수 있습니다 반환 형식void 매개 변수nStatus (INT) OP_STATUS_RUNNING OP_STATUS_PAUSED OP_STATUS_STOPPED OP_STATUS_CLOSED 0 1 2 3 재생 시작/재개 일시 중지 중지 재생 종료 예제 void COvenPlayerSampleDlg::OnStatusChangedOvenplayerCtrl(INT nstatus) OP_STATUS status = (OP_STATUS)nStatus; switch(status) 18
OvenPlayer SDK for Windows Developer s Guide, Release 20 case OP_STATUS_RUNNING: // 재생 break; case OP_STATUS_PAUSED: // 일시중지 break; case OP_STATUS_STOPPED: // 중지 break; case OP_STATUS_CLOSED: // 재생 종료 break; } } OnReflectWindowMessage void OnReflectWindowMessageOvenplayerCtrl(LONGLONG pmessage) 플레이어에서 Windows Message를 수신할 때 발생하는 이벤트로, 마우스, 키보드 이벤트 등을 처리합 니다 이 때 인자로 전달되는 LONGLONG 형태의 pmessage 값은 OP_MSG 구조체의 포인터 값으로, OP_MSG * 형태로 변환하여 사용할 수 있습니다 반환 형식void 매개 변수pMessage (LONGLONG) OP_MSG의 포인터 typedef struct _OP_MSG // in HWND hwnd; // in UINT unmessage; // in WPARAM wparam; // in LPARAM lparam; // out LRESULT lresult; } OP_MSG; 예제 void COvenPlayerSampleDlg::OnReflectWindowMessageOvenplayerCtrl(LONGLONG pmessage) OP_MSG *pmsg = (OP_MSG *)pmessage; // pmsg 사용 // pmsg->lresult = 0L; } 53 OnReflectWindowMessage 19
CHAPTER 6 ERROR CODE OvenPlayer SDK for Windows 에서 사용하는 에러 코드를 나열합니다 Windows 기본 오류 코드 E_FAIL 0x80004005 분류되지 않은 문제로 인해 실패하였습니다 E_NOT_VALID_STATE 0x8007139F OvenPlayer가 초기화 되지 않거나, 잘못된 상태에서 API가 호출되었습니다 E_INVALIDARG 0x80070057 API 호출 시 전달한 인자의 값이 올바르지 않습니다 E_UNEXPECTED 0x8000FFFF 예상치 못한 오류가 발생하였습니다 E_POINTER 0x80004003 잘못된 포인터 입니다 E_OUTOFMEMORY 0x8007000E 메모리가 부족합니다 20
OvenPlayer SDK for Windows Developer s Guide, Release 20 E_NOTIMPL 0x80004001 구현되지 않은 API를 호출하였습니다 E_NOINTERFACE 0x80004002 존재하지 않는 인터페이스 입니다 OvenPlayer 오류 코드 OVEN_PLAYER_ERROR_BROWSER_ACTIVE_X 0x80040100 ActiveX를 초기화 할 수 없습니다 OVEN_PLAYER_ERROR_OVEN_PLAYER_DLL_NOT_FOUND 0x80040200 OvenPlayerdll 파일을 찾을 수 없습니다 OVEN_PLAYER_ERROR_OVEN_PLAYER_VERSION_MISMATCH 0x80040201 오븐플레이어 구성요소의 버전이 맞지 않습니다 OVEN_PLAYER_ERROR_OVEN_PLAYER_UI_DLL_NOT_FOUND 0x80040202 OvenPlayerUIdll 파일을 찾을 수 없습니다 OVEN_PLAYER_ERROR_OVEN_PLAYER_BROWSER_DLL_NOT_FOUND 0x80040203 OvenPlayerBrowserActiveXdll 파일을 찾을 수 없습니다 OVEN_PLAYER_ERROR_INVALID_OVEN_PLAYER_DLL 0x80040204 올바르지 않은 OvenPlayerdll 입니다 OVEN_PLAYER_ERROR_OVEN_PLAYER_DLL 0x80040205 OvenPlayerdll 경로를 찾을 수 없습니다 62 OvenPlayer 오류 코드 21
OvenPlayer SDK for Windows Developer s Guide, Release 20 OVEN_PLAYER_ERROR_DISABLED 0x80040200 OvenPlayerdll 파일을 찾을 수 없습니다 OVEN_PLAYER_ERROR_INITIALIZED 0x80040301 오븐플레이어가 초기화 되어 있습니다 OVEN_PLAYER_ERROR_INITIALIZE_HANDLE 0x80040302 잘못된 핸들 입니다 OVEN_PLAYER_ERROR_INITIALIZE_FILTER_GRAPH 0x80040303 Graph를 초기화 할 수 없습니다 OVEN_PLAYER_ERROR_INITIALIZE_MEDIA_CONTROL 0x80040304 MediaControl을 초기화 할 수 없습니다 OVEN_PLAYER_ERROR_INITIALIZE_MEDIA_EVENT 0x80040305 MediaEvent를 초기화 할 수 없습니다 OVEN_PLAYER_ERROR_INITIALIZE_MEDIA_SEEKING 0x80040306 MediaSeeking을 초기화 할 수 없습니다 OVEN_PLAYER_ERROR_INITIALIZE_NOTIFY_WINDOW 0x80040307 알림 창을 설정할 수 없습니다 OVEN_PLAYER_ERROR_INITIALIZE_EVR 0x80040308 EVR Renderer를 초기화 할 수 없습니다 62 OvenPlayer 오류 코드 22
OvenPlayer SDK for Windows Developer s Guide, Release 20 OVEN_PLAYER_ERROR_INITIALIZE_VMR7 0x80040309 VMR7 Renderer 를초기화할수없습니다 OVEN_PLAYER_ERROR_INITIALIZE_VMR9 0x8004030A VMR9 Renderer 를초기화할수없습니다 OVEN_PLAYER_ERROR_UPDATE_VIDEO_WINDOW 0x8004030B Video 창을갱신할수없습니다 OVEN_PLAYER_ERROR_VIDEO_RENDERER_NOT_INITIALIZED 0x8004030C Video Renderer 가초기화되어있지않습니다 OVEN_PLAYER_ERROR_MODULE_PATH 0x8004030D 모듈경로를찾을수없습니다 OVEN_PLAYER_ERROR_COULD_NOT_FIND_SOURCE_FILTER 0x8004030E SourceFilter 를찾을수없습니다 OVEN_PLAYER_ERROR_COULD_NOT_APPEND_GRAPH_BUILDER 0x8004030F GraphBuilder 에추가할수없습니다 OVEN_PLAYER_ERROR_COULD_NOT_OBTAIN_FILE_SOURCE_FILTER 0x80040310 FileSourceFilter 를찾을수없습니다 OVEN_PLAYER_ERROR_COULD_NOT_OPEN_THE_FILE 0x80040311 파일을열수없습니다 62 OvenPlayer 오류코드 23
OvenPlayer SDK for Windows Developer s Guide, Release 20 OVEN_PLAYER_ERROR_INITIALIZE_SOURCE_FILTER 0x80040312 SourceFilter 를초기화할수없습니다 OVEN_PLAYER_ERROR_INVALID_SOURCE_FILTER 0x80040313 올바르지않은 SourceFilter 입니다 OVEN_PLAYER_ERROR_INITIALIZE_AUDIO_RENDERER 0x80040314 Audio Renderer 를초기화할수없습니다 OVEN_PLAYER_ERROR_INITIALIZE_BASIC_AUDIO 0x80040315 BasicAudio 를초기화할수없습니다 OVEN_PLAYER_ERROR_PUT_VOLUME 0x80040316 Volume 설정도중오류가발생하였습니다 OVEN_PLAYER_ERROR_INITIALIZE_NULL_RENDERER 0x80040317 Null Renderer 를초기화할수없습니다 OVEN_PLAYER_ERROR_INITIALIZE_CONNECT_TO_AUDIO 0x80040318 Audio Renderer 에연결할수없습니다 OVEN_PLAYER_ERROR_REMOVE_UNCONNECTED_RENDERER 0x80040319 Renderer 를정리할수없습니다 OVEN_PLAYER_ERROR_INITIALIZE_CONNECT_TO_VIDEO 0x8004031A Video Renderer 에연결할수없습니다 62 OvenPlayer 오류코드 24
OvenPlayer SDK for Windows Developer s Guide, Release 20 OVEN_PLAYER_ERROR_FINALIZE_GRAPH 0x8004031B Graph를 종료할 수 없습니다 OVEN_PLAYER_ERROR_GET_CAPABILITIES 0x8004031C Capabilities 속성을 얻어올 수 없습니다 OVEN_PLAYER_ERROR_GET_DLL_PATH 0x8004031D DLL 경로가 잘못되었습니다 OVEN_PLAYER_ERROR_INVALID_MEDIA_CONTROL 0x8004031E 잘못된 MediaControl 입니다 OVEN_PLAYER_ERROR_INVALID_MEDIA_SEEK 0x8004031F 잘못된 MediaSeek 입니다 OVEN_PLAYER_ERROR_COULD_NOT_OBTAIN_DURATION 0x80040320 길이 정보를 얻어올 수 없습니다 OVEN_PLAYER_ERROR_INVALID_SEEK_POSITION 0x80040321 Seek 위치가 잘못되었습니다 OVEN_PLAYER_ERROR_COULD_NOT_SET_POSITION 0x80040322 SetPosition 도중 오류가 발생하였습니다 OVEN_PLAYER_ERROR_COULD_NOT_STOP_WHEN_READY 0x80040323 StopWhenReady 도중 오류가 발생하였습니다 62 OvenPlayer 오류 코드 25
OvenPlayer SDK for Windows Developer s Guide, Release 20 OVEN_PLAYER_ERROR_SEEK_IS_NOT_SUPPORTED 0x80040324 Seek 가지원되지않습니다 OVEN_PLAYER_ERROR_INVALID_PLAYBACK_STATE 0x80040325 올바르지않은상태입니다 OVEN_PLAYER_ERROR_MEDIA_CONTROL_RUN 0x80040326 재생을할수없습니다 OVEN_PLAYER_ERROR_MEDIA_CONTROL_PAUSE 0x80040327 일시중지를할수없습니다 OVEN_PLAYER_ERROR_MEDIA_CONTROL_STOP_WHEN_READY 0x80040328 중지를할수없습니다 OVEN_PLAYER_ERROR_VIRTUAL_MACHINE 0x80040400 가상머신환경에서는재생할수없습니다 OVEN_PLAYER_ERROR_REMOTE_DESKTOP 0x80040401 원격환경에서는재생할수없습니다 62 OvenPlayer 오류코드 26
CHAPTER 7 부록 State Diagram 27