特定の解像度でビデオを録画する必要があります (可能な限り)。
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=error
and eventData=2
inPlayerListener.playerUpdate(Player player, String event, Object eventData)
メソッド
eventData=2
I found hereの説明:
無効なパラメーター: パラメーターに無効な値が指定されました。
誰かが私のパラメータが間違っている理由を説明できますか?