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 ブラックベリー 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

I get event=errorand eventData=2inPlayerListener.playerUpdate(Player player, String event, Object eventData)メソッド

eventData=2I found hereの説明:

無効なパラメーター: パラメーターに無効な値が指定されました。

誰かが私のパラメータが間違っている理由を説明できますか?

4

2 に答える 2

2

ユーザーは録音設定を変更できます。ハイエンドの電話には 3 つの異なる品質レベルがありますが、レコーダーはデフォルトで最高品質に設定されています。中品質レベル (640x480) に設定しようとしましたが、それを行う方法が見つかりませんでした。

最低の品質を求めているので、運がいいかもしれません。「MMS」品質を指定できます。ビデオ録画は非常に低品質になりますが、これはあなたが望むものです。

「 RIM blackberry Record 3GP video 」を参考にしました。これには、プレーヤー ストリングに追加&mode=mmsすると MMS 品質が得られると書かれています。残念ながら、持続時間が 30 秒に制限されているようにも見えます。

于 2013-06-01T20:08:35.310 に答える