Variabili
@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 mPlayer = null;
private boolean mAutoRotation = false;
OnCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mAutoRotation = Settings.System.getInt(getContentResolver(),
Settings.System.ACCELEROMETER_ROTATION, 0) == 1;
}
Attuare OnInitializedListener
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player,
boolean wasRestored) {
mPlayer = player;
player.setOnFullscreenListener(this);
if (mAutoRotation) {
player.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 {
player.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_CONTROL_ORIENTATION
| YouTubePlayer.FULLSCREEN_FLAG_CONTROL_SYSTEM_UI
| YouTubePlayer.FULLSCREEN_FLAG_CUSTOM_LAYOUT);
}
}
Inplement onConfigurationChanged
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
if (mPlayer != null)
mPlayer.setFullscreen(true);
}
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
if (mPlayer != null)
mPlayer.setFullscreen(false);
}
}
@Override
public void onFullscreen(boolean fullsize) {
if (fullsize) {
setRequestedOrientation(LANDSCAPE_ORIENTATION);
} else {
setRequestedOrientation(PORTRAIT_ORIENTATION);
}
}
Menifest
<activity
android:name="com.sample.android.YouTubePlayerActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="sensor"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
</activity>
ho fatto attività campione che utilizza più recente API di YouTube.
Questa maniglia fonte "Orientamento problema", "media Volume Problem", "Youtube analisi degli URL Problema"
Ecco progetto Git per il campione app
https://github.com/TheFinestArtist/YouTubePlayerActivity
Ho anche creato l'app di esempio che è possibile scaricare
https://play.google.com/store/apps/details?id=com.thefinestartist.ytpa.sample
fonte
2013-05-09 05:09:57
Ho capito da solo - l'errore era che non stavo inizializzando YouTubePlayerView in onCreate() quando è stato chiamato onCreate() durante un ripristino piuttosto che una creazione esplicita. Tutto risolto .. – milleph