2014-11-12 1 views
0

У меня есть Brightcove android-sdk-4.2.7 и пытается воспроизвести видео с помощью videoID.Android Brightcove onVideo не вызывается иногда и, следовательно, видео не воспроизводится

Вот фрагмент кода:

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. идентификатор видео становится установлен правильно
  4. Пробовал эмиттера событий и READY_TO_PLAY событие происходит, но DID_PLAY не
  5. Android vers ион I испытал на 4.4.x

Какие могут быть возможные проблемы? Любая помощь/указатель вокруг этого будет действительно оценена.

Спасибо!

ответ

1

Повторные вызовы findVideoByID() должны работать нормально. Для каждого из них, вы должны увидеть запрос в LogCat, что-то вроде:

D/HTTPService (27297): выдавшего запроса GET: http://api.brightcove.com/services/library?command=find_video_by_id&video_id=3603631382001 ...

и ответ, что-то вроде:

D/HttpService (27297): response: {"id": 36036 ...

Если это не так, сообщите об ошибке с поддержкой Brightcove. Если это работает, здесь недостаточно информации для дальнейшего отладки. Вы могли бы попытаться сравнить то, что вы делаете с публичных приложений образцов, доступных на Github:

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

Эти приложения не имеют различные виды деятельности, как ваш сценарий, но они делают обрабатывать приложение вдаваясь в фоновом режиме и затем возвращается на передний план. Расширение BrightcovePlayer или BrightcovePlayerFragment позволяет управлять жизненным циклом. Если вы не распространяете один из этих классов, вам нужно написать свою собственную обработку жизненного цикла, как если бы вы использовали Android VideoView. Например, вызов pause() в onPause() и вызов stopPlayback() в onStop().

+0

Я расширяю действие BrightcovePlayer, и в первый раз мое видео воспроизводится отлично, и последовательность протоколов отслеживается так же корректно, как вы сказали: onVideo-метод вызывается, затем «выдает запрос GET ..», а затем «response: {» id «: ..», но со второго раза он не вызывается, а метод «Видео» также не выдается. Странно то, что если я буду продолжать ждать такой же активности, то после долгого времени (около 4-5 минут) иногда эти методы вызываются, и видео начинает играть. Я использую wi-fi с хорошей пропускной способностью, поэтому сеть также не проблема. – chetanmoswal

Смежные вопросы