2012-03-17 29 views
1

我有j2me应用程序在其中播放视频。在客户端设备上,它会旋转到相反的方向。指定j2me上的视频旋转方向

我想知道的是,是否有任何方法可用于LWUIT中的视频旋转(指定旋转方向),因此根据我们的应用程序,我们可以将视频旋转到所需的方向?

+0

没有得到你的问题正确@Megha – Lucifer 2012-03-17 10:14:11

+0

想旋转视频怎么做? – Megha 2012-03-17 10:29:29

+1

一个可以理解的问题提供了更好的答案! – 2012-03-20 06:24:12

回答

1

据我所知你不能这样做,但你可以看看高级MMAPI规范(JSR 234),它可能有一些东西。

+1

_高级MMAPI规范_你的意思是[JSR 234 AMMS](http://www.jcp.org/en/jsr/detail?id=234)? – gnat 2012-03-19 14:44:08

+0

是的,这就是我的意思。 – 2012-03-21 16:07:33

+0

这可以通过使用旋转后的内容来实现,并给出显示大小减1的大小。因此,视频以正确的方向播放。 – Megha 2012-04-06 09:25:38

1

我的理解 http://i48.tinypic.com/vn08ye.png

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

在这里,您可以旋转在索尼爱立信JP-7或更高版本的视频,只要是代码片段我用:

//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) { } 
    } 
+0

嗨,我使用LWUIT框架来实现UI。所以Sprite并没有用到那里。所以这段代码在我的应用程序中并没有用 – Megha 2012-05-15 16:05:43