JMF3_심빈구.PDF

Similar documents
JMF2_심빈구.PDF

rmi_박준용_final.PDF

fundamentalOfCommandPattern_calmglow_pattern_jstorm_1.0_f…

MasoJava4_Dongbin.PDF

자바GUI실전프로그래밍2_장대원.PDF

JMF1_심빈구.PDF

Microsoft PowerPoint - 04-UDP Programming.ppt

비긴쿡-자바 00앞부속

PowerPoint 프레젠테이션

02 C h a p t e r Java

11장.key

Chap12

자바-11장N'1-502

5장.key

신림프로그래머_클린코드.key

ch09

자바로

PowerPoint 프레젠테이션

09-interface.key

PowerPoint Presentation

07 자바의 다양한 클래스.key

교육2 ? 그림

12-file.key

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

01-OOPConcepts(2).PDF

Java

Microsoft PowerPoint - RMI.ppt

제11장 프로세스와 쓰레드

Microsoft PowerPoint - 14주차 강의자료

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

3ÆÄÆ®-11

( )부록

FileMaker ODBC and JDBC Guide

10장.key

歯JavaExceptionHandling.PDF

Interstage5 SOAP서비스 설정 가이드

歯NetworkKawuiBawuiBo.PDF

1

OOP 소개

Spring Boot/JDBC JdbcTemplate/CRUD 예제

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Spring Data JPA Many To Many 양방향 관계 예제

14-Servlet

gnu-lee-oop-kor-lec10-1-chap10

05-class.key

PowerPoint 프레젠테이션

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

<4D F736F F F696E74202D20C1A63233C0E520B1D7B7A1C7C820C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

10-Java Applet

슬라이드 1

FileMaker ODBC and JDBC Guide

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx


IPAS-CDR사용자메뉴얼(EN/KOR)

자바 프로그래밍

13ÀåÃß°¡ºÐ

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Chap7.PDF

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

어댑터뷰

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

강의자료

쉽게 풀어쓴 C 프로그래밍

03장

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

歯Writing_Enterprise_Applications_2_JunoYoon.PDF

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

04장

Contents. 1. PMD ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 2. Metrics ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 3. FindBugs ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 4. ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

JTable과 MVC(Model-View-Controller) 구조 - 모델-뷰-컨트롤러구조는데이터의저장과접근에대한제공은모델이담당하고, 화면표시는뷰, 이벤트의처리는컨트롤러가하도록각역할을구분한구조이다. 즉, 역할의분담을통하여상호간의영향을최소화하고각요소의독립성을보장하여독자

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

rosaec_workshop_talk

스레드의우선순위 우선순위설정메소드 : void setpriority(int newpriority) newpriority 에설정할수있는등급 : 1( 가장낮은우선순위 ) 부터 10( 가장높은우선순위 ) 가장높은우선순위 : MAX_PRIORITY, 보통우선순위 : NORM_

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

mytalk


13-Java Network Programming


<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

NoSQL

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

C# Programming Guide - Types

JAVA PROGRAMMING 실습 08.다형성

9장.key

final_thesis

웹연동 } 웹 (Web) 환경에서데이터베이스시스템을연동하는방법은다음과같다 } Server Client 구조의통신 (2-Tier) } Server Middleware Client 구조의통신 (3-Tier) 2


교육자료

C++-¿Ïº®Çؼ³10Àå

유니티 변수-함수.key

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

untitled

PowerPoint Presentation

3ÆÄÆ®-14

Transcription:

<JSTORM> JMF JSTORM http://wwwjstormpekr

Issued by: < > Revision: <10> <2000/9/1> Document Information Document title: Document file name: Revision number: <10> Issued by: JMF3_ doc Issue Date: <2000/9/1 > Status: < > raica@nownurinet : < > junoyoon@orgionet final Content Information Audience Abstract (JFC) JMF -, Reference Benchmark information JSTORM <2/23>

Issued by: < > Revision: <10> <2000/9/1> Document Approvals Signature date Signature date Revision History Revision Date Author Description of change JSTORM <3/23>

Issued by: < > Revision: <10> <2000/9/1> Table of Contents 5 5 BasicMediaControl 11 SampleControlComponent 14 15 18 18 JMF 20 20 JSTORM <4/23>

Issued by: < > Revision: <10> <2000/9/1> ( ) <1> Internet Broadcasting System( ) ibs IBS JMF,, JMF, JSTORM <5/23>

Issued by: < > Revision: <10> <2000/9/1>,,,, JButton Play ( ) (Winamp) Play, Playerstart(),?,?? () JSTORM <6/23>

