OvenPlayer SDK for Windows Developer s Guide Release 2.0 AirenSoft 4 월 07, 2016

Similar documents
Contents 1 소개 설치 및 사용방법 21 다운로드 22 라이브러리 등록 23 Android Menifest 정의 간단한 31 플레이어 생성 32 이벤트 리스너 정의 33 Surface 할당 3

Windows 8에서 BioStar 1 설치하기

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3


회사소개서2

Microsoft PowerPoint - 09-CE-5-윈도우 핸들

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

ActFax 4.31 Local Privilege Escalation Exploit

고객 카드

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

MF Driver Installation Guide

유니티 변수-함수.key

서현수

View Licenses and Services (customer)

Windows Live Hotmail Custom Domains Korea

제8장 자바 GUI 프로그래밍 II

ThinkVantage Fingerprint Software

vRealize Automation용 VMware Remote Console - VMware

PowerPoint 프레젠테이션

슬라이드 1

슬라이드 1

Frequently Asked Question 버전 변경 날짜 변경 내용 v /07/22 최초 작성

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

BMP 파일 처리

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

Æí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š

Chapter #01 Subject

( )부록

PowerPoint 프레젠테이션

UI TASK & KEY EVENT

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

금오공대 컴퓨터공학전공 강의자료

adfasdfasfdasfasfadf

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

1장 윈도우 프로그래밍 들어가기

K&R2 Reference Manual 번역본

-. Data Field 의, 개수, data 등으로구성되며, 각 에따라구성이달라집니다. -. Data 모든 의 data는 2byte로구성됩니다. Data Type는 Integer, Float형에따라다르게처리됩니다. ( 부호가없는 data 0~65535 까지부호가있는

IRISCard Anywhere 5

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

MFC 프로그래밍

<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

목 차 1. 드라이버 설치 설치환경 드라이버 설치 시 주의사항 USB 드라이버 파일 Windows XP에서 설치 Windows Vista / Windows 7에서 설치 Windows

PowerPoint Presentation

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

스마트폰 모바일 랩 세미나

슬라이드 1

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

02 C h a p t e r Java

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

SIGIL 완벽입문

Student Help

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Lab 3. 실습문제 (Single linked list)_해답.hwp

12 강. 문자출력 Direct3D 에서는문자를출력하기위해서 LPD3DXFONT 객체를사용한다 LPD3DXFONT 객체생성과초기화 LPD3DXFONT 객체를생성하고초기화하는함수로 D3DXCreateFont() 가있다. HRESULT D3DXCreateFont

쉽게 풀어쓴 C 프로그래밍

윈도우시스템프로그래밍

Microsoft PowerPoint - chap10-함수의활용.pptx

[Brochure] KOR_TunA

볼륨 조절 아이콘 표시하기 만일 알림 영역에 볼륨 조절 아이콘이 표시되지 않았다면 아래의 방법을 따라합니다. 1> [시작] - [제어판] - [사운드 및 오디오 장치] 아이콘을 더블 클릭합니다. 2) [사운드 및 오디오 장치 등록 정보] 대화상자에서 [볼륨] 탭을 클릭

ios 의경우 Unity 버전 4.X 의경우, EasyMovieTexture 폴더안에 Unity463_Patch_IOS 가있습니다. 버전에 맞게패치해주세요. 디버그모드사용시아래와같이사용하세요.

윈도우시스템프로그래밍

CODESYS 런타임 설치과정

SBR-100S User Manual

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

. PC PC 3 [ ] [ ], [ ] [ ] [ ] 3 [ ] [ ], 4 [ ] [ ], 4 [Internet Protocol Version 4 (TCP/IPv4)] 5 [ ] 6 [ IP (O)], [ DNS (B)] 7 [ ] 한국어 -

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

01

MF3010 MF Driver Installation Guide

Microsoft Word - src.doc

¾Ë·¹¸£±âÁöħ¼�1-ÃÖÁ¾

01....b

2007백서-001-특집

00목차

(291)본문7


PowerPoint Template

PowerPoint 프레젠테이션

H3250_Wi-Fi_E.book

Mango-E-Toi Board Developer Manual

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint - C++ 5 .pptx

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을

PowerPoint Presentation

Transcription:

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