İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır
Zafer Teker
tekzaf@yahoo.com

DVB-MHP Reference Implementation ile Xlet Çalıştırılması

"DVB-MHP Reference Implamantation" iTV'ler (Interactive Television) için Xlet geliştirmek için yaratılmış bir sümülasyon programıdır. DVB-MHP spesifikasyonunun bir alt kümesini destekler.

Bu programı http://www.devicetop.com/dt/tutorials/DVB-MHP-RefImpl.zip adresinden indirebilirsiniz. Bu klasörü bir yere açınız. Klasörün içinde runit.bat'ı çalıştırmanız gerekir. Çalıştırmanız için JAVA_HOME değişkenini set etmeniz gerekir. Bunun için runit.bat dosyasının başına örneğin aşğıdaki gibi JAVA_HOME değişkeninin değerini verin.

set JAVA_HOME=C:\jdk

Bu satırı ekledikten sonra runit.bat'ı çalıştırırsanız aşağıdaki sümülatorü göreceksiniz.

Kumanda

İlk açıldığında 1. kanal açılır. İlk kanalda kendilerinin yapmış oldukları \test\sports klasörünün içindeki SportsXlet Xlet'i çalışır. Hangi kanalda hangi Xlet'in çalışacağı channels klasörünün içinde verilir. "1" klasörünün içinde channel.properties ile kanalın özelliği verilir. channel.properties dosyasının içeriği şöyledir.

TVImage=football.jpg
Xlet=test.sports.SportsXlet

football.jpg ekranda gözüken resimdir.

"1" klasörünün içinde carousel klasörü vardır. Bu kanal'daki dosyaların tutulacağı yerdir. SportsXlet bu klasörün içindeki testfile dosyasını yüklemektedir. Aslında bu klasör kanal yayının yapıldığı server'ı sümüle eder.

Kendimiz Bir Xlet Yapalım.

Bunun için önce DVB-MHP-RefImpl klasörünün içinde bir projects klsörü yaratalım. Yaratacağımız MediaXlet.java dosyasını bu klssörün içine koyalım.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 import javax.tv.xlet.*;
  2 import javax.tv.graphics.*;
  3 import org.dvb.dsmcc.*;
  4 import javax.media.*;
  5 import javax.media.bean.playerbean.*;
  6 import java.awt.*;
  7 import java.net.*;
  8 public class MediaXlet implements Xlet,ControllerListener{
  9   private Container rootContainer;
 10   private Player player;
 11   public SimpleXlet(){}
 12   public void initXlet(XletContext xletContext) throws XletStateChangeException{
 13     System.out.println("init xlet");
 14     try{
 15       rootContainer=TVContainer.getRootContainer(xletContext);
 16       rootContainer.setLayout(new BorderLayout());
 17       rootContainer.setSize(new Dimension(200,200));
 18       URL mediaURL=new URL("file:///E:/Test/scope.avi");
 19       player=Manager.createPlayer(mediaURL);
 20       player.start();
 21       player.addControllerListener(this);
 22     }catch(Exception e){
 23       e.printStackTrace();
 24     }
 25   }
 26   public void startXlet() throws XletStateChangeException{
 27     System.out.println("start xlet");
 28   }
 29   public void pauseXlet(){}
 30   public void destroyXlet(boolean flag) throws XletStateChangeException{}
 31   public void controllerUpdate(ControllerEvent event){
 32     if (event instanceof RealizeCompleteEvent){
 33       Component comp;
 34       if ((comp = player.getVisualComponent()) != null){
 35         rootContainer.add(comp,BorderLayout.CENTER);
 36         rootContainer.validate();
 37       }
 38     }
 39   }
 40 }

Bu örneğin derlenmesi gerekir.

set CLASSPATH=E:\DVB-MHP-RefImpl\jmfstub\jmfstub.jar;E:\DVB-MHP-RefImpl\lib\itv.jar;.;
C:\jdk\bin\javac MediaXlet.java

şeklinde derledik.

Şimdi bu Xlet'i 2. kanala koyacağız. channels\2 klasörünün içinde channel.properties dosyası yaratıyoruz.

TVImage=
Xlet=MediaXlet

Bu işlemden sonra tek yapılması gereken runit.bat çalıştırılırken projects klasörünüde Classpath'e eklemek. Bunun için

E:\DVB-MHP-RefImpl\projects 

satırını runit.bat'ın classpath'ine ekledik.Program açıldığında 1. kanal görüntülenir. 2. kanala geçmek için 2'i tıklayıp Yön tuşlarının ortasındaki işarete tıklanarak 2. kanala geçebilirsiniz. 2. kanala geçildiğinde sizin yapmış olduğunuz MediaXlet çalışacaktır.

Dosya Listesi

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır