Android Brightcove onVideo有时不会被调用,因此视频无法播放

时间:2014-11-12 11:18:59

标签: android brightcove

我已经集成了 Brightcove android-sdk-4.2.7 并尝试使用videoID播放视频。

以下是代码段:

Catalog catalog = new Catalog(<**MEDIA_READ_TOKEN**>);
catalog.findVideoByID(videoId, new VideoListener() {
@Override
public void onError(String error) {
    Log.e(TAG, "onError : " + error);
}
@Override
public void onVideo(Video video) {
    Log.i(TAG, "onVideo called" );
    brightcoveVideoView.add(video);
    brightcoveVideoView.start();
}
});

当我第一次从其他活动中启动video_player_activity视频播放完全正常时,但当我回到第二个活动并再次尝试播放相同/其他视频时,它不会播放。 onVideo 不会被调用。有时它会在很长一段时间后被调用。

以下是一些更多细节:

  1. 当我回去时活动被正确销毁
  2. onError未被调用
  3. 视频ID设置正确
  4. 尝试发射器事件和 READY_TO_PLAY 事件但 DID_PLAY
  5. 我测试的Android版本是4.4.x
  6. 可能出现的问题是什么?任何帮助/指针都将非常感激。

    谢谢!

1 个答案:

答案 0 :(得分:1)

对findVideoByID()的重复调用应该可以正常工作。对于每一个,您应该在logcat中看到一个请求,例如:

D / HttpService(27297):发出GET请求:http://api.brightcove.com/services/library?command=find_video_by_id&video_id=3603631382001 ...

和回复,如:

D / HttpService(27297):回复:{&#34; id&#34;:36036 ......

如果不是这样,请向Brightcove支持部门提交错误。如果这样做,那么这里没有足够的信息来进一步调试。您可以尝试将您正在做的事情与Github上提供的公共示例应用程序进行比较:

https://github.com/BrightcoveOS/android-player-samples

这些应用程序不像您的方案那样有多个活动,但它们确实处理了应用程序进入后台然后被带回到前台。扩展BrightcovePlayer或BrightcovePlayerFragment可启用生命周期处理。如果您不扩展其中一个类,则必须编写自己的生命周期处理,就像使用Android VideoView一样。例如,在onPause()中调用pause()并在onStop()中调用stopPlayback()。