旋转屏幕或隐藏播放器时Android YouTube API视频暂停

时间:2013-12-04 18:36:18

标签: android youtube youtube-api android-youtube-api

我正在使用YouTube API for 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 个答案:

答案 0 :(得分:13)

我的诀窍是添加:

android:configChanges="keyboardHidden|orientation|screenSize"

到您的Android清单。

干杯..

答案 1 :(得分:5)

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

将其添加到您的清单文件中。

答案 2 :(得分:2)

当您翻转屏幕时,播放视频的活动会被破坏,并且会创建一个新活动并重置所有内容。它的一个功能,而不是一个bug。 :)

有一些方法可以解决这个问题;您可能需要保存某些状态,然后在创建任何新活动时检查任何已保存的数据,管理数据等。请查看:Keeping data view/layout in Android after screen rotate/activity destroyed

答案 3 :(得分:1)

有一种方法可以在设备旋转期间播放视频而不会出现任何暂停。查看YouTubeStandalonePlayer createVideoIntent()API,并将'lightboxMode'参数设置为true。

如果设置为true,则会在当前活动上方的对话框视图中播放视频,并且在设备轮换期间不会暂停。

答案 4 :(得分:0)

添加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#FULLSCREEN_FLAG_CUSTOM_LAYOUT

avoiding the rebuffering that occurs in the default fullscreen behavior

答案 5 :(得分:0)

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

只需在您的 Manifest 部分编写此代码(记住更改名称),它就会完美运行!!! 谢谢