0

Google Leanback コードを使用して Amazon Fire TV 用のビデオ プレーヤー アプリを作成しています (Fire TV 向けではないことはわかっていますが、動作させるために必要なことはすべて実行しましたが、これを除きます)。ホームボタンを押してアプリを終了したり、一時停止して別の動画を見て戻ったりすると、中断したところから動画が再開されるようにしています。

ただし、ビデオの再生中にマイク検索を行ってから戻ると、ビデオが再開されずに最初からやり直されるため、Amazon は私のアプリを拒否しています。

私は何が欠けていますか?PlayerActivity の startVideoPlayer() と onPause() のコードは次のとおりです。

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

1 に答える 1

0

次のように、onResume で startVideoPlayer を呼び出さなければならなくなりました。

@Override
public void onResume() {
    super.onResume();
    startVideoPlayer();
}
于 2015-03-07T21:17:34.620 に答える