• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • paul wheaton
  • Jeanne Boyarsky
  • Ron McLeod
Sheriffs:
  • Paul Clapham
  • Liutauras Vilda
  • Devaka Cooray
Saloon Keepers:
  • Tim Holloway
  • Roland Mueller
Bartenders:

HELP

 
Ranch Hand
Posts: 153
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
This is a problem connected to the code in the following java file.
http://java.sun.com/products/java-media/jmf/2.1.1/samples/samples/RTPPlayerApplet.java
Inspite of downloading the latest version of jmf and jdk , i am not able to compile the rtpapplet , reason being class ParticipantListWindow not found, can u just help me out in compilling the same
---------------------------------------
CODE
---------------------
<pre>
import java.applet.Applet;
import javax.media.rtp.*;
import javax.media.rtp.rtcp.*;
import javax.media.rtp.event.*;
import com.sun.media.rtp.RTPSessionMgr;
import java.io.*;
import java.awt.*;
import java.util.Vector;
import java.net.*;
import java.awt.event.*;
import java.lang.String;
import javax.media.*;
import javax.media.protocol.*;
import com.sun.media.*;
import com.sun.media.ui.*;
import java.io.IOException;
import java.lang.SecurityException;
import rtp.*;
// This RTP applet will allow a user to playback streams for one audio
// session and one video session. Video and Audio RTP monitors are
// also available for displaying RTCP statistics of this
// session.Methods
// StartSessionManager() will take care of starting the session and
// registering this applet as an RTP Session Listener.
// Method RTPSessionUpdate() will process all the RTPEvents sent by
// the SessionManager.
public class RTPPlayerApplet extends Applet implements
ControllerListener, ReceiveStreamListener, ActionListener{


InetAddress destaddr;
String address;
String portstr;
String media;
Player videoplayer = null;
SessionManager videomgr = null;
SessionManager audiomgr = null;
Component visualComponent = null;
Component controlComponent = null;
Panel panel = null;
Button audiobutton = null;
Button videobutton = null;
GridBagLayout gridbag = null;
GridBagConstraints c = null;
ParticipantListWindow videogui = null;
ParticipantListWindow audiogui = null;
int width = 320;
int height =0;
Vector playerlist = new Vector();


public void init(){
setLayout( new BorderLayout() );
Panel buttonPanel = new Panel();
buttonPanel.setLayout( new FlowLayout() );
add("North", buttonPanel);
media = getParameter("video");
if (media.equals("On")){
address = getParameter("videosession");
portstr = getParameter("videoport");
StartSessionManager(address,
StrToInt(portstr),
"video");
if (videomgr == null){
System.err.println("null video manager ");
return;
}
// this is the GUI for displaying the RTCP
// statistics. This will not be displayed until the user
// clicks on the RTP Monitor window
//videogui = new ParticipantListWindow(videomgr);
// add a button for the video RTP monitor
videobutton = new Button("Video RTP Monitor");
videobutton.addActionListener(this);
buttonPanel.add(videobutton);
}
media = getParameter("audio");
if (media.equals("On")){
address = getParameter("audiosession");
portstr = getParameter("audioport");
StartSessionManager(address,
StrToInt(portstr),
"audio");
if (audiomgr == null){
System.err.println("null audio manager");
return;
}
//audiogui = new ParticipantListWindow(audiomgr);
// add a button for the audio RTP monitor
audiobutton = new Button("Audio RTP Monitor");
audiobutton.addActionListener(this);
buttonPanel.add(audiobutton);
}
}// end of constructor
public void start(){
// The applet only controls the first video player by adding
// its visual and control component to the applet canvas. Thus
// only this player needs to be controlled when this applet is
// swiched in browser pages etc.
if (videoplayer != null){
videoplayer.start();
}
if (playerlist == null)
return;
for (int i =0; i < playerlist.size(); i++){
Player player = (Player)playerlist.elementAt(i);
if (player != null)
new PlayerWindow(player);
}
}
// applet has been stopped, stop and deallocate all the RTP players.
public void stop(){
if (videoplayer != null){
videoplayer.close();
}
if (playerlist == null)
return;
for (int i =0; i < playerlist.size(); i++){
Player player = (Player)playerlist.elementAt(i);
if (player != null){
player.close();
}
}
}
// applet has been destroyed by the browser. Close the Session
// Manager.
public void destroy(){
// close the video and audio RTP SessionManagers
String reason = "Shutdown RTP Player";

if (videomgr != null){
videomgr.closeSession(reason);
videoplayer = null;
videomgr = null;
}

if (audiomgr != null){
audiomgr.closeSession(reason);
audiomgr = null;
}
super.destroy();
}


public void actionPerformed(ActionEvent event){
Button button = (Button)event.getSource();
if ((button == videobutton) && (videomgr != null))
videogui = new ParticipantListWindow(videomgr);
//videogui.Show();
if ((button == audiobutton) && (audiomgr != null))
audiogui = new ParticipantListWindow(audiomgr);
//audiogui.Show();
}

public String getAddress(){
return address;
}

public int getPort(){
// the port has to be returned as an integer
return StrToInt(portstr);
}

public String getMedia(){
return media;
}

private int StrToInt(String str){
if (str == null)
return -1;
Integer retint = new Integer(str);
return retint.intValue();
}
public synchronized void controllerUpdate(ControllerEvent event) {
Player player = null;
Controller controller = (Controller)event.getSource();
if (controller instanceof Player)
player =(Player)event.getSource();

if (player == null)
return;


if (event instanceof RealizeCompleteEvent) {
// add the video player's visual component to the applet
if (( visualComponent =
player.getVisualComponent())!= null){
width = visualComponent.getPreferredSize().width;
height += visualComponent.getPreferredSize().height;
if (panel == null) {
panel = new Panel();
repositionPanel(width, height);
panel.setLayout(new BorderLayout());
}
panel.add("Center", visualComponent);
panel.validate();
}
// add the player's control component to the applet
if (( controlComponent =
player.getControlPanelComponent()) != null){
height += controlComponent.getPreferredSize().height;
if (panel == null) {
panel = new Panel();
panel.setLayout(new BorderLayout());
}
repositionPanel(width, height);
panel.add("South", controlComponent);
panel.validate();
}

if (panel != null){
add("Center", panel);
invalidate();
}
}
if (event instanceof SizeChangeEvent) {
if (panel != null){
SizeChangeEvent sce = (SizeChangeEvent) event;
int nooWidth = sce.getWidth();
int nooHeight = sce.getHeight();

// Add the height of the default control component
if (controlComponent != null)
nooHeight += controlComponent.getPreferredSize().height;

// Set the new panel bounds and redraw
repositionPanel(nooWidth, nooHeight);
}
}
validate();
}
/**
* The video/control component panel needs to be repositioned to sit
* in the middle of the applet window.
*/
void repositionPanel(int width, int height) {
panel.setBounds(0,
0,
width,
height);
panel.validate();
}
public void update( ReceiveStreamEvent event){
SessionManager source =(SessionManager)event.getSource();
Player newplayer = null;
// create a new player if a new recvstream is detected
if (event instanceof NewReceiveStreamEvent){
try{
ReceiveStream stream = ((NewReceiveStreamEvent)event).getReceiveStream();
DataSource dsource = stream.getDataSource();
newplayer = Manager.createPlayer(dsource);
}catch (Exception e){
System.err.println("RTPPlayerApplet Exception " + e.getMessage());
e.printStackTrace();
}
if (newplayer == null){
return;
}
// if this is the first video player, we need to listen to
// its events. Add me as a ControllerListener before
// starting the player
if (source == videomgr){
if (videoplayer == null){
videoplayer = newplayer;
newplayer.addControllerListener(this);
newplayer.start();
}
else{// controller listener and start is taken care of
// in playerWindiow
if (playerlist != null)
playerlist.addElement((Object)newplayer);
new PlayerWindow(newplayer);
}
}// if (source == videomgr)
if (source == audiomgr){
if (playerlist != null)
playerlist.addElement((Object)newplayer);
new PlayerWindow(newplayer);
}
}// if (event instanceof NewReceiveStreamEvent)

if (event instanceof RemotePayloadChangeEvent){
// we received a payload change event. If a player was not
// created for this ReceiveStream, create a player. If the
// player already exists, RTPSM and JMF have taken care of
// switching the payloads and we dont do anything.
// If this is the first video player add me as the
// controllerlistener before starting the player, else
// just create a new player window.
}

}// end of RTPSessionUpdate

private SessionManager StartSessionManager(String destaddrstr,
int port,
String media){
// this method create a new RTPSessionMgr and adds this applet
// as a SessionListener, before calling initSession() and startSession()
SessionManager mymgr = new RTPSessionMgr();
if (media.equals("video"))
videomgr = mymgr;
if (media.equals("audio"))
audiomgr = mymgr;
if (mymgr == null)
return null;
mymgr.addReceiveStreamListener(this);
//if (media.equals("audio"))
// EncodingUtil.Init((SessionManager)mymgr);

// for initSession() we must generate a CNAME and fill in the
// RTP Session address and port
String cname = mymgr.generateCNAME();
String username = "jmf-user";
SessionAddress localaddr = new SessionAddress();

try{
destaddr = InetAddress.getByName(destaddrstr);
}catch (UnknownHostException e){
System.err.println("inetaddress " + e.getMessage());
e.printStackTrace();
}
SessionAddress sessaddr = new SessionAddress(destaddr,
port,
destaddr,
port+1);

SourceDescription[] userdesclist = new SourceDescription[4];
int i;
for(i=0; i< userdesclist.length;i++){
if (i == 0){
userdesclist[i] = new
SourceDescription(SourceDescription.SOURCE_DESC_EMAIL,
"[email protected]",
1,
false);
continue;
}
if (i == 1){
userdesclist[i] = new
SourceDescription(SourceDescription.SOURCE_DESC_NAME,
username,
1,
false);
continue;
}
if ( i == 2){
userdesclist[i] = new
SourceDescription(SourceDescription.SOURCE_DESC_CNAME,
cname,
1,
false);
continue;
}
if (i == 3){
userdesclist[i] = new
SourceDescription(SourceDescription.SOURCE_DESC_TOOL,
"JMF RTP Player v2.0",
1,
false);
continue;
}
}// end of for

// call initSession() and startSession() of the RTPsessionManager
try{
mymgr.initSession(localaddr,
mymgr.generateSSRC(),
userdesclist,
0.05,
0.25);
mymgr.startSession(sessaddr,1,null);
}catch (SessionManagerException e){
System.err.println("RTPPlayerApplet: RTPSM Exception " + e.getMessage());
e.printStackTrace();
return null;
}catch (IOException e){
System.err.println("RTPPlayerApplet: IO Exception " + e.getMessage());
e.printStackTrace();
return null;
}

return mymgr;
}
}// end of class
</pre>
-----------------------------------------------------------------
 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I got the same problem too.
Even more,I got the information :

No rtp package.
1.
I am wonder about the :import rtp.*;
Did you got a rtp package?
2.
ParticipantListWindow
is not found.
Do you have solved it?
 
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I got the same problem too!!!
Even more,I got the information :

No rtp package.
1.
I am wonder about the :import rtp.*;
Did you got a rtp package?
2.
ParticipantListWindow
is not found.
Do you have solved it?[/QB]
 
Jordi Pacholo
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Solution:

delete all references of
ParticipantListWindow
and delete import *.rtp.
 
Ranch Hand
Posts: 428
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Does anyone have the code for rtpclient.html or the directions on how to run this applet? Will it listen to a stream from JMStudio so I can see myself in a web cam on a different computer?
Thanks,
Siegfried
 
Siegfried Heintze
Ranch Hand
Posts: 428
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
OK, here is what I got so far (see below). It is giving me this error. Can someone guide me on signing this applet and setting up the appropriate policy file?
Thanks!
Siegfried


Here is my attempt to recreate rtpclient.html

 
Good night. Drive safely. Here's a tiny ad for the road:
Smokeless wood heat with a rocket mass heater
https://woodheat.net
reply
    Bookmark Topic Watch Topic
  • New Topic