RIM Blackberry Record 3GP видео - PullRequest
       25

RIM Blackberry Record 3GP видео

1 голос
/ 12 января 2011

Я пишу приложение, которое может записывать видео 3GP.Я пробовал как MMAPI, так и Invoke API.Но есть следующие проблемы:

Использование MMAPI:

  1. Когда я записываю в поток, он записывает видео в потоковом формате RIMM.при попытке воспроизвести это видео проигрыватель выдает ошибку "Unsupported media format."
  2. при записи в файл.Он создаст файл размером 0.

Используя Invoke 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();

ВКЛ. Пункт меню Пуск Выбор:

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

Пожалуйста, дайте мне знать, если я делаю что-то не так.

1 Ответ

1 голос
/ 12 мая 2011
  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() вместо.

...