Как правильно возобновить воспроизведение видео после поиска микрофона на Amazon Fire TV?
Я создаю приложение видеоплеера для Amazon Fire TV с использованием кода Google Leanback (я знаю, что оно не было предназначено для Fire TV, но я сделал все необходимое, чтобы он работал - кроме этого). Я сделал так, чтобы видео возобновлялось с того места, где вы остановились, если вы выходите из приложения, нажав кнопку "Домой", или если вы приостановили его, посмотрите другое видео и вернитесь назад.
Тем не менее, Amazon отклоняет мое приложение, потому что, если вы выполняете поиск по микрофону во время воспроизведения видео, а затем возвращаетесь назад, оно начинается снова, а не возобновляется.
Что мне не хватает? Вот мой код для startVideoPlayer() и onPause() из PlayerActivity:
private void startVideoPlayer() {
Bundle bundle = getIntent().getExtras();
mSelectedMovie = (Movie) getIntent().getSerializableExtra( VideoDetailsFragment.EXTRA_MOVIE );
if( mSelectedMovie == null || TextUtils.isEmpty( mSelectedMovie.getVideoUrl() ) || bundle == null )
return;
mShouldStartPlayback = bundle.getBoolean( VideoDetailsFragment.EXTRA_SHOULD_AUTO_START, true );
sprefs = PreferenceManager.getDefaultSharedPreferences(this);
startPosition = sprefs.getInt(mSelectedMovie.getVideoUrl(), 0);
mVideoView.setVideoPath( mSelectedMovie.getVideoUrl() );
if ( mShouldStartPlayback ) {
mPlaybackState = PlaybackState.PLAYING;
updatePlayButton( mPlaybackState );
if ( startPosition > 0 ) {
mVideoView.seekTo( startPosition );
}
mVideoView.start();
mPlayPause.requestFocus();
startControllersTimer();
} else {
updatePlaybackLocation();
mPlaybackState = PlaybackState.PAUSED;
updatePlayButton( mPlaybackState );
}
}
@Override
protected void onPause() {
super.onPause();
if ( mSeekbarTimer != null ) {
mSeekbarTimer.cancel();
mSeekbarTimer = null;
}
if ( mControllersTimer != null ) {
mControllersTimer.cancel();
}
mVideoView.pause();
mPlaybackState = PlaybackState.PAUSED;
updatePlayButton( mPlaybackState );
SharedPreferences.Editor editor = sprefs.edit();
editor.putInt(mSelectedMovie.getVideoUrl(), mVideoView.getCurrentPosition());
editor.apply();
}
1 ответ
В итоге мне пришлось вызывать startVideoPlayer в onResume, вот так:
@Override
public void onResume() {
super.onResume();
startVideoPlayer();
}