Issued by: < > Revision: <10> <2000/9/1> Play Stop Pause FastForward ( FF ) Rewind (RW) PlayStop, Pause < 1> p lay(), stop(), pause(), stop() pause() playerstop() stop() 0 UI UI, UI - UI - UI 11, public interface MediaTimeChangeListener { void mediatimechanged(long mediatime, long duration); Event,, Event MediaTimeChangeListener< 1>(1) BasicMediaControl JSTORM <7/23>

Issued by: < > Revision: <10> <2000/9/1>, (2) firemediatimechange,?, Thread (3), GainControl, public class BasicMediaControl implements Runnable { public static final int FF_RW_PERCENT = 3; private long mediatime = 0; private long duration = 0; private Player player; private GainControl gain; private Vector volumnchangelistenerlist = new Vector(1); private Vector mediatimechangelistenerlist = new Vector(1); public BasicMediaControl (){ /** * Player * Player Realized */ public BasicMediaControl (Player player) { thisplayer = player; gain = (GainControl)playergetControl("javaxmediaGainControl"); duration = playergetduration()getnanoseconds(); public void play() { playerstart(); public void pause() { playerstop(); JSTORM <8/23>

Issued by: < > Revision: <10> <2000/9/1> public void stop() { playerstop(); playersetmediatime(new Time(0)); public void ff(){ long pos = mediatime + (duration/100)*ff_rw_percent; if(pos > duration) pos = duration; thissetmediatime(pos); public void rw(){ long pos = mediatime - (duration/100)*ff_rw_percent; if(pos < 0) pos = 0; thissetmediatime(pos); public long getmediatime() { return mediatime; public void setmediatime(long time){ thismediatime = time; playersetmediatime(new Time(time)); public int getplayerstate(){ return playergetstate(); public long getduration() { return duration; public GainControl getgaincontrol() { return gain; JSTORM <9/23>

Issued by: < > Revision: <10> <2000/9/1> public void setgain(float f){ gainsetlevel(f); public Player getplayer(){ return player; public void addvolumnchangelistener(volumnchangelistener vcl){ <---- (1) volumnchangelistenerlistaddelement(vcl); public void addmediatimechangelistener(mediatimechangelistener mtcl){ mediatimechangelistenerlistaddelement(mtcl); protected void firemediatimechange() { <---- (2) MediaTimeChangeListener mtcl; for(int i=0; i < mediatimechangelistenerlistsize(); i++){ mtcl = (MediaTimeChangeListener) mediatimechangelistenerlistelementat(i); mtclmediatimechanged(mediatime, duration); protected void firegainchange() { VolumnChangeListener vtcl; for(int i=0; i < volumnchangelistenerlistsize(); i++){ vtcl = (VolumnChangeListener) volumnchangelistenerlistelementat(i); vtclvolumnchanged(gaingetlevel()); public void controllerupdate(controllerevent ce) { if (ce instanceof DurationUpdateEvent) { thisduration = ((DurationUpdateEvent)ce)getDuration()getNanoseconds(); /** *, JSTORM <10/23>

Issued by: < > Revision: <10> <2000/9/1> * */ public void run(){ while (true) { if (player!= null) { long newmediatime = playergetmediatime()getnanoseconds(); if(mediatime!= newmediatime) { try { mediatime = newmediatime; firemediatimechange(); <------ (3) ThreadcurrentThread()sleep(500); catch (InterruptedException ie) { BasicMediaControl < 2>< 1> < 2> BasicMediaControl (1) SampleControlComponent VolumnC hangelistenermediatimechangelistenerimplements (3), (4), (2) BasicMediaControl control (5) ActionListener, BasicMediaControl JSTORM <11/23>

Issued by: < > Revision: <10> <2000/9/1> public class SampleControlComponent extends JPanel implements VolumnChangeListener, MediaTimeChangeListener, <----- (1) ActionListener{ public static final String PLAY_BTN_ACTION_COMMAND = "Play"; public static final String PAUSE_BTN_ACTION_COMMAND = "Pause"; public static final String STOP_BTN_ACTION_COMMAND = "Stop"; public static final String FF_BTN_ACTION_COMMAND = "FF"; public static final String RW_RTP_BTN_ACTION_COMMAND = "RW"; JSlider mediatime; JSlider volumn; BasicMediaControl control; Thread controlthread; public SampleControlComponent(Player player){ control = new BasicMediaControl(player); initcomponent(); controladdmediatimechangelistener(this); <------(2) controladdvolumnchangelistener(this); controlthread = new Thread(control); controlthreadstart(); public void initcomponent(){ // (mediatime) mediatime = new JSlider(JSliderHORIZONTAL); mediatimesetpaintticks(false); // mediatimesetmaximum((int)(controlgetduration()/1000000000l)); mediatimesetvalue(0); // mediatimeaddchangelistener(new ChangeListener(){ public void statechanged(changeevent e){ int changedvalue = mediatimegetvalue(); JSTORM <12/23>

Issued by: < > Revision: <10> <2000/9/1> ); int oldvalue = (int)(controlgetmediatime()/1000000000l); if(!(changedvalue > oldvalue -2 && changedvalue < oldvalue + 2)){ controlsetmediatime((long)(changedvalue*1000000000l)); // volumn = new JSlider(JSliderVERTICAL); volumnsetpaintticks(false); volumnsetmaximum(10); volumnsetvalue((int)(controlgetgaincontrol()getlevel()*10)); volumnsetpreferredsize(new Dimension(30, 40)); // volumnaddchangelistener(new ChangeListener(){ ); public void statechanged(changeevent e){ int changedvalue = volumngetvalue(); controlsetgain(((float)changedvalue)/10); public void volumnchanged(float changedvolumn){ <--- (3) volumnsetvalue((int)(changedvolumn*10)); public void mediatimechanged(long mediatime, long duration){ <----(4) int dura = (int)(duration/1000000000l); int mtime = (int)(mediatime/1000000000l); mediatimesetmaximum(dura); mediatimesetvalue(mtime); public void actionperformed(actionevent e){ <----(5) String actioncommand = egetactioncommand(); if (actioncommandequals(play_btn_action_command)) { controlplay(); else if(actioncommandequals(stop_btn_action_command)) { JSTORM <13/23>

Issued by: < > Revision: <10> <2000/9/1> controlstop(); else if(actioncommandequals(pause_btn_action_command)) { controlpause(); else if(actioncommandequals(ff_btn_action_command)) { controlff(); else if(actioncommandequals(rw_rtp_btn_action_command)) { controlrw(); SampleControlComponent MediaPlayer SampleControlCo mponent displayframesetcontrolcomponent( new SampleControlComponent(player)); < 2> JSTORM <14/23>

Issued by: < > Revision: <10> <2000/9/1> JMF, < 3> < 4> IBS IBS JSTORM <15/23>

Issued by: < > Revision: <10> <2000/9/1> (IBS Server) -> Tuner Server (Tuner Client) -> (Tuner Server) (IBS Server) -> Tunser Server (Tuner Client) -> (Tuner Server) (Tunser Client) -> (Tuner Client) -> (Tuner Server) -> (Tuner Client) (Socket) (Protocol), <2>,, ':', ', ' ', ',',, OpCode, 2 TunerProtocol public class TunerProtocol{ public static final String OP_DELIMITER = ":"; public static final String BROADCASTERINFO_DELIMITER = " "; public static final String DESCRIPTION_DELIMITER = ","; JSTORM <16/23>

Issued by: < > Revision: <10> <2000/9/1> // Operation public static String parseopcode(string str){ StringTokenizer st = new StringTokenizer(str, OP_DELIMITER); if(sthasmoreelements()){ return stnexttoken(); return null; // Message // opcode:message public static String parsemessage(string str){ StringTokenizer st = new StringTokenizer(str, OP_DELIMITER); if(sthasmoreelements()){ stnexttoken(); if(sthasmoreelements()){ return ""; return stnexttoken(); // BroadcasterInfo // address,description address,description address,description public static Vector parsebroadcasterinfo(string str){ StringTokenizer mainst = new StringTokenizer(str, BROADCASTERINFO_DELIMITER); Vector result = new Vector(2); BroadcasterInfo binfo; // while(mainsthasmoreelements()){ StringTokenizer subst = new StringTokenizer(mainSTnextToken(), binfo = new BroadcasterInfo(); binfosetaddress(substnexttoken()); binfosetdescription(substnexttoken()); resultaddelement(binfo); return result; DESCRIPTION_DELIMITER); JSTORM <17/23>

Issued by: < > Revision: <10> <2000/9/1> TunerProtocol TunerProtocol, parseopcode() OP OP String message = ""; try{ message = inputreadutf(); catch(exception e){ eprintstacktrace(); String opcode; opcode = TunerProtocolparseOPCode(message); if(opcode!= null){ if(opcodeequals(tunerserverop_add_server)){ addserver(tunerprotocolparsemessage(message)); else if(opcodeequals(tunerserverop_remove_server)){ removeserver(tunerprotocolparsemessage(message)); else if(opcodeequals(tunerserverop_get_server_info)){ getserverinfo();, opensocket(), OP OPCode':' parsemessage() parsebroadcasterinfo() Vector JSTORM <18/23>

Issued by: < > Revision: <10> <2000/9/1> String message = ""; try{ Socket socket = opensocket(); thisinput = new DataInputStream(socketgetInputStream()); thisoutput = new DataOutputStream(socketgetOutputStream()); outputwriteutf(tunerserverop_get_server_info+":"); // message = inputreadutf(); socketclose(); catch(exception e){ eprintstacktrace(); return new Vector(); Vector binfos = TunerProtocolparseBroadcasterInfo( TunerProtocolparseMessage(message)); return binfos; JSTORM <19/23>

Issued by: < > Revision: <10> <2000/9/1> JMF JMF 20 JMF JAVA Sun JMF IBM, JMF JMF 3 JMF JMF JStorm (http://wwwjstormpekr) JSTORM <20/23>

Issued by: < > Revision: <10> <2000/9/1> JSTORM <21/23>

Issued by: < > Revision: <10> <2000/9/1> CaptureDevice CaptureDevice DataSource DataSource CaptureDevice connect() disconnect() getcapturedeviceinfo getformatcontrol start stop CaptureDeviceInfo FormatControl JSTORM <22/23>

Issued by: < > Revision: <10> <2000/9/1> connect(),, disconnect() getformatcontrols() FormatControl, (1 ), connect() start() stop(), DataSourcestart() stop() CaptureDevicestart, DataSourcestart stop JSTORM <23/23>