2013-06-01 48 views
4

我需要以特定分辨率录制视频(尽可能最少)。Blackberry:如何在录制前设置视频分辨率

private void startRecording(Player player, net.rim.device.api.ui.Manager parentManager) 
{ 
    try 
    { 
     if (player == null) 
     { 
      player = javax.microedition.media.Manager.createPlayer("capture://video?encoding=video/3gpp"); 
      player.addPlayerListener(this); 
      player.realize(); 

      RecordControl recordControl = (RecordControl) player.getControl("RecordControl"); 
      VideoControl videoControl = (VideoControl) player.getControl("VideoControl"); 

      if (videoControl != null) 
      { 
       final Field videoField = (Field)videoControl.initDisplayMode(VideoControl.USE_GUI_PRIMITIVE, "net.rim.device.api.ui.Field"); 

       try 
       { 
        videoControl.setDisplaySize(1, 1); 
       }catch(Exception e) 
       { 
        System.out.println(e); 
       } 
       videoControl.setVisible(true); 
       UiApplication.getUiApplication().invokeLater(new Runnable() { 
        public void run() 
        { 
         if(parentManager != null) 
         { 
          if(videoField.getIndex() == -1) 
          { 
           parentManager.insert(videoField, 1); 
          } 
         } 
        } 
       }); 
      } 
     } 

     // here i get null 
     CameraControl cameraControl = (CameraControl) player.getControl("CameraControl"); 
     int[] resolutions = cameraControl.getSupportedVideoResolutions(); 
     cameraControl.setVideoResolution(resolutions.length/2 - 1); 

     recordControl.setRecordLocation("test.3gp");\ 
     recordControl.startRecord();  

     player.start(); 

    }catch(Exception e) 
    { 
     System.out.println(e); 
    } 
} 

但由于某些原因(CameraControl) player.getControl("CameraControl");返回null

如何为录制视频的分辨率指定?

P.S.黑莓OS 5.0,9800火炬

更新:

在情况下,当我使用

capture://video?encoding=video/3gpp&mode=mms 

capture://video?encoding=video/3gpp&width=240&height=180&video_codec=MPEG-4&audio_codec=AMR 

我得到event=erroreventData=2PlayerListener.playerUpdate(Player player, String event, Object eventData)方法

描述为eventData=2我发现here

无效的参数:参数与一个无效的值指定。

有人可以解释我为什么我的参数不正确吗?

+1

关于空对象,[看看Smith先生的答案在这里(http://stackoverflow.com/a/9666104/119114)这也指向[这个BlackBerry文档](http://supportforums.blackberry.com/t5/Java-Development/Advanced-Multimedia-Supplement-API-What-s-Supported/ta-p/770659),其中说,他们没有实现'setVideoResolution()',因为你不幸发现了。 – Nate

回答

2

用户可以修改录音设置 - 在高端手机上有三种不同的质量等级,但录音机默认为最高质量。我试图将其设置为中等质量等级 - 640x480,但尚未能找到一种方法来实现这一点。

由于您要求最低的质量,您可能会有一些运气。您可以指定“彩信”质量,并且视频录制质量非常低,这正是您想要的。

我引用“RIM blackberry Record 3GP video”这说明将&mode=mms添加到播放器字符串将给你彩信质量。不幸的是,它似乎也将持续时间限制为30秒。

+0

你有*确切* 9000声誉:O – Doorknob

+0

@门把嘿,是的,我确实。没有更多的赞扬! –

+0

我试过'&mode = mms'但是这对我没有帮助。我更新了更多细节的问题 – CAMOBAP

相关问题