在Android中扩展BrightcovePlayer的正确方法是什么?

在Android中扩展BrightcovePlayer的正确方法是什么?,android,eclipse,brightcove,Android,Eclipse,Brightcove,我正在尝试使用Brightcove播放器播放一段示例视频。建议为播放器实现基本的生命周期回调,应该扩展BrightcovePlayer,而不是简单的活动。下面是我如何扩展它的: public class BrightCoveActivity extends BrightcovePlayer { private static final String BC_TOKEN = "<using a valid token here>"; private String mVideoId;

我正在尝试使用Brightcove播放器播放一段示例视频。建议为播放器实现基本的生命周期回调,应该扩展BrightcovePlayer,而不是简单的活动。下面是我如何扩展它的:

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


}
这个堆栈跟踪最终指向
super.OnCreate()
方法。在“连接”BrightcoveVideoView之前还是之后调用super类方法都没有区别

我正在使用:

  • 自定义布局,此时具有BrightCoveVideoView,除了相对布局内的videoView之外,没有其他视图
  • Eclipse用于开发(受限于此,无法使用Android Studio)。我已经将legacy.jar文件作为一个库包含在内(如果我在一个简单的活动中而不是在BrightcovePlayer活动中这样做,那么项目运行良好)
  • 适用于Android的Brightcove SDK 4.5

  • 您需要在super.onCreate()方法之前设置媒体控制器

    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)
    
    final BrightcoveVideoView brightcoveVideoView = (BrightcoveVideoView)findViewById(R.id.brightcove_video_view);
    MediaController controller = new MediaController(this);
    brightcoveVideoView.setMediaController(controller);
    super.onCreate(savedInstanceState);