我跟随诺基亚的wiki,用J2Me创建视频播放器。通常代码就像这些
player = Manager.createPlayer("rtsp://v1.cache5.c.youtube.com/CjYLENy73wIaLQm8E_KpEOI9cxMYDSANFEIJbXYtZ29vZ2xlSARSBXdhdGNoYLm0hv_ig5HRTww=/0/0/0/video.3gp");
//A player listener is needed so that we know, when the video has reached the END_OF_MEDIA position
player.addPlayerListener(this);
player.realize();
player.prefetch();
//The duration of the video
duration = player.getDuration();
//The video control instance is created and attached to this Canvas in Full SCreen mode
vc = (VideoControl)player.getControl("VideoControl");
voc = (VolumeControl)player.getControl("VolumeControl");
voc.setLevel(100);
voc.setMute(false);
vc.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this);
vc.setDisplaySize(240, 196);
//vc.setDisplayFullScreen(true);
vc.setVisible(true);
// vc.setDisplayFullScreen(true);
//next time the above operations will be skipped
firstPlay = false;
//A new thread handles the move of the cursor while the video progresses.
//The thread is distroyed when the video is stopped.
thread = new Thread(this);
thread.start();
目前我为诺基亚Asha 311开发。如果我只是通过浏览器打开rtsp地址,原生视频播放器将弹出并使用音频流式传输视频,并且使用此代码,视频流顺畅但根本没有声音。< / p>
我做错了什么吗?谢谢你的帮助
此致
答案 0 :(得分:0)
要播放播放YouTube视频,您可以使用以下代码:
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import javax.microedition.media.*;
import javax.microedition.media.control.VideoControl;
public class RTSPFullScreen extends MIDlet implements CommandListener, PlayerListener {
private Display d;
private Player p;
private Canvas c;
private Command exitCommand = new Command("Exit", Command.EXIT, 1);
VideoControl vc;
public RTSPFullScreen() {
d = Display.getDisplay(this);
}
public void startApp() {
c = new Canvas() {
protected void paint(Graphics g) {
g.setColor(0, 0, 0);
g.fillRect(0, 0, getWidth(), getHeight());
}
};
c.setFullScreenMode(true);
c.addCommand(exitCommand);
c.setCommandListener(this);
d.setCurrent(c);
try {
p = Manager.createPlayer("rtsp://v1.cache5.c.youtube.com/CjYLENy73wIaLQm8E_KpEOI9cxMYDSANFEIJbXYtZ29vZ2xlSARSBXdhdGNoYLm0hv_ig5HRTww=/0/0/0/video.3gp");
p.addPlayerListener(this);
p.start();
vc = (VideoControl) p.getControl("javax.microedition.media.control.VideoControl");
vc.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, c);
} catch (Exception e) {
showAlert("startApp: " + e.toString());
}
}
public void commandAction(Command c, Displayable s) {
if (c == exitCommand) {
destroyApp(false);
notifyDestroyed();
}
}
public void pauseApp() {
}
public void destroyApp(boolean uc) {
if (p != null) {
p.close();
}
}
public void playerUpdate(Player player, java.lang.String event, java.lang.Object eventData) {
if (player.getState() == Player.STARTED) {
try {
vc.setDisplayFullScreen(true);
vc.setVisible(true);
} catch (Exception e) {
showAlert("playerUpdate: " + e.toString());
}
}
}
public void showAlert(String aAlertText) {
Alert alert = new Alert("Alert", aAlertText, null, AlertType.ERROR);
alert.setTimeout(10000);
d.setCurrent(alert);
}
}