📄 playquicktime.java
字号:
package com.pepsan.framework;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import quicktime.*;
import quicktime.io.*;
import quicktime.qd.*;
import quicktime.std.*;
import quicktime.std.movies.*;
import quicktime.std.movies.media.*;
import quicktime.app.display.*;
import quicktime.app.players.*;
/*
* Play some QuickTime content!
*
* Copyright (c) 1999 Pepsan & Associates, Inc.
*/
public class PlayQuickTime extends JFrame implements Errors {
// A background image for the window
private static String backFile = "quicktime.gif";
private QTDrawable myPlayer;
private Movie m;
private QTCanvas myQTCanvas;
private JMenuBar menuBar;
private JMenu playMenu;
private JMenuItem openMenuItem;
private JMenuItem closeMenuItem;
public PlayQuickTime () {
try {
QTSession.open();
PlayQuickTime pm = new PlayQuickTime("Do the QuickTime Thing");
pm.toFront();
} catch (QTException e) {
// Couldn't initialize QT so give up
System.err.println("QT initialization failed. Giving up.");
QTSession.close ();
}
}
// title is of course the title for the window
public PlayQuickTime (String title) {
super (title);
myQTCanvas = new QTCanvas();
JLabel backgroundImage = new JLabel(new ImageIcon(backFile));
getContentPane().add(backgroundImage);
playMenu();
pack();
show();
getContentPane().add(myQTCanvas);
addWindowListener(new WindowAdapter () {
public void windowClosing (WindowEvent e) {
close();
}
public void windowClosed (WindowEvent e) {
close();
}
});
}
public void close() {
setVisible(false);
}
// Resize the window to the size of the movie
// A URL is used, even if the file is local
public void createNewQuickTimeFromURL (String theURL) {
try {
DataRef urlQuickTime = new DataRef(theURL);
m = Movie.fromDataRef (urlQuickTime,StdQTConstants.newMovieActive);
MovieController mc = new MovieController (m);
mc.setKeysEnabled (true);
myPlayer = new QTPlayer (mc);
myQTCanvas.setClient (myPlayer, true);
setMenuBar(null);
pack();
//no user control over MoviePlayer or MoviePresenter so set rate
if (false)
m.setRate(1);
} catch (QTException err) {
System.err.println("Failed to create QT movie.");
}
}
public QTDrawable getPlayer () {
return myPlayer;
}
public QTCanvas getCanvas () {
return myQTCanvas;
}
public Movie getMovie () throws QTException {
return m;
}
void stopPlayer () {
try {
if (m != null)
m.setRate(0);
} catch (QTException err) {
System.err.println("Failed to stop QT movie.");
}
}
void playMenu() {
// Create the bar and menus! What a surprise...
menuBar = new JMenuBar();
playMenu = new JMenu ("Play");
menuBar.add (playMenu);
openMenuItem = new JMenuItem ("Open...");
closeMenuItem = new JMenuItem("Close");
playMenu.add(openMenuItem);
playMenu.add(closeMenuItem);
// Here's what to do if the user picks Open
openMenuItem.addActionListener (new ActionListener () {
public void actionPerformed(ActionEvent event) {
stopPlayer();
// creat a movie through the file-open dialog of QT
try {
QTFile qtf = QTFile.standardGetFilePreview(QTFile.kStandardQTFileTypes);
createNewQuickTimeFromURL ("file://" + qtf.getPath());
} catch (QTException e) {
if (e.errorCode() != Errors.userCanceledErr)
e.printStackTrace();
}
}
});
closeMenuItem.addActionListener (new ActionListener () {
public void actionPerformed(ActionEvent event) {
// closes down QT and quits
close();
}
});
setJMenuBar (menuBar);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -