Getting a sample activity up and running using YouTubeBaseActivity, YouTubePlayerView and YouTubePlayer was simple enough. I\'m having trouble with orientation though and ca
Leaving this here for others. The Finest Artist's answer worked for me as well, but since I'm using a video player inside a fragment and have to support the AppCompatLibrary as well, here's what I was able to get working:
YouTubePlayerActivityFragment.java
public class YouTubePlayerActivityFragment extends YouTubePlayerSupportFragment implements
YouTubePlayer.OnFullscreenListener {
@SuppressLint("InlinedApi")
private static final int PORTRAIT_ORIENTATION = Build.VERSION.SDK_INT < 9
? ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
: ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT;
@SuppressLint("InlinedApi")
private static final int LANDSCAPE_ORIENTATION = Build.VERSION.SDK_INT < 9
? ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
: ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE;
private YouTubePlayer.OnFullscreenListener fullScreenListener = null;
private YouTubePlayer yPlayer = null;
private boolean mAutoRotation = false;
public static YouTubePlayerActivityFragment newInstance(String videoID, String apiKey) {
YouTubePlayerActivityFragment fragment = new YouTubePlayerActivityFragment();
Bundle bundle = new Bundle();
bundle.putString("video_id", videoID);
bundle.putString("api_key", apiKey);
fragment.setArguments(bundle);
fragment.init();
return fragment;
}
public YouTubePlayerActivityFragment() {
}
@Override
public void onCreate(Bundle var1) {
super.onCreate(var1);
mAutoRotation = Settings.System.getInt(getActivity().getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 0) == 1;
fullScreenListener = this;
}
private void init() {
initialize(getArguments().getString("api_key"), new YouTubePlayer.OnInitializedListener() {
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean wasRestored) {
yPlayer = youTubePlayer;
youTubePlayer.setOnFullscreenListener(fullScreenListener);
if (mAutoRotation) {
youTubePlayer.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_CONTROL_ORIENTATION
| YouTubePlayer.FULLSCREEN_FLAG_CONTROL_SYSTEM_UI
| YouTubePlayer.FULLSCREEN_FLAG_ALWAYS_FULLSCREEN_IN_LANDSCAPE
| YouTubePlayer.FULLSCREEN_FLAG_CUSTOM_LAYOUT);
} else {
youTubePlayer.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_CONTROL_ORIENTATION
| YouTubePlayer.FULLSCREEN_FLAG_CONTROL_SYSTEM_UI
| YouTubePlayer.FULLSCREEN_FLAG_CUSTOM_LAYOUT);
}
if (!wasRestored) {
yPlayer.loadVideo(getArguments().getString("video_id"));
}
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
}
});
}
@Override
public void onFullscreen(boolean isFullSize) {
if (isFullSize) {
getActivity().setRequestedOrientation(LANDSCAPE_ORIENTATION);
} else {
getActivity().setRequestedOrientation(PORTRAIT_ORIENTATION);
}
}