- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试在 Youtube 应用程序中复制视频最小化,如图所示 here .为了实现这一点,我尝试使用 Draggable Panel图书馆。当我运行示例时,我注意到视频在播放过程中最小化时不会缩放,而是会裁剪。当视频停止(未暂停)并显示缩略图时, View 会按预期缩放。我读到另一个问题,YouTubePlayerView 是用 SurfaceView 实现的。我还在文档中读到 SurfaceView 的行为不同于普通 View ,因为它如何在屏幕上打洞。我相信因为 YoutubePlayerView 是基于 SurfaceView 的,所以它不能正确缩放。如何在播放期间正确缩放 YoutubePlayerView 中播放的视频以匹配其父布局的大小?
最佳答案
根据我使用 YouTubePlayerView 和 YouTubePlayerFragment 的经验,我发现使用 Nineoldandroids 或 ViewPropertyAnimator 进行缩放无法正常工作。为了调整播放视频的大小,您必须以编程方式设置布局参数的高度和宽度。在 DraggablePanel 库中有两个类可以改变顶 View 的大小。默认值是 ScaleTransformer,它在播放期间不适用于视频,因为它会将正在播放的视频的一部分从 View 中裁剪掉,另一个是 ResizeTransformer。 ResizeTransformer 不如 ScaleTransformer 平滑,但它在一定程度上起作用。 ResizeTransformer 的问题是 YouTubePlayerView 的布局在被拖动时有时会夹在底部 View 下。然后播放停止,因为它检测到一个 View 与其重叠。我做出了妥协,去掉了 DraggablePanel 并为 YouTubePlayerView 的容器编写了最大化和最小化方法。
public void minimize() {
RelativeLayout.LayoutParams playerParams =
(RelativeLayout.LayoutParams) playerView.getLayoutParams();
playerParams.width = getResources().getDimensionPixelSize(R.dimen.player_minimized_width);
playerParams.height = getResources().getDimensionPixelSize(R.dimen.player_minimized_height);
FrameLayout container = (FrameLayout)playerView.getParent().getParent();
RelativeLayout.LayoutParams containerParams = (RelativeLayout.LayoutParams)container.getLayoutParams();
containerParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
containerParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
containerParams.bottomMargin = getResources().getDimensionPixelSize(R.dimen.player_minimized_margin);
containerParams.rightMargin = getResources().getDimensionPixelSize(R.dimen.player_minimized_margin);
playerView.requestLayout();
container.requestLayout();
isMinimized = true;
}
public void maximize() {
RelativeLayout.LayoutParams playerParams =
(RelativeLayout.LayoutParams) playerView.getLayoutParams();
playerParams.width = RelativeLayout.LayoutParams.MATCH_PARENT;
playerParams.height = getResources().getDimensionPixelSize(R.dimen.player_height);
FrameLayout container = (FrameLayout)playerView.getParent().getParent();
RelativeLayout.LayoutParams containerParams = (RelativeLayout.LayoutParams)container.getLayoutParams();
containerParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM,0);
containerParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,0);
containerParams.bottomMargin = 0;
containerParams.rightMargin = 0;
playerView.requestLayout();
container.requestLayout();
isMinimized = false;
}
关于android - 在播放视频时调整/缩小 YouTubePlayerFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26830310/
我正在使用 YoutubePlayerFragment 类来播放视频。我想添加一个 GestureListener,但他们没有设置手势检测器的方法。我试过:
我想在带有 backstack 的 Activity 中使用 YouTubePlayerFragment。因此,当我按下后退按钮时, fragment 会消失,并且在以后的某些操作中(例如单击按钮)会
我正在尝试使用YouTube API在viewpager中播放YouTube视频。我的片段由一个FrameLayout组成,在其中播放视频。该视频正在加载,但是在我播放后立即停止。 错误日志显示为:
编辑 cjohn捕获了缺失的一 block 。我忘记在 YTPlayerFragment 上调用 init()。 Android 开发新手。我试图将 YouTube 视频放入 YouTubePlaye
我有一个 RecyclerView,里面有 CardView。我希望每个 CardView 都有自己的 YouTubePlayerFragment。即使它们不能同时全部激活,我什至无法在任何 Card
我试图在方向改变时继续播放 YouTubePlayerFragment。 代码如下所示: @Override public View onCreateView(LayoutInflater infla
我正在尝试在 Youtube 应用程序中复制视频最小化,如图所示 here .为了实现这一点,我尝试使用 Draggable Panel图书馆。当我运行示例时,我注意到视频在播放过程中最小化时不会缩放
我希望将 YouTubePlayerFragment 覆盖在我的自定义视频 ListView 上,但收到错误 [应用程序不幸停止]。这是我的布局文件: Activit
Activity 的相关部分: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(
我正在处理 YouTubePlayerFragment 集成。在 YouTubePlayerFragment 中初始化 YouTubePlayer 时,它从另一个应用程序获取音频,并且该特定应用程序停
我正在使用 Youtube API 在我的 Android 应用程序中播放 Youtube 视频。它在较新的手机上运行良好,但当我尝试在运行 Gingerbread 的设备上运行时,出现错误: Una
我想要一个包含 2 或 3 个 YouTube 视频的小 View ,嵌入在更宽的布局中(仅限平板电脑)。用户应该能够在视频之间切换(同时保持在同一个 Activity/屏幕上)。是否可以使用 You
当我播放某些视频时出现错误,显示“此视频包含来自 wmg 的内容。在某些网站上播放受到限制” 有人知道在我的播放器中播放这个视频吗? 提前致谢 最佳答案 它说: 此视频包含来自 WMG 的内容。它在某
我想在水平 ScrollView 中显示多个 YouTube 视频。为此,我正在动态添加 YouTubePlayerFragments。这是我的代码 fragment : //set videos
YouTubePlayerFragment 在 CollapsingToolbarLayout 中不工作(播放)。 我想从 youtube android api 播放 youtube 视频。在 Co
我正在使用 Android YouTube API 示例在我的应用中创建无边框 YouTube 播放器。我遇到一个问题,即缓冲/加载进度条继续显示在我的视频上,即使它已加载并开始播放。我可以通过一些小
我正在开发一个安卓应用程序。在此应用程序中,我希望使用 AppCompatActivity 在 ListView 或 RecyclerView 中使用 youtube 播放器播放 youtube 视频
我正在使用 Android YouTube API 示例在我的应用中创建无边框 YouTube 播放器。我遇到一个问题,即缓冲/加载进度条继续显示在我的视频上,即使它已加载并开始播放。我可以通过一些小
我正在尝试在我的 Fragment 中播放视频。但是,我无法让它工作。如果我扩展“YoutubeFailureRecovery”,我会得到: 09-06 21:56:40.472: E/Android
我在我的android项目中实现TouTube Api。我在YouTubePlayerFragment之前的“as”下一行出现错误,“此转换无法成功”。我正在用片段初始化youtube播放器。我已经在
我是一名优秀的程序员,十分优秀!