4

我需要以特定分辨率录制视频(尽可能少)。

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

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

PS 黑莓操作系统 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=error了方法eventData=2PlayerListener.playerUpdate(Player player, String event, Object eventData)

eventData=2我在这里找到的描述:

无效参数:指定的参数值无效。

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

4

2 回答 2

2

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

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

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

于 2013-06-01T20:08:35.310 回答
1

以下链接可能对您有所帮助:

黑莓中的视频录制

于 2013-06-10T04:18:12.083 回答