我需要以特定分辨率录制视频(尽可能少)。
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,Torch 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=2
和PlayerListener.playerUpdate(Player player, String event, Object eventData)
eventData=2
的说明我找到了here:
参数无效:使用无效值指定参数。
有人可以解释为什么我的params不正确吗?
答案 0 :(得分:2)
用户可以修改录音设置 - 在高端手机上有三种不同的质量等级,但录音机默认为最高质量。我试图将其设置为中等质量级别 - 640x480,但未能找到一种方法。
既然你要求最低质量,你可能会有一些运气。您可以指定“彩信”质量,视频录制质量非常低,这就是您想要的。
我引用了“RIM blackberry Record 3GP video”,表示将&mode=mms
添加到播放器字符串会为您提供彩信质量。不幸的是,它似乎也将持续时间限制在30秒。
答案 1 :(得分:1)
以下链接可以帮助您: