Android YouTube API пауза видео при повороте экрана или скрытии плеера

Я использую API YouTube для Android. Видео воспроизводится нормально, но когда я поворачиваю экран, проигрыватель останавливает видео, и оно возвращается с самого начала, как если бы оно не воспроизводилось. То же самое происходит при прокрутке экрана и скрытии плеера. Я много исследовал и также должен проверить некоторые вещи, которые я нашел, но ничего не помогло =(

Это способ, которым я объявил свой класс:

public class PlayerTest extends YouTubeBaseActivity implements
    YouTubePlayer.OnInitializedListener {

Это то, что я положил в onCreate():

 YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
    youTubeView.initialize(DEVELOPER_KEY, this);

и это методы, которые я реализую:

@Override
public void onInitializationFailure(Provider provider,
        YouTubeInitializationResult error) {
    Toast.makeText(this, "Error :( " + error.toString(), Toast.LENGTH_LONG)
            .show();
}

@Override
public void onInitializationSuccess(Provider provider,
        YouTubePlayer player, boolean wasRestored) {
    player.cueVideo(video);
}

вопрос:

Я хочу, чтобы видео продолжалось во время прокрутки или переворачивания экрана. Это возможно? Я правильно внедряю? Если нет, то что будет лучшим способом?

Заранее спасибо за помощь!

6 ответов

Решение

Когда вы переворачиваете экран, действие, которое воспроизводило видео, уничтожается, и создается новое действие со сбросом всего. Это особенность, а не ошибка.:)

Есть несколько способов справиться с этим; вам, вероятно, придется сохранить какое-то состояние, а затем проверить наличие сохраненных данных при создании любого нового действия, управлении данными и т. д. Извлечение: сохранение представления / макета данных в Android после поворота экрана / уничтожения действия.

Что меня за хитрость добавило:

android:configChanges="keyboardHidden|orientation|screenSize"

на ваш андроид манифест.

Ура..

<activity 
android:label="YoursActivityName" 
android:configChanges="keyboardHidden|orientation|screenSize"
android:name="com.example.naren.YoursActivityName" /> 

Добавьте его в ваш файл манифеста.

Существует один подход, который позволяет воспроизводить видео без пауз во время вращения устройства. Проверьте API YouTubeStandalonePlayer createVideoIntent () с параметром lightboxMode, установленным в значение true.

Если для него установлено значение true, оно воспроизводит видео в диалоговом окне над текущей активностью и не останавливается во время поворотов устройства.

Добавить player.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_CUSTOM_LAYOUT)


    override fun onInitializationSuccess(provider: YouTubePlayer.Provider, player: YouTubePlayer, wasRestored: Boolean) {
        player.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_CUSTOM_LAYOUT)
        if (!wasRestored) {
            player.loadVideo(videoId)
        }
    }

документ https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubePlayer

avoiding the rebuffering that occurs in the default fullscreen behavior

      <activity android:name=".theActivityNameyouWantToApply" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"></activity>

просто напишите этот код в своей части манифеста (не забудьте изменить имя), и он будет работать отлично !!! Спасибо

Другие вопросы по тегам