2011-01-12 2 views
1

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

Использование 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()); 
     } 

On stop menuItem selection:

 try { 
      _recordControl.commit(); 

     } catch (Exception e) { 

      _player.close(); 
      showAlert(e.getClass() + " " + e.getMessage()); 
     } 

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

ответ

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() вместо.