오늘은 어디로 갈까...

IPTV 관련 소스 본문

InteractiveTV

IPTV 관련 소스

剛宇 2009. 9. 18. 13:29
 ACAP 개발 방식을 기존처럼 한 클래스에 몰빵하는 방식(?)으로 하기로 결정하였다. 구조만 잘 잡혀도, 구조적 프로그래밍을 하는데 별 반감은 없으나... 좀.. 거시기 한것은 어쩔수가 없다. (고생할 생각하니 눈물이 앞을 가리는 구나 ㅠㅠ)

 여기 첨부하는 소스는 개인적으로 만든 것으로서, IPTV 개발을 좀 더 쉽게 하기 위해 만든, 만들다가만 IPTV 프레임워크라 보면 된다. 이걸로 하자고 밀고 나가고 싶었으나, 요즘 만사가 귀찮아서 그냥 묻어가기로 했다. 아직 테스트 코드가 많고, 많은 부분이 미완성이지만, 차후 또 삽집을 안하기 위해서 여기 흔적을 남겨준다. 저작권(?)상 이미지랑, 해당 업체 관련 코드는 모두 삭제하여으므로, 정상작동을 안한다. 단지 참고용으로만 보면 될것이다.



 HaviBackgroundController는 잘 작동하는것 같고, VideoController는 STB에서 테스트를 안해봐서 정상 작동 유무를 보장못한다. 그리고, VideoController 부분은 차후 쓰레드로 분리해서 처리해야할거 같다.
 HComponent, HContainer에 보면 자체 더블 버퍼링을 지원하는지 여부를 판단할 수 있는 isDoubleBuffered()를 메소드를 지원한다.
 자체적으로 더블 버퍼링을 할려면, 아래처러 하면 될것이다. 메모리를 좀 더 사용하는게 단점이기는 하지만, 깜빡임을 제거하는데는 이게 최고이다. --;
	Image buffer = null;
	Graphics bufferGraphics = null;
	
	
	public void paint(Graphics g) {
		// Double Buffering
		if (buffer == null) {
			Dimension size = getSize();
			buffer = createImage(size.width, size.height);
			bufferGraphics = buffer.getGraphics();
		}
		// 이미지에  그린다.
		super.paint(bufferGraphics);
		g.drawImage(buffer, 0, 0, this);
	}


 XleTView에서는 구현안되었던 HAVi UI 위젯(widget)이 실제 xxxxTV의 STB에서는 대부분(?) 잘 작동하였음을 볼 수 있었다.
 그나저나, HDialog 라는게 어떤 API에는 있고, 어떤데는 없는것을 보면 버젼차이인가...? 팝업을 만드는게 상당히 머리를 아프게 만든다. 로직의 제어권이 팝업으로 넘어가버리는 문제가 발생하니... 그냥둬도 뭐 돌아가는데는 문제가 없지만 말이다.



 IPTV를 사용해본 소감은... 실망이었다. 어플이 처음 뜨는 속도가 느린것은 뭐 이해할 수 있으나, 반응속도가 느리고, 셋탑박스 처음 부팅시간은 왜 이리 느린것인지. 셋탁박스 가격도 만만치 않을터인데, 이렇게 밖에 만들 수 없는것인가? 구닥라리 헥박(개조 X-Box)의 XMBC(미디어 플레이어)가 500% 정도 더 좋아보인다. XBMC에 실시간 방송 기능만 추가된다면, IPTV를 가져다 버릴거 같다....... 뭐 본인이 모르는 여러가지 제반사항들이 있기는 하지만, 이런 모양새로는 IPTV는 영원히 "보조재"가 될뿐이지 "대체재"가 될 수는 없을것같다.
 차라리 저전력PC에 리모콘 붙인다음, XBMC 같은 미디어 센터 같은 소프트웨어를 올려서 사용하는게 더 미래가 있어보이기까지 한다. (흠 HTPC가 되어버렸네 --;) 하긴 사용자 친화적인 소프트웨어를 만드는게 어렵운것이지만 말이다. 요즘 시대는 하드웨어 조립은, 쉬운편(?)인것 같다. 그에 반해 대한민국 소프트웨어는 아직... 저질인것이다...
 다행이도 요즘에는 XBMC(http://xbmc-korea.com/)가 여러 플랫폼에서 작동하고, 박씨(www.boxee.tv) 같은 것도 있으니, 그냥 HTPC 하나 만들어 쓰는게 더 좋을 수도 있다. 거기에다 IPTV처럼 동영상을 합법적이고, 편리하게 볼 수 있는 기능이 제공된다면 금상첨화일것 같다.
 사용자가 원하는것은 그리 거창한게 아닐 수도 있다. 단지, 좀 더 편리하고 인간답게(?) 쓰길 원하는것일지도....