当然.给你个例子:import java.awt.Component; import java.awt.Dimension; import java.awt.Panel; import java.io.IOException; import javax.media.CachingControl; import javax.media.CachingControlEvent; import javax.media.Controller; import javax.media.ControllerClosedEvent; import javax.media.ControllerErrorEvent; import javax.media.ControllerEvent; import javax.media.ControllerListener; import javax.media.EndOfMediaEvent; import javax.media.MediaLocator; import javax.media.NoPlayerException; import javax.media.Player; import javax.media.RealizeCompleteEvent; import javax.media.Time; import javax.swing.JFrame; import javax.media.Manager;public class SimplePlayerTest extends JFrame implements ControllerListener { public SimplePlayerTest() { setDefaultCloseOperation(EXIT_ON_CLOSE); this.setBounds(200, 200, 325, 290); setLayout(null); panel = new Panel(); panel.setLayout(null); add(panel); panel.setBounds(0, 0, 320, 240); MediaLocator mrl = new MediaLocator("file:F:\\mpeg\\MPEG2_TS.mpg"); try { player = Manager.createPlayer(mrl); } catch (NoPlayerException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } player.addControllerListener(this); player.start(); setVisible(true); } public void controllerUpdate(ControllerEvent event) { // If we're getting messages from a dead player, // just leave if (player == null) return; // When the player is Realized, get the visual // and control components and add them to the Applet if (event instanceof RealizeCompleteEvent) { if (progressBar != null) { panel.remove(progressBar); progressBar = null; } int width = 320; int height = 0; if (controlComponent == null) if ((controlComponent = player.getControlPanelComponent()) != null) { System.out.println("1"); controlPanelHeight = controlComponent.getPreferredSize().height; panel.add(controlComponent); height += controlPanelHeight; } if (visualComponent == null) if ((visualComponent = player.getVisualComponent()) != null) { System.out.println("2"); panel.add(visualComponent); Dimension videoSize = visualComponent.getPreferredSize(); videoWidth = videoSize.width; videoHeight = videoSize.height; width = videoWidth; height += videoHeight; visualComponent.setBounds(0, 0, videoWidth, videoHeight); } panel.setBounds(0, 0, width, height); if (controlComponent != null) { System.out.println("3"); controlComponent.setBounds(0, videoHeight, width, controlPanelHeight); controlComponent.invalidate(); } } else if (event instanceof CachingControlEvent) { if (player.getState() > Controller.Realizing) return; // Put a progress bar up when downloading starts, // take it down when downloading ends. CachingControlEvent e = (CachingControlEvent) event; CachingControl cc = e.getCachingControl(); // Add the bar if not already there ... if (progressBar == null) { System.out.println("4"); if ((progressBar = cc.getControlComponent()) != null) { panel.add(progressBar); panel.setSize(progressBar.getPreferredSize()); validate(); } } } else if (event instanceof EndOfMediaEvent) { // We've reached the end of the media; rewind and // start over player.setMediaTime(new Time(0)); player.start(); } else if (event instanceof ControllerErrorEvent) { // Tell TypicalPlayerApplet.start() to call it a day player = null; System.exit(0); } else if (event instanceof ControllerClosedEvent) { panel.removeAll(); } } public static void main(String[] args) { new SimplePlayerTest(); } Player player = null; // component in which video is playing Component visualComponent = null; // controls gain, position, start, stop Component controlComponent = null; // displays progress during download Component progressBar = null; boolean firstTime = true; long CachingSize = 0L; Panel panel = null; int controlPanelHeight = 0; int videoWidth = 0; int videoHeight = 0; }在音量图标右键即可调音量.
这个网址出不来啊
import java.awt.Dimension;
import java.awt.Panel;
import java.io.IOException;
import javax.media.CachingControl;
import javax.media.CachingControlEvent;
import javax.media.Controller;
import javax.media.ControllerClosedEvent;
import javax.media.ControllerErrorEvent;
import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.EndOfMediaEvent;
import javax.media.MediaLocator;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.media.RealizeCompleteEvent;
import javax.media.Time;
import javax.swing.JFrame;
import javax.media.Manager;public class SimplePlayerTest extends JFrame implements ControllerListener { public SimplePlayerTest() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setBounds(200, 200, 325, 290);
setLayout(null);
panel = new Panel();
panel.setLayout(null);
add(panel);
panel.setBounds(0, 0, 320, 240);
MediaLocator mrl = new MediaLocator("file:F:\\mpeg\\MPEG2_TS.mpg");
try {
player = Manager.createPlayer(mrl);
} catch (NoPlayerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
player.addControllerListener(this);
player.start();
setVisible(true);
} public void controllerUpdate(ControllerEvent event) {
// If we're getting messages from a dead player,
// just leave
if (player == null)
return; // When the player is Realized, get the visual
// and control components and add them to the Applet
if (event instanceof RealizeCompleteEvent) {
if (progressBar != null) {
panel.remove(progressBar);
progressBar = null;
} int width = 320;
int height = 0;
if (controlComponent == null)
if ((controlComponent = player.getControlPanelComponent()) != null) {
System.out.println("1");
controlPanelHeight = controlComponent.getPreferredSize().height;
panel.add(controlComponent);
height += controlPanelHeight;
}
if (visualComponent == null)
if ((visualComponent = player.getVisualComponent()) != null) {
System.out.println("2");
panel.add(visualComponent);
Dimension videoSize = visualComponent.getPreferredSize();
videoWidth = videoSize.width;
videoHeight = videoSize.height;
width = videoWidth;
height += videoHeight;
visualComponent.setBounds(0, 0, videoWidth, videoHeight);
} panel.setBounds(0, 0, width, height);
if (controlComponent != null) {
System.out.println("3");
controlComponent.setBounds(0, videoHeight, width,
controlPanelHeight);
controlComponent.invalidate();
} } else if (event instanceof CachingControlEvent) {
if (player.getState() > Controller.Realizing)
return;
// Put a progress bar up when downloading starts,
// take it down when downloading ends.
CachingControlEvent e = (CachingControlEvent) event;
CachingControl cc = e.getCachingControl(); // Add the bar if not already there ...
if (progressBar == null) {
System.out.println("4");
if ((progressBar = cc.getControlComponent()) != null) {
panel.add(progressBar);
panel.setSize(progressBar.getPreferredSize());
validate();
}
}
} else if (event instanceof EndOfMediaEvent) {
// We've reached the end of the media; rewind and
// start over
player.setMediaTime(new Time(0));
player.start();
} else if (event instanceof ControllerErrorEvent) {
// Tell TypicalPlayerApplet.start() to call it a day
player = null;
System.exit(0);
} else if (event instanceof ControllerClosedEvent) {
panel.removeAll();
}
} public static void main(String[] args) {
new SimplePlayerTest();
} Player player = null; // component in which video is playing
Component visualComponent = null; // controls gain, position, start, stop
Component controlComponent = null; // displays progress during download
Component progressBar = null; boolean firstTime = true; long CachingSize = 0L; Panel panel = null; int controlPanelHeight = 0; int videoWidth = 0; int videoHeight = 0;
}在音量图标右键即可调音量.
static { System.loadLibrary("ChangeVol"); }
/** *如果系统不止持同时设置左右声道会忽略右声道的值 *@param l_vol 左声道音量,最大255, 最小0 *@param r_vol 右声道音量,最大255, 最小0 */
native public static int setSystemVol(int l_vol,int r_vol);
public static void main(String[] args) {
if(setSystemVol(0x66,0x88)==0) {
System.out.println("Change successfully!");
} else {
System.out.println("Change fail!");
} }}先编译如上代码,再运行javah VolChanger产生VolChanger.h文件,编写如下c代码,#include "VolChanger.h"#include <windows.h>JNIEXPORT jint JNICALL Java_VolChanger_setSystemVol (JNIEnv *env, jclass clazz, jint lv, jint rv){
int l=((int)lv)&0x00FF;
int r=((int)rv)&0x00FF;
DWORD vol=(r<<8)|l;
printf("set vol to %x!\r\n",vol);
if(waveOutSetVolume(0,vol)==MMSYSERR_NOERROR) {
return 0;
} else {
return -1;
} }