3GP ビデオを録画できるアプリケーションを作成しています。MMAPI と Invoke API の両方を試しました。しかし、次の問題があります。
MMAPI の使用:
- ストリームに記録すると、RIMM ストリーミング形式でビデオが記録されます。このビデオプレーヤーを再生しようとするとエラーが発生します
"Unsupported media format."
- ファイルに録音するとき。サイズ 0 のファイルが作成されます。
呼び出し API の使用:
- MMS モードでは、30 秒を超えるビデオを録画することはできません。
- 通常モードでは、ファイルのサイズが非常に大きくなります。
- カメラ アプリケーションを呼び出すと、アプリケーションを制御できなくなります。
ここに私のソースコードがあります:
_player = javax.microedition.media.Manager
.createPlayer("capture://video?encoding=video/3gpp&mode=mms");
// System.getProperty("video.encodings") メソッドから返されるすべてのエンコーディングを試しました
_player.realize();
_videoControl = (VideoControl) _player.getControl("VideoControl");
_recordControl = (RecordControl) _player.getControl("RecordControl");
_volumeControl = (VolumeControl) _player.getControl("VolumeControl");
String videoPath = System.getProperty("fileconn.dir.videos");
if (videoPath == null) {
videoPath = "file:///store/home/user/videos/";
}
_recordControl.setRecordLocation(videoPath + "RecordedVideo.3gp");
_player.addPlayerListener(this);
Field videoField = (Field) _videoControl.initDisplayMode(
VideoControl.USE_GUI_PRIMITIVE,
"net.rim.device.api.ui.Field");
_videoControl.setVisible(true);
add(videoField);
_player.start();
ON スタート メニュー項目の選択:
try {
_recordControl.startRecord();
} catch (Exception e) {
_player.close();
showAlert(e.getClass() + " " + e.getMessage());
}
停止メニュー項目選択時:
try {
_recordControl.commit();
} catch (Exception e) {
_player.close();
showAlert(e.getClass() + " " + e.getMessage());
}
私が何か間違ったことをしているなら、私にさせてください。