我正在使用Android版的YouTube API。视频播放正常,但当我打开屏幕时,播放器停止了视频,它从一开始就回来了,就好像没有播放一样。当滚动屏幕并隐藏播放器时也会发生同样的情况。我研究了很多,也测试了一些我发现的东西,但都没用
这是我声明我的类的方式:
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);
}
问题:
我希望视频在滚动或翻转屏幕的同时继续播放。这可能吗?我正在以正确的方式执行?如果没有,最好的方法是什么?
提前感谢您的帮助!
我的诀窍是添加:
android:configChanges="keyboardHidden|orientation|screenSize"
到你的android清单。
干杯。。
<activity
android:label="YoursActivityName"
android:configChanges="keyboardHidden|orientation|screenSize"
android:name="com.example.naren.YoursActivityName" />
将其添加到您的清单文件中。
当您翻转屏幕时,播放视频的活动会被破坏,并且会创建一个新的活动,所有内容都会重置。这是一个功能,而不是bug。:)
有几种方法可以解决这个问题;你可能需要保存一些状态,然后在创建任何新活动时检查任何保存的数据,管理数据等。检查:在屏幕旋转/活动销毁后,在Android中保持数据视图/布局。
有一种方法可以使视频在设备旋转过程中不停顿地播放。查看YouTubeStandalonePlayer createVideoIntent()API,"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#FULLSCREEN_FLAG_CUSTOM_LAYOUT
avoiding the rebuffering that occurs in the default fullscreen behavior
<activity android:name=".theActivityNameyouWantToApply" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"></activity>
只需在Manifest部分写下这段代码(记住更改名称),它就会完美工作!!!感谢