Android YouTube api v3 - 方向

标签 android api youtube orientation

使用 YouTubeBaseActivity、YouTubePlayerView 和 YouTubePlayer 启动并运行示例 Activity 非常简单。我在定位方面遇到了问题,但找不到任何文档或示例代码。当我在播放视频时切换时,屏幕是空白的。

在 onCreate()、onPause()、onSaveInstanceState() 和 onRestoreInstanceState() 中,要让视频继续播放,正确的做法是什么?

谢谢

最佳答案

变量

@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;

创建时

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mAutoRotation = Settings.System.getInt(getContentResolver(),
            Settings.System.ACCELEROMETER_ROTATION, 0) == 1;
}

实现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);
    }
}

实现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);
    }
}

list

 <activity
    android:name="com.sample.android.YouTubePlayerActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:screenOrientation="sensor"
    android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
</activity>

我制作了使用最新的 youtube api 的示例 Activity 。

此来源处理“方向问题”、“媒体量问题”、“Youtube 网址解析问题

  1. 这是示例应用程序的 git 项目

    https://github.com/TheFinestArtist/YouTubePlayerActivity

  2. 我还制作了您可以下载的示例应用

    https://play.google.com/store/apps/details?id=com.thefinestartist.ytpa.sample

关于Android YouTube api v3 - 方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15012754/

相关文章:

ruby - Rails Grape-Swagger : get current domain for base_path

javascript - Win7 IE9 YouTube Player JS对象没有任何方法

java - 使用 OAuth 2.0 [Blogger API] 使用您的 Google 帐户登录

facebook - 每个故事显示不同的 Open Graph 对象

android - 按下时如何使图像部分变灰?

api - 如何使用 Dart http 库、flutter 实现 Post API 调用

objective-c - 如何仅流式传输来自 YouTube 的视频的声音?

tags - 视频标签不再通过 YouTube API 可用?

android - 网格布局 : get child's row/column number

android - 由于兼容性问题,Note 9 用户无法下载我们的应用程序