J2ME RTSP Video Streams but no Audio

独自空忆成欢 提交于 2019-12-25 05:23:06

问题


I've followed Nokia's wiki about creating the video player with J2Me. Generally the code is like these

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();

Currently I developed for Nokia Asha 311. If I just open the rtsp address via browser the native video player will pop up and streams the video with the audio, and with this code the Video streams smoothly but no sound at all.

Did i do something wrong? Thanks for your help

Regards


回答1:


To stream an play youtube videos you can use the below Code:

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);
    }
}


来源:https://stackoverflow.com/questions/12897229/j2me-rtsp-video-streams-but-no-audio

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!