2015-09-09 3 views
1

Я пытаюсь воспроизвести пример видео с помощью Brightcove Player. documentation предполагает, что для реализации базовых обратных вызовов жизненного цикла для игрока следует расширить BrightcovePlayer вместо простой активности. Вот как я распространив его:Каков правильный способ расширения BrightcovePlayer в Android?

public class BrightCoveActivity extends BrightcovePlayer { 

private static final String BC_TOKEN = "<using a valid token here>"; 
private String mVideoId; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    setContentView(R.layout.activity_bright_cove); 
    final BrightcoveVideoView brightcoveVideoView = (BrightcoveVideoView) findViewById(R.id.brightcove_video_view); 
    super.onCreate(savedInstanceState); 

    final Catalog catalog = new Catalog(BC_TOKEN); 

    mVideoId = "<using a valid video ID here"; 

    MediaController controller = new MediaController(this); 
    brightcoveVideoView.setMediaController(controller); 

    catalog.findVideoByID(mVideoId, new VideoListener() { 

     @Override 
     public void onError(String error) { 
      throw new RuntimeException(error); 

     } 

     @Override 
     public void onVideo(Video video) { 
      brightcoveVideoView.add(video); 
      brightcoveVideoView.start(); 
     } 
    }); 


} 

}

Однако я получаю эту IllegalStateException, когда я пытаюсь запустить приложение:

09-09 17:01:51.988: E/AndroidRuntime(21607): Caused by: java.lang.IllegalStateException: brightcoveVideoView needs to be wired up to the layout. 
09-09 17:01:51.988: E/AndroidRuntime(21607): at com.brightcove.player.view.BrightcovePlayer.onCreate(BrightcovePlayer.java:180) 

Этот трассировки стека в конечном счете указывает на метод super.OnCreate(). Не имеет значения, вызываю ли метод суперкласса до или после того, как я «подключу» BrightcoveVideoView.

Я использую:

  1. A пользовательский макет с BrightCoveVideoView в данный момент без каких-либо других мнений, кроме VideoView внутри Relative Layout.
  2. Eclipse для разработки (с ограничениями для этого, не может использовать Android Studio). Я включил старый файл .jar в качестве библиотеки (проект работает нормально, если я делаю это в простой деятельности, а не в работе BrightcovePlayer).
  3. Brightcove SDK 4.5 для Android.

ответ

1

Вам необходимо установить медиа-контроллер перед методом super.onCreate().

final BrightcoveVideoView brightcoveVideoView = (BrightcoveVideoView)findViewById(R.id.brightcove_video_view); 
MediaController controller = new MediaController(this); 
brightcoveVideoView.setMediaController(controller); 
super.onCreate(savedInstanceState); 
Смежные вопросы