📄 sound.java
字号:
/*
* Sound.java
*
* Created on 2008年3月28日, 上午11:41
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package com.gjunit.CRT;
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 Sound extends JFrame implements ControllerListener {
public Sound(
) {
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("d:\\");
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 Sound();
}
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;
}
/*public class SimplePlayerTest{
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!");
}}} */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -