📄 multimediasynchronization.java
字号:
if (controlComponent_video == null)
if (( controlComponent_video =
videoPlayer.getControlPanelComponent()) != null) {
controlPanelHeight_video = controlComponent_video.getPreferredSize().height;
panel_video.add(controlComponent_video);
height += controlPanelHeight_video;
}
if (visualComponent_video == null)
if (( visualComponent_video =
videoPlayer.getVisualComponent())!= null) {
panel_video.add(visualComponent_video);
Dimension videoSize = visualComponent_video.getPreferredSize();
videoWidth = videoSize.width;
videoHeight = videoSize.height;
width = videoWidth;
height += videoHeight;
visualComponent_video.setBounds(0, 0, videoWidth, videoHeight);
}
panel_video.setBounds(0, 35,width, height);
if (controlComponent_video != null) {
controlComponent_video.setBounds(0, videoHeight,
width, controlPanelHeight_video);
controlComponent_video.invalidate();
}
}
else if (event instanceof EndOfMediaEvent) {
videoPlayer.setMediaTime(new Time(0));
panel_video.removeAll();
image1.setIcon(null);
try{
image2.setIcon(new ImageIcon(file_image2.getDirectory()+
file_image2.getFile()));
}catch(Exception ee){
image2.setIcon(new ImageIcon("C:\\java\\2.jpg"));//Image2初始值
}
try
{
Thread.sleep(10000);
}catch(Exception ee)
{}
AreaOfTxt.setText(null);
} else if (event instanceof ControllerClosedEvent) {
panel_video.removeAll();
}
}
}
public void audioStart() {
if(file_audio==null || file_audio.getDirectory()==null)
{
try{
URL mediaURL=new URL("file:///C://java//MutilMedia.mp3");
audioPlayer=Manager.createPlayer(mediaURL);
L_openAudioFile l_openAudioFile =new L_openAudioFile();
audioPlayer.addControllerListener(l_openAudioFile);
}catch(Exception e){}
}
if(mediaURL_audio!=null)
{
try{
audioPlayer=Manager.createPlayer(mediaURL_audio);
L_openAudioFile l_openAudioFile =new L_openAudioFile();
audioPlayer.addControllerListener(l_openAudioFile);
}catch(Exception e){}
}
if (audioPlayer != null)
audioPlayer.start();
}
public void audioStop() {
if (audioPlayer != null) {
audioPlayer.stop();
audioPlayer.deallocate();
}
}
public void audioDestroy() {
if (audioPlayer != null) {
audioPlayer.close();
}
}
class L_openAudioFile implements ActionListener,ControllerListener{
public void actionPerformed(ActionEvent e)
{ audioDestroy();
file_audio=new FileDialog(f,"open Audio File",FileDialog.LOAD);
file_audio.show(true); //显示出文件对话框
try{
if(file_audio.getDirectory()!=null)
{
URL mediaURL=new URL("file:///"+file_audio.getDirectory()+
file_audio.getFile());
mediaURL_audio=mediaURL; //保存URL
audioPlayer=Manager.createPlayer(mediaURL);
audioPlayer.addControllerListener(this);
}
}catch(Exception ee){}
}
public synchronized void controllerUpdate(ControllerEvent event) {
if (audioPlayer == null)
return;
if (event instanceof EndOfMediaEvent) {
audioPlayer.setMediaTime(new Time(0));
try{
videoDestroy();
}catch(Exception e3){}
try{
audioDestroy();
}catch(Exception e4){}
image1.setIcon(null);
image2.setIcon(null);
try
{
Thread.sleep(5000);
}catch(Exception ee)
{}
AreaOfTxt.setText(null);
} else if (event instanceof ControllerClosedEvent) {
}
}
}
class L_Start implements ActionListener{
public void actionPerformed(ActionEvent e)
{
AreaOfTxt.setText(null);
try{
videoDestroy();
}catch(Exception e3){}
try{
audioDestroy();
}catch(Exception e4){}
videoStart();
audioStart();
AreaOfTxt.append(" 我不喜欢应景的歌。而非典却让应景变得也有所不同了。我们\n");
AreaOfTxt.append("都真正面对过恐惧,惶惑,茫然,无助,我们都渴望。 \n");
AreaOfTxt.append(" 这首歌,几乎召集了台湾乐坛全部精锐力量,不管他们在音乐\n");
AreaOfTxt.append("上的作为如何,他们都是当真有着一流号召力的星力量,做一个恶\n");
AreaOfTxt.append("毒的假设,倘若他们集体感染了SARS,我们的歌坛就会出现真空。\n");
AreaOfTxt.append(" 话说回来了,SARS已经找一个地方眯着去了,会不会卷土再来,\n");
AreaOfTxt.append("还要看我们手牵手能否坚持到底,而非典不再是主旋律的时候,我\n");
AreaOfTxt.append("们的音乐又会从非典型回到典型,耳朵真正等的,也差不多该来了\n");
AreaOfTxt.append("吧?\n");
try
{
Thread.sleep(1000);
}catch(Exception ee)
{}
try{
image1.setIcon(new ImageIcon(file_image1.getDirectory()+
file_image1.getFile()));
}catch(Exception ee){
image1.setIcon(new ImageIcon("C:\\java\\1.jpg"));//Image1初始值
}
}
}
class L_Help implements ActionListener{
public void actionPerformed(ActionEvent e)
{
AreaOfTxt.setText("使用须知:\n");
AreaOfTxt.append("本实验实现的是基于事件的同步\n");
AreaOfTxt.append("同步时间与实验给的初步情况一致\n");
AreaOfTxt.append("使用方法:\n");
AreaOfTxt.append("分别点击'添加视频''添加音频''打开图像1''打开图像2'加入需要打开的文件\n");
AreaOfTxt.append("点击‘开始‘即可以进行演示\n");
}}
class L_Stop implements ActionListener{
public void actionPerformed(ActionEvent e)
{
try{
videoDestroy();
}catch(Exception e3){}
try{
audioDestroy();
}catch(Exception e4){}
image1.setIcon(null);
image2.setIcon(null);
AreaOfTxt.setText(null);;
}
}
class L_Image1 implements ActionListener{
public void actionPerformed(ActionEvent e)
{
file_image1=new FileDialog(f,"open image1 File",FileDialog.LOAD);
file_image1.show(true);
}
}
class L_Image2 implements ActionListener{
public void actionPerformed(ActionEvent e)
{
file_image2=new FileDialog(f,"open image2 File",FileDialog.LOAD);
file_image2.show(true);
}
}
public static void main(String args[])
{
MultimediaSynchronization m=new MultimediaSynchronization();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -