Top Banner
HOME POSTS ABOUT WRITER BUDDHIMA'S COMPUTER LAB All About My Experiments How to play audio and video files in Java applications May 1, 2011 by Buddhima Wijeweera | 88 Comments Introduction In this post I’m going to show you how to play an audio and a video file using a java application. At first I have to mention that I’m using Java Media Framework (JMF) for this purpose. So you have to download and install JMF from here . According to the web page you can, Playback audios and videos Capture from devices Transmitt over an internet connection JMF is providing you necessary classes and you have to do less. But in here I’ve to mention that JMF is a bit old too. In many cases you won’t be able to play every media file you want. Because there are some restrictions. Through following examples I’ll show you how to get the use of JMF. Creating an audio player Before going to build an audio player you have to be familier with the classes and their methods that are going to use. Player: As the name says Player is responsible for playing the given file. It has start(), stop(), close() methods. Player also have number of states too. Prefetched Prefetching Realized Realizing Started Unrealized
16

Play Media Files

May 10, 2017

Download

Documents

Rupali Vaiti
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Play Media Files

HOME POSTS ABOUT   WRITER

BUDDHIMA'S COMPUTER LABAll About My ExperimentsHow to play audio and video files in Java applicationsMay 1, 2011 by Buddhima Wijeweera | 88 Comments

Introduction

In this post I’m going to show you how to play an audio and a video file using a java application. At first I have to mention that I’m using Java Media Framework (JMF) for this purpose. So you have to download and install JMF from here. According to the web page you can,

Playback audios and videos Capture from devices Transmitt over an internet connection

JMF is providing you necessary classes and you have to do less. But in here I’ve to mention that JMF is a bit old too. In many cases you won’t be able to play every media file you want. Because there are some restrictions. Through following examples I’ll show you how to get the use of JMF.

Creating an audio player

Before going to build an audio player you have to be familier with the classes and their methods that are going to use.Player: As the name says Player is responsible for playing the given file. It has start(), stop(), close() methods. Player also have number of states too.

Prefetched Prefetching Realized Realizing Started Unrealized

Page 2: Play Media Files

Manager: Manager is responsible for creating appropriate player object using an URL or a Media Locator.  Manager is also use to create a processor – will be explained later.SimpleAudioPlayer.java

1

2

3

4

5

6

7

8

9

1

import java.io.File;

import java.net.MalformedURLException;

import java.net.URL;

import javax.media.*;   // import JMF classes

import javax.swing.JFileChooser;

 

/**

*

* @author BUDDHIMA

*/

Page 3: Play Media Files

0

11

12

13

14

15

16

17

18

19

20

21

22

23

 

public class SimpleAudioPlayer {

 

private Player audioPlayer = null;

 

public SimpleAudioPlayer(URL url) {

 

try {

 

//MediaLocator ml=new MediaLocator(url);

 

audioPlayer = Manager.createPlayer(url);

 

} catch (Exception ex) {

 

System.out.println(ex);

 

}

 

Page 4: Play Media Files

24

25

26

27

28

29

30

31

32

33

34

35

36

3

}

 

public SimpleAudioPlayer(File file) throws MalformedURLException {

 

this(file.toURI().toURL());

 

}

 

public void play() {

 

audioPlayer.start(); // start playing

 

}

 

public void stop() {

 

audioPlayer.stop();  //stop playing

 

audioPlayer.close();

Page 5: Play Media Files

7

38

39

40

41

42

43

44

45

46

47

48

49

50

 

}

 

public static void main(String[] args) {

 

try {

 

// TODO code application logic here

 

JFileChooser fc = new JFileChooser();

 

fc.showOpenDialog(null);

 

File file = fc.getSelectedFile();

 

SimpleAduioPlayer sap = new SimpleAduioPlayer(file);

 

sap.play();

 

Page 6: Play Media Files

51

52

53

54

55

56

57

58

59

60

61

62

63

6

//sap.stop();

 

} catch (MalformedURLException ex) {

 

System.out.println(ex);

 

}

 

}

 

}

Page 7: Play Media Files

4

65

66

67

68

69

70

71

72

73

74

75

76

7

Page 8: Play Media Files

7

78

With this example you can play MP3, WAV, and AU files.

Creating a video player

Not like audio player, Video player deals with GUI. Therefore you should have a little knowledge about Swing components. In addition to previous things you have to get Visual component and Control Panel component from the Player instance created by you. Then you have to place those in a necessary Swing component (here JPanel is used).MediaPlayer.java

1

2

3

4

5

6

7

8

9

10

11

import java.awt.BorderLayout;

import java.awt.Component;

import java.net.MalformedURLException;

import java.net.URL;

import javax.media.Manager;

import javax.media.MediaLocator;

import javax.media.Player;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

 

/**

*

Page 9: Play Media Files

12

13

14

15

16

17

18

19

20

21

22

23

24

2

* @author BUDDHIMA

*/

 

public class MediaPlayer extends javax.swing.JPanel {

 

public MediaPlayer(URL mediauUrl) {

 

initComponents();

 

setLayout(new BorderLayout());

 

try {

 

Player mediaPlayer=Manager.createRealizedPlayer(new MediaLocator(mediauUrl));

 

Component video=mediaPlayer.getVisualComponent();

 

Component control=mediaPlayer.getControlPanelComponent();

 

Page 10: Play Media Files

5

26

27

28

29

30

31

32

33

34

35

36

37

38

if (video!=null) {

 

add(video, BorderLayout.CENTER);          // place the video component in the panel

 

}

 

add(control, BorderLayout.SOUTH);            // place the control in  panel

 

mediaPlayer.start();

 

} catch (Exception e) {

 

}

 

}

 

public static void main(String[] args) {

 

JFileChooser fileChooser = new JFileChooser();

Page 11: Play Media Files

39

40

41

42

43

44

45

46

47

48

49

50

51

5

 

fileChooser.showOpenDialog(null);

 

URL mediaUrl=null;

 

try {

 

mediaUrl = fileChooser.getSelectedFile().toURI().toURL();

 

} catch (MalformedURLException ex) {

 

System.out.println(ex);

 

}

 

JFrame mediaTest = new JFrame( "Movie Player" );

 

mediaTest.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

 

Page 12: Play Media Files

2

53

54

55

56

57

58

59

60

61

62

63

64

6

MediaPlayer mediaPanel = new MediaPlayer( mediaUrl );

 

mediaTest.add( mediaPanel );

 

mediaTest.setSize( 800, 700 ); // set the size of the player

 

mediaTest.setLocationRelativeTo(null);

 

mediaTest.setVisible( true );

 

}

 

}

Page 13: Play Media Files

5

66

67

68

69

70

71

72

73

74

75

76

77

7

Page 14: Play Media Files

8

79

80

81

82

When you run this code and select a file, you would get something like this. But you can only play limited number of video fromats only (.mpg, some .avi files). Give a try ! 

Page 15: Play Media Files

Willing to tell more intractive activities using JMF  ………

Resources:

1. JMF official site : http://www.oracle.com/technetwork/java/javase/tech/index-jsp-140239.html

2. JMF examples : http://blogs.sun.com/geertjan/date/20070121About these ads