what the problem about this short code?

D

dolphin

import javax.media.Manager;

import javax.media.bean.playerbean.MediaPlayer;
import java.lang.String;


public class Player1 {
MediaPlayer mp1 = new MediaPlayer();
public Player1(){
mp1.setMediaLocation(new String("file:\\d:\\music\\11.wma"));
}
public static void main(String[] args){
Player1 player1=new Player1();
player1.mp1.start();
}
}

it says that Cannot find a Player for :file:\d:\music\11.wma.what the
problem?
 
A

Andrew Thompson

dolphin wrote:
...
mp1.setMediaLocation(new String("file:\\d:\\music\\11.wma")); ...
it says that Cannot find a Player for :file:\d:\music\11.wma.what the
problem?

MediaPlayer is based on JMF*, which only supports
the formats listed here.
<http://java.sun.com/products/java-media/jmf/2.1.1/formats.html>
WMA is not listed, WMA is not supported.

* JMF has been effectively abondoned by Sun, there may
be other projects that 'plug-in' to JMF and provide support
for newer/more formats - you'd need to search.
 
J

Jussi Piitulainen

dolphin said:
import javax.media.Manager;

import javax.media.bean.playerbean.MediaPlayer;
import java.lang.String;


public class Player1 {
MediaPlayer mp1 = new MediaPlayer();
public Player1(){
mp1.setMediaLocation(new String("file:\\d:\\music\\11.wma"));
}
public static void main(String[] args){
Player1 player1=new Player1();
player1.mp1.start();
}
}

it says that Cannot find a Player for :file:\d:\music\11.wma.what
the problem?

I don't know about media players, but I have a couple of suggestions.

First, importing any java.lang.* class is redundant in a bad way: it
doesn't affect the meaning of the program, but it leaves a reader of
the code looking for an explanation.

Second, never write

new String("foo")

for any literal "foo". Instead, write just

"foo"

and it will be a perfectly adequate String. Or if you are trying to
appear paranoid, consider something like this:

(String)new String(new String((String)((String)"foo").toString()))

Well, just don't.

Third, and this may actually help you, you can write an even simpler
test program and so eliminate some possibilities of error:

import javax.media.Manager;
import javax.media.bean.playerbean.MediaPlayer;

public class Player1 {
public static void main(String[] args) {
MediaPlayer mp1 = new MediaPlayer();
mp1.setMediaLocation("file:\\d:\\music\\11.wma");
mp1.start();
}
}

Oh, and please, include the actual error message. Cut and paste, or
otherwise copy it _exactly_. Any paraphrase is likely to distort it
when you don't already know what the message means.
 
L

Lew

Jussi said:
dolphin said:
import javax.media.Manager;

import javax.media.bean.playerbean.MediaPlayer;
import java.lang.String;


public class Player1 {
MediaPlayer mp1 = new MediaPlayer();
public Player1(){
mp1.setMediaLocation(new String("file:\\d:\\music\\11.wma"));
}
public static void main(String[] args){
Player1 player1=new Player1();
player1.mp1.start();
}
}

it says that Cannot find a Player for :file:\d:\music\11.wma.what
the problem?

I don't know about media players, but I have a couple of suggestions.

First, importing any java.lang.* class is redundant in a bad way: it
doesn't affect the meaning of the program, but it leaves a reader of
the code looking for an explanation.

Second, never write

new String("foo")

for any literal "foo". Instead, write just

"foo"

and it will be a perfectly adequate String. Or if you are trying to
appear paranoid, consider something like this:

(String)new String(new String((String)((String)"foo").toString()))

Furthermore, URLs take forward slashes, not backslashes.
 
D

Daniel Gee

They take both forward and back if you're on windows, Which you almost
definitely are if your path has a drive letter in it.
 
L

Lew

Daniel said:
They take both forward and back if you're on windows, Which you almost
definitely are if your path has a drive letter in it.

So you are abandoning the "Universal" part of "Univeral Resource Locator" to
be Windows-specific.

By putting the "file:" protocol lead in the string, one is signaling that one
is using a URL, which requires forward slashes, according to RFC 1738.
Some URL schemes (such as the ftp, http, and file schemes) contain names that can be considered hierarchical; the components of the hierarchy are separated by "/".

Windows's sloppiness doesn't excuse programmer sloppiness.
 
Joined
Jun 27, 2008
Messages
2
Reaction score
0
change this
mp1.setMediaLocation(new String("file:\\d:\\music\\11.wma"));
to this
mp1.setMediaLocation(new String("file:///D:/music/11.wma"));

Have FUN!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,578
Members
45,052
Latest member
LucyCarper

Latest Threads

Top