Accessing Microsoft Windows Media Server from Java |
This example demonstrates how to access Microsoft Windows Media Server from Java. J-Integra® for COM is a Java interoperability component that bridges Java and Microsoft Windows Media Server. It provides bi-directional access of Java objects and COM components.
// This example shows a pure Java client using the J-Integra® pure Java-COM // bridge to talk to the Windows Media Server COM components to display // events when clients access media files. You can run this program on any // machine that supports a standard JVM. // // For information on J-Integra® and to download an evaluation copy please // see http://j-integra.intrinsyc.com/ // // Create a file called WindowsMediaServerExample.java containing this // Java code. // // Create a subdirectory called 'windowsmedia' under the directory containing // this Java program, then generate the pure Java proxy files used by // this program to access the Windows Media Server COM components by running // the 'com2java' tool from the J-Integra® 'bin' directory. Specify // "\Program Files\Windows Media Components\Server\nsunimgr.ocx" // as the type library and "windowsmedia" as the package name, and the // windowsmedia subdirectory you created above, as the output directory. // // Compile and run the program with the J-Integra® runtime jintegra.jar in your // CLASSPATH. Start a client running from your browser, by selecting a URL such // as "mms://localhost/sample.asf" // // Watch the events arrive in the java client. import windowsmedia.*; public class WindowsMediaServerExample { public static void main(java.lang.String[] args) throws Exception { try { // No need to do this if running under Windows, and J-Integra® 'bin' directory is in // your PATH. // com.linar.jintegra.AuthInfo.setDefault("NTDOMAIN", "username", "password"); // Start the container used to host the OCX Windows Media Player COM components. // Specify the host name of the remote Windows machine as a parameter // if not running locally. NsoAdminControl adminControl = new NsoAdminControl(); adminControl.connect("localhost"); if (adminControl.getServerStatus() == NSOADM_SERVER_STATES.NSOADM_SERVER_RUNNING) { System.out.println("Server is running"); } else { System.err.println("Server is NOT running"); return; } adminControl.add_NsoEventsListener(new NsoEvents()); while (true) { // keep the client alive to receive events Thread.sleep(10000000); } } finally { // Release all remote objects that haven't already been garbage collected. com.linar.jintegra.Cleaner.releaseAll(); } } } class NsoEvents extends _NsoEventsAdapter { public void onClientConnect(_NsoEventsOnClientConnectEvent theEvent) { System.out.println("Client Connected from " + theEvent.getStrIpAddress()); } public void onClientDisconnect(_NsoEventsOnClientDisconnectEvent theEvent) { System.out.println("Client Disconnected from " + theEvent.getStrIpAddress()); } public void onClientPlay(_NsoEventsOnClientPlayEvent theEvent) { System.out.println("Client Playing " + theEvent.getStrFileName()); } public void onClientStop(_NsoEventsOnClientStopEvent theEvent) { System.out.println("Client Stopped Playing " + theEvent.getStrFileName()); } } |