1

3GP ビデオを録画できるアプリケーションを作成しています。MMAPI と Invoke API の両方を試しました。しかし、次の問題があります。

MMAPI の使用:

  1. ストリームに記録すると、RIMM ストリーミング形式でビデオが記録されます。このビデオプレーヤーを再生しようとするとエラーが発生します"Unsupported media format."
  2. ファイルに録音するとき。サイズ 0 のファイルが作成されます。

呼び出し API の使用:

  1. MMS モードでは、30 秒を超えるビデオを録画することはできません。
  2. 通常モードでは、ファイルのサイズが非常に大きくなります。
  3. カメラ アプリケーションを呼び出すと、アプリケーションを制御できなくなります。

ここに私のソースコードがあります:

       _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());
        }

私が何か間違ったことをしているなら、私にさせてください。

4

1 に答える 1

1
  1. 同じ問題があります。これが RIM 独自の形式であることはわかっています: http://docs.blackberry.com/en/developers/deliverables/11942/RIM_proprietary_video_format_1001586_11.jsp

  2. 次のコードにより、ファイル サイズが 0 になります。

_recordControl.setRecordLocation(videoPath + "RecordedVideo.3gp");

RIM デモをコピーしたときに同じ問題が発生しましたが、間違っています。代わりに使用setRecordStream()します。

于 2011-05-12T14:27:07.493 に答える