웹 페이지에서 볼 수있는 플레이어는 WMP/RealOne/MacRomedia Flash 플레이어에 지나지 않습니다. 다른 하나는 다른 패널이나 다른 컨트롤에 지나지 않습니다. 컴퓨터에 설치된 일부 플레이어는 인코딩 및 디코더와 통합되어 있으며 코어 인코딩 및 디코딩 기술도 동일합니다. 예 : 네트워크에서 가장 인기있는 Windows 미디어 스트림 (ASF, WMA, WMV 형식 ...), Real Stream (RM, RMVB ...) 및 MPEG 시리즈 인코딩 형식 (MP4/MP3 형식 ...)
Windows Media Video는 Microsoft가 시작한 스트리밍 미디어 형식입니다. 동료 학생들의 ASF (Advanced Stream Format) 형식의 업그레이드로 확장됩니다. 동일한 비디오 품질을 사용하면 WMV 형식이 매우 작으므로 온라인 재생 및 전송에 매우 적합합니다. Windows Media Player9는 모든 형식의 WMV와 호환되며 공식 인코더는 Windows Media Encoder이지만 고품질 WMV 파일을 변환하려면 데이터를 처리하려면 매우 큰 메모리가 있어야합니다.
실수로 CastPost 플레이어가 크기를 그 자체로 정의 할 수 있음을 발견했습니다. WMV 형식의 온라인 재생에 충분하다고 말할 수 있습니다. 그런 다음 멋진 단편 영화와 클래식 MTV 변환 WMV 형식을 넣기 위해 많은 노력을 기울였습니다. 사람들이 너무 많지 않은 한 지금 다운로드 할 수는 없지만 재생은 여전히 매우 매끄 럽습니다 ^_ ^
WMP는 ActiveX Decoder 컨트롤을 추가하여 음악을 재생할 수있을뿐만 아니라 플래시 및 기타 비디오 파일을 재생할 수 있습니다.
코드 사본은 다음과 같습니다.
<개체 align = center classId = clsid : 22D6F312-B0F6-11D0-94AB-0080C74C7E95 클래스 = 객체 ID = 미디어 플레이어 너비 = 196 높이 = 196>
<param name = showstatusbar value = 0>
<param name = filename value = http : //www.vevb.com/b.wmv>
<embed type = application/x-oleobject codebase = http : //activex.microsoft.com/activex/con ... nsmp2inf.cab#버전 = 5,1,52,701>
</embed>
</객체>
WMP로 지속적으로 플레이하려면 ASX MetaFile 사용법 설명을 참조하십시오 : ASX 재생 목록 사용
위의 플레이어는 구식 버전 6.4입니다! 새로운 플레이어는 MediaPlayer9.0 이후에 나타납니다. 즉, 9.0 이상으로 설치된 플레이어 만 정상적으로 사용할 수 있습니다.
다음은 새로운 플레이어 코드입니다. 이전보다 훨씬 간단합니다.
코드 사본은 다음과 같습니다.
<객체 ID = 플레이어 높이 = 64 너비 = 260 classID = clsid : 6BF52A52-394A-11D3-B153-00C04F79FAA6>
<param name = autostart value = -1>
<!-자동으로 재생됩니까?
<param name = 밸런스 값 = 0>
<!-위의 기존 플레이어 코드와 동일한 왼쪽과 오른쪽 채널 간의 균형을 조정합니다.
<param name = enabled value = -1>
<!-플레이어는 인위적으로 제어됩니다->
<param name = enableContextMenu value = -1>
<!-컨텍스트 메뉴를 활성화할지 여부->
<param name = url value =/blog/1.wma>
<!-재생 파일 주소->
<param name = playcount value = 1>
<!-정수->로 플레이 타임 제어를 플레이하십시오
<param name = rate value = 1>
<!-플레이 속도 제어, 1은 정상이며, 소수점은 허용됩니다. 1.0-2.0->
<param name = 현재 위치 값 = 0>
<!-제어 설정 : 현재 위치->
<param name = currentmarker value = 0>
<!-제어 설정 : 현재 태그->
<param name = defaultFrame value =>
<!-기본 프레임을 표시->
<param name = invokeUrls value = 0>
<!-스크립트 명령 설정 : URL을 호출할지 여부->
<param name = baseurl value =>
<!-스크립트 명령 설정 : 호출 될 URL->
<param name = 스트레치 토피 값 = 0>
<!-비율로 스트레칭 여부->
<param name = 볼륨 값 = 50>
<!-기본 사운드 크기는 0%-100%, 50%->입니다
<param name = 음소거 값 = 0>
<!-필수 여부->
<param name = uimode value = mini>
<!-플레이어 디스플레이 모드 : 전체 디스플레이 모두; 미니는 가장 단순화됩니다. 재생 컨트롤이 표시되지 않으며 비디오 창만 표시됩니다. Invisible은 모든 것을 표시하지 않습니다->
<param name = WindowlessVideo value = 0>
<!-0 인 경우 전체 화면이 허용 될 수 있습니다. 그렇지 않으면 창에서만 볼 수 있습니다.
<param name = 전체 화면 값 = 0>
<!-재생을 시작하는 것이 자동 전체 화면입니까?->
<param name = enableerrordialogs value = -1>
<!-오류 프롬프트 보고서를 활성화할지 여부->
<param name = samistyle value>
<!-Sami 스타일->
<param name = samilang value>
<!-사미 언어->
<param name = samifilename 값>
<!-자막 ID->
</객체>
RealOne Player 코드 :
코드 사본은 다음과 같습니다.
<객체 ID = VID classID = clsid : CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA 너비 = 427 높이 = 300>
<param name = _extentx value = 11298>
<param name = _extenty value = 7938>
<param name = autostart value = -1>
<param name = 셔플 값 = 0>
<param name = prefetch value = 0>
<param name = nolabels value = -1>
<param name = src value = rtsp : //211.89.225.1/encoder/cnr3;>
<param name = controls value = imageWindow>
<param name = console value = clip1>
<param name = 루프 값 = 0>
<param name = numloop value = 0>
<param name = 중심 값 = 0>
<param name = mastomerAspect value = 0>
<param name = backgroundColor value =#000000>
</object> <객체 id = vid2 classId = clsid : cfcdaa03-8be4-11cf-b84b-0020afbbccfa 너비 = 427 높이 = 30>
<param name = _extentx value = 11298>
<param name = _extenty value = 794>
<param name = autostart value = -1>
<param name = 셔플 값 = 0>
<param name = prefetch value = 0>
<param name = nolabels value = -1>
<param name = src value = rtsp : //211.89.225.1/encoder/cnr3;>
<param name = controls value = controlPanel>
<param name = console value = clip1>
<param name = 루프 값 = 0>
<param name = numloop value = 0>
<param name = 중심 값 = 0>
<param name = mastomerAspect value = 0>
<param name = backgroundColor value =#000000>
</객체>
복잡한 외관이 많이 보이지만 실제로는 플레이어 매개 변수가 더 많아서 할 수 있습니다 ...
실제 플레이어 웹 플레이어 매개 변수 의미
매개 변수 : autostart 속성 : true 또는 false 함수 : 지정된 소스 파일이 자동으로 재생되는지 여부를 지정합니다.
매개 변수 : 배경 검색 속성 : 기호 # 또는 사전 정의 된 색상 기능으로 시작하는 모든 16 진수 값 : 이미지 창의 배경색을 지정하십시오.
매개 변수 : 중심 속성 : True 또는 False 함수 : 조각이 초기 인코딩 크기로 재생되고 이미지 창의 중앙에 있음을 지정합니다.
매개 변수 : ClassID 속성 : ClsID : CFCDAA03-8BE4-1LCF-B84B0020AFBBCCFA : ** 함수 : ActiveX Control의 고유 한 문자열 마크를 지정하는 데 사용되며 임베디드 실제 플레이어를 인식 할 수 있습니다.
매개 변수 : 콘솔 속성 : 모든 문자열 기능 : 다양한 실제 플레이어 컨트롤을 웹 페이지에 수집하여 대화식으로 사용하거나 서로 영향을 미치지 않고 독립적으로 유지할 수 있습니다.
매개 변수 : 컨트롤 속성 : ImageWindow, All, ControlPanel, Plavbutton, PlayonlyButton, PauseButton, StopButton, FFCTRL, RWCTRL, MUTECTRL, MUTEVOLME, VOLUMESLIDER, 위치 슬라이더, TACCTRL, HOMECTRL, HOMECTRL, INFOVOLEPANEL, InfopOnel, STUCLITE SPORITION : LETSFILDE 컨트롤이 보입니다.
매개 변수 : 높이 속성 : 모든 정수 값 함수 기능 : 실제 요소의 높이를 지정합니다. 단위 : 픽셀
매개 변수 : ID 속성 : 모든 문자열 함수 : 태그의 RealPlayer 요소의 이름을 지정합니다.
매개 변수 : imageStatus 속성 : true 또는 false 함수 : 상태 정보가 이미지 창에 표시되는지 여부를 지정하면 기본값이 참입니다.
매개 변수 : 루프 속성 : true 또는 false 함수 : 조각이 무한대로 루프를 지정할 수 있습니다.
매개 변수 : MASTERASPECT 속성 : TRUE 또는 FALSE 기능 : 기본 부동산은 전체 이미지 창을 채우기 위해 모든 조각을 늘립니다.
매개 변수 : 이름 속성 : 모든 문자열 함수 : 태그에서 RealPlayer 요소의 이름을 지정합니다 (태그에서 ID 사용)
매개 변수 : Nojava 속성 : True 또는 False 기능 : Java Virtual Machine 시작을 피하십시오.
매개 변수 : nolabels 속성 : true 또는 false 함수 : 제목 또는 저작권 정보의 표시를 금지 할 수 있습니다 (RealPlayer 5.0 이상인 경우 쓰레기입니다 ...)
매개 변수 : Nologo 속성 : 참 또는 거짓 함수 : RealPlayer가 시작될 때 이미지 창에 표시를 피하십시오.
매개 변수 : NumLoop 속성 : 모든 정수 값 함수 : 파일 슬라이스 루프가 필요하지 않은 횟수를 지정할 수 있습니다.
매개 변수 : prefetch 속성 : true 또는 false 함수 : 재생 전에 실제 설명 정보를 얻을 수 있는지 여부를 지정합니다. 기본값은 False입니다
매개 변수 : 지역 속성 : 모든 문자열 기능 : Smil과 함께 사용됩니다. Smil 대신 HTML 사용을 지정할 수 있습니다.
매개 변수 : ScriptCallbacks 속성 : COMMA 세그먼트 목록 기능 : 브라우저의 콜백 모니터링을 지정하십시오 (하이 엔드는 무엇입니까!)
매개 변수 : 셔플 속성 : True 또는 False 함수 : 여러 파일 파일 파일 또는 Smil 파일과 함께 사용됩니다. RealPlayer 셔플 목록에서 파일을 만들 수 있습니다
매개 변수 : SRC 속성 : 모든 법적 상대 또는 완전한 URL 기능 : 재생 파일 또는 소스 파일의 주소를 지정합니다.
매개 변수 : 유형 속성 : 문자열 함수 : 임베디드 플러그인의 마임 유형을 지정합니다.
매개 변수 : 너비 속성 : 모든 정수 값 함수 : 실제 요소의 너비를 지정합니다.
부동산의 일부 기능, 방법 및 절차
이들은 실제 플레이어 ActiveX Control 라이브러리 (버전 1.0)의 기능과 방법입니다. 관심이 있으시면 공부할 수 있습니다.
코드 사본은 다음과 같습니다.
기능 GetSource : wideString;
절차 setSource (const lpsznewvalue : widestring);
기능 getConsole : wideString;
절차 setConsole (const lpsznewvalue : widestring);
기능 getControls : widestring;
절차 setControls (const lpsznewvalue : widestring);
기능 getNolabels : WordBool;
절차 setNolabels (bnewValue : WordBool);
기능 getAutostart : WordBool;
절차 setAutostart (bnewValue : WordBool);
기능 getautogotourl : WordBool;
절차 setautogotourl (bnewvalue : WordBool);
함수 getVolume : smallint;
절차 setVolume (nvol : smallint);
함수 getMute : WordBool;
절차 setMute (bmute : WordBool);
기능 getLoop : WordBool;
절차 setLoop (bval : WordBool);
기능 getimagestatus : WordBool;
절차 setImagestatus (Benable : WordBool);
함수 getPacketStotal : 정수;
함수 getpacketsreceived : 정수;
함수 getPacketsOutOfOrder : 정수;
함수 getpacketsmissing : 정수;
함수 getPacketSearly : 정수;
함수 getPacketsLate : 정수;
함수 getBandWidthAverage : 정수;
함수 getBandWidthCurrent : 정수;
절차 doplayPause;
절차 dostop;
절차 donextItem;
절차 doprevitem;
함수 canplayPause : WordBool;
기능 canstop : WordBool;
기능 hasnextItem : WordBool;
기능 hasprevitem : WordBool;
기능 해제 : WordBool;
기능 haspreventry : WordBool;
절차 donextentry;
절차 Dopreventry;
상자에 대한 절차;
절차 editpreferences;
절차 이화 체계;
기능은 기본적으로 가시적입니다 : WordBool;
절차 DogOtourl (const URL : widestring; const target : widestring);
절차 도플레이;
절차 dopause;
기능 getposition : 정수;
기능 getplaystate : 정수;
기능 getlength : 정수;
기능 gettitle : wideString;
기능 getauthor : widestring;
기능 getCopyright : widestring;
함수 getClipwidth : 정수;
기능 getClipheight : 정수;
기능 : WordBool;
함수 캔터 : WordBool;
절차 설정 (losposition : 정수);
함수 getNumloop : 정수;
절차 setNumloop (lval : Integer);
기능 getCenter : WordBool;
프로 시저 세트 센터 (BVal : WordBool);
기능 getnologo : WordBool;
절차 setnologo (bval : WordBool);
함수 getMaintainAspect : WordBool;
절차 setMaintainAspect (bval : WordBool);
기능 getbackgroundcolor : widestring;
절차 wetbackgroundcolor (const pval : widestring);
기능 getstereostate : WordBool;
함수 getLiveState : WordBool;
기능 getshowstatistics : WordBool;
절차 세트 쇼 스테이션 (BVal : WordBool);
기능 getshowpreferences : WordBool;
절차 setShowpreferences (bval : WordBool);
기능 getshowonmouseover WordBool;
절차 setShowabout (bval : WordBool);
기능 getoriginalsize : WordBool;
절차 setoriginalsize;
기능 getDoublesize : WordBool;
절차 setDoublesize;
기능 getfullscreen : WordBool;
절차 setfullscreen;
기능 getEnableContextMenu : WordBool;
절차 setenableContextMenu (bval : WordBool);
기능 getenableoriginalsize : WordBool;
절차 setenableoriginalsize (bval : WordBool);
기능 getenabledoublesize : WordBool;
절차 setenabledoublesize (bval : WordBool);
기능 getenablefullscreen : WordBool;
절차 setenablefullscreen (bval : WordBool);
기능 getEnableMessagebox : WordBool;
절차 setenableMessagebox (bval : WordBool);
절차 정착 (const PVal : widestring);
절차 setAuthor (const pval : widestring);
절차 setCopyright (const pval : widestring);
기능 getwantkeyboardevents : WordBool;
절차 setWantKeyboardEvents (bwantsevents : WordBool);
기능 getwantmouseevents : WordBool;
절차 setWantMouseevents (bwantsevents : WordBool);
기능 getNumentRies : smallint;
기능 getCurrententry : smallint;
함수 getEntrytitle (uentryindex : smallint) : widestring;
함수 getEntryauthor (uentryindex : smallint) : widestring;
함수 getEntryCopyright (uentryIndex : smallint) : widestring;
함수 getEntryabStract (uentryindex : smallint) : widestring;
절차 setcanseek (bcanseek : WordBool);
기능 getCanseek : WordBool;
기능 getBufferingTimeElapsed : 정수;
기능 getBufferingtimerEmaining : 정수;
함수 getConnectionBandWidth : 정수;
기능 getPreedLanguagestring : widestring;
기능 getPreferedLanguageId : 정수;
기능 getUsercountryId : 정수;
함수 getNumSources : smallint;
함수 getSourcetransport (nsourcenum : smallint) : widestring;
기능 getwanterrors : WordBool;
절차 setWanterrors (bval : WordBool);
기능 getshuffle : WordBool;
절차 setShuffle (bval : WordBool);
함수 getVersionInfo : widestring;
함수 getLastMessage : widestring;
함수 getLasterRorseverity : 정수;
함수 getLasterRorrMacode : 정수;
함수 getLasterRoruserCode : 정수;
함수 getLasterRoruserstring : widestring;
함수 getLasterRormoreInfourl : widestring;
절차 setPrefetch (bval : WordBool);
기능 getPrefetch : WordBool;
절차 설정 영역 (Const PVal : widestring);
기능 getregion : wideString;
기능 getisplus : WordBool;
기능 getConsOleevents : WordBool;
절차 setConsOleevents (bval : WordBool);
함수 getDrminfo (const pval : widestring) : widestring;
Property ControlInterface : Irealaudio 읽기 GetControlinterface;
속성 기본 인터페이스 : irealaudio read getControlinterface;
웹 페이지에서 WMP 비디오 컨트롤 사용 안내서
//wmplayer.controls.currentPosition = wmplayer.currentMedia.Duration * (I /100)
//
//
//
□ 연주 방법 및 속성
미디어 플레이어는 연주, 일시 정지 및 중지 외에도 다음과 같은 속성을 가지고 있습니다.
비디오 레코더의 빠른 전진 및 빠른 반전 기능에 유사합니다.
검색 - 클립에 표시된 특정 단계 시간으로 직접 이동합니다.
□ 플레이
미디어 플레이어는 재생할 미디어 이름 (클립)을 지정하는 두 가지 기술을 제공합니다. 파일 이름 속성을 설정하거나 열린 메소드를 호출 할 수 있습니다. AutosTART 속성의 값이 True 인 경우 Filename 속성이 영화 클립의 URL로 설정되면 영화 클립이 재생됩니다. 그렇지 않으면 플레이 방법을 호출하지 않으면 영화 클립이 재생되지 않습니다. Open 메소드는 재생 방법과 달리 비동기식으로 재생되기 시작합니다. 재생 방법과 달리 다른 프로세스가 완료 될 때까지 재생이 시작되지 않습니다.
미디어 플레이어는 스트리밍 미디어 재생을 제어하기위한 다음 VCR 유사 특성 및 방법을 제공합니다.
연주, 중지, 일시 정지 방법으로 시작하고, 중지하고, 일시 중지 스트리밍.
PlayCount 속성은 파일이 재생되는 횟수를 설정합니다.
AutoreWind 속성은 재생이 중지 될 때 영화 클립의 시작으로 돌아올지 여부를 결정합니다.
□ 오디오 제어
미디어 플레이어는 오디오를 관리하기위한 다음 속성을 제공합니다.
균형 속성, 왼쪽과 오른쪽 스피커 사이의 사운드 균형을 결정합니다.
볼륨 속성, 볼륨을 증가 시키거나 줄이는 데 사용됩니다.
음소거 속성, 사운드를 끄거나 켜는 데 사용됩니다.
showaudiocontrols 속성을 true로 설정하여 컨트롤 바에 컨트롤을 추가하여 사운드를 처리 할 수 있습니다.
□ 스캔
미디어 플레이어는 다음과 같은 특성을 스캔 할 수 있습니다.
빠른 방법, 빠른 전달;
Fastreves 방법은 빠르게 뒤집습니다.
속도 속성, 재생 속도를 변경하십시오.
movie 클립을 스캔하려면 Canscan 및 허용 속성을 true로 설정해야합니다.
□ 검색
검색에 사용 된 속성은 다음과 같습니다.
Markercount 속성은 클립의 총 마커 수를 나타냅니다.
현재 제작자, getMarkerName, getMarkerTime 메소드는 태그 정보를 반환하는 데 사용됩니다.
마커 히트 이벤트, 마커가 발생했을 때 트리거됩니다.
현재 위치 인 현재 위치 (초)는 재생 헤드를 클립의 지정된 지점으로 이동하는 데 사용될 수 있습니다.
위치 체인트 이벤트, 현재 위치 속성이 설정 될 때 트리거됩니다.
∎ 언제든지 검색하려면 Canseek 속성이 True로 설정되어야합니다. 마킹 포인트를 검색하려면 Canseektomarkers 속성을 true로 설정해야합니다.
□ 미디어 플레이어의 외관 인터페이스
웹 페이지에서는 미디어 플레이어의 어떤 부분이 나타나고 관련 속성을 통해 나타나지 않는 부분을 제어 할 수 있습니다.
미디어 플레이어에는 다음 요소가 포함되어 있습니다.
비디오 디스플레이 패널 : 비디오 디스플레이 패널;
비디오 국경 : 비디오 국경;
닫는 캡션 디스플레이 패널; 자막 디스플레이 패널;
트랙 바; 검색 바;
오디오 및 위치 제어 기능이있는 제어 막대 : 사운드 및 위치 제어 기능이있는 제어 막대;
바로 가십시오 : 바로 가십시오.
디스플레이 패널 : 디스플레이 패널;
상태 표시 줄 : 상태 표시 줄;
다음 속성은 표시 할 요소를 결정하는 데 사용됩니다.
ShowControls 속성 : 컨트롤 바를 표시할지 여부 (재생 컨트롤 및 선택적 사운드 및 위치 제어 포함);
showaudiocontrols 특성 : 제어 막대에 사운드 컨트롤 (음소거 버튼 및 볼륨 슬라이더)을 표시할지 여부;
ShowPositionControls 속성 : 제어 막대에 위치 제어를 표시할지 여부 (점프 뒤로, 되감기, 되감기, 빠른 전진, 점프 앞으로, 재생 목록에서 각 클립을 미리보기);
ShowTracker 속성 : 검색 표시 줄 표시 여부;
showdisplay 속성 : 디스플레이 패널 (프로그램 및 클립에 대한 정보를 제공하는 데 사용되는 디스플레이) 여부;
Showcaptioning 속성 : 자막 디스플레이 패널 표시 여부;
showgotobar 속성 : 표시 여부는 막대로 이동합니다.
Showstatusbar 속성 : 상태 표시 줄 표시 여부;
□ 플레이 목록
미디어 플레이어는 재생 목록에서 클립에 액세스하는 다음 방법을 제공합니다.
다음 방법은 쇼의 다음 클립으로 건너 뜁니다 (재생 목록).
이전 방법, 쇼의 이전 클립으로 돌아갑니다.
미디어 플레이어의 기능은 다음 속성을 사용하여 프로그램의 모든 클립을 미리 볼 수 있다는 것입니다.
PreviewMode 속성은 미디어 플레이어가 현재 미리보기 모드에 있는지 여부를 결정합니다.
CanpReview 속성 미디어 플레이어가 미리보기 모드에 있는지 여부를 결정합니다.
Windows Media Metafile에서는 각 클립에 대한 미리보기 시간 -PreviewDuration을 지정할 수 있습니다. 지정되지 않은 경우 기본 미리보기 시간은 10 초입니다.
또한 Windows Media Metafile을 사용하여 워터 마크 및 배너를 추가 할 수 있으며 Metafiles는 광고를 삽입 할 때 Gapless 스트림 스위칭을 지원합니다.
□ 프로그램 정보
GetMediaInfostring 방법을 사용하여 관련 클립 또는 프로그램에 대한 다음 정보를 반환하십시오.
파일 이름 : 파일 이름
제목
설명 : 설명
저자 : 저자
저작권 : 저작권
레벨 : 등급
URL : 로고 아이콘, 워터 마크, 배너 주소
클립 정보는 미디어 파일, Windows Media Metafiles 또는 둘 다에 배치 할 수 있습니다.
클립 정보는 미디어 파일, Windows Media Metafiles 또는 둘 다에 배치 할 수 있습니다. 클립 정보가 Metafile에 지정된 경우 Metafile의 정보는 GetMediaInfostring 메소드에 의해 리턴되고 클립에 포함 된 정보는 반환되지 않습니다.
Metafile에서 추가 정보는 각 클립 또는 프로그램의 매개 변수 태그에 배치 할 수 있습니다. 각 클립에 많은 매개 변수 태그를 추가하여 사용자 정의 정보를 저장하거나 관련 사이트에 링크 할 수 있습니다. Param 태그의 정보는 getMediaParameter 방법을 통해 액세스 할 수 있습니다.
다음 속성은 크기 및 시간에 대한 정보를 반환합니다.
ImagesOURCEHEIGHT, ImagesOURCEWIDTH : 이미지 창의 디스플레이 크기를 반환합니다.
지속 시간 속성은 클립의 길이 (초)를 반환합니다. 이 속성에 유효한 값이 포함되어 있는지 확인하려면 isdurationValid 속성을 확인하십시오. (방송 비디오의 경우 길이는 예측할 수 없습니다).