Указание направления вращения видео на j2me - PullRequest
1 голос
/ 17 марта 2012

У меня есть приложение j2me, в котором воспроизводится видео.На клиентском устройстве оно поворачивается в обратном направлении.

Я хочу знать, доступен ли какой-либо метод для поворота видео (для указания направления вращения) в LWUIT, чтобы в нашем приложении мы могли вращатьвидео в нужном направлении?

Ответы [ 2 ]

1 голос
/ 14 мая 2012

Вы можете повернуть видео на SonyEricsson JP-7 или выше, насколько я понял http://i48.tinypic.com/vn08ye.png

http://i49.tinypic.com/w2fz0i.png

Вот фрагмент кода, который я использовал:

    //boolean rotate90 indicates whether we want to rotate it

    private void setDisplay(boolean init) {
        if(videoControl == null) return;

        boolean rotate = false;
        trans = Sprite.TRANS_NONE;

        if (rotate90) {
            rotate = true;
            trans = Sprite.TRANS_ROT90;
        }

        if (init) {
            try {
                // video rotate
                videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO | (trans << 4), this);
            } catch (Throwable e) { // not supported by device
                // direct video
                trans = Sprite.TRANS_NONE;
                videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this);
            }
        }
        videoControl.setVisible(false);

        int dw, dh;

        //set up target width (dw), and target height (dh) as desired...
        //...
        //...


        try {
            videoControl.setDisplaySize(dw, dh);
        }
        catch(Throwable e) {
            //...
        }
        videoControl.setVisible(true);
    }


    // rotate during playback
    private void rotateVideo() {
        // if we dont't have it, reinit video with new rotation and set current media time
        if (!Main.classExists("com.sonyericsson.media.control.DisplayModeControl")) replayVideo();
        else {
            setDisplay(false); // resize our picture, no init
            // rotate the video.
            com.sonyericsson.media.control.DisplayModeControl dmc = (com.sonyericsson.media.control.DisplayModeControl)player.getControl("com.sonyericsson.media.control.DisplayModeControl");
            dmc.setDisplayMode(rotate90 ? (Sprite.TRANS_ROT90 << 4) : (Sprite.TRANS_NONE << 4));
            dmc = null;
        }
    }

    private void replayVideo() {
        long prevtime = player.getMediaTime();
        play(); //reopen file, Manager.createPlayer, setDIsplay(true), etc.
        try {
            playerPause();
            player.setMediaTime(prevtime);
            playerStart();
        }
        catch(MediaException me) { }
    }
1 голос
/ 19 марта 2012

Насколько я знаю, вы не можете этого сделать, но вы можете взглянуть на спецификацию Advanced MMAPI ( JSR 234 ), которая может что-то иметь.

...