【问题标题】:Black patch youtube android api黑补丁 youtube android api
【发布时间】:2013-10-09 08:39:43
【问题描述】:

我已经为 android 实现了 youtube 播放器 api,当我将 youtube 播放器放在滚动视图中并开始播放视频时,当我暂停视频并上下滚动屏幕时,它会出现黑色补丁。

我不明白为什么会出现黑块?我尝试截屏,但屏幕截图没有黑块。

下面是我的代码:

<com.google.android.youtube.player.YouTubePlayerView
            android:id="@+id/youtube_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />

【问题讨论】:

    标签: android android-youtube-api


    【解决方案1】:

    出现黑色补丁是因为视频视图使用了 SurfaceView。真实的视图是一个“黑洞”,视频是由硬件覆盖的。对视图布局的任何直接操作都会导致此视图堆叠不同步:您实际上看到的是 Android 的内衣,并且您会看到不同的手机/平板电脑的反应不同,例如在我的旧 Galaxy 选项卡中,这种效果非常明显,而较新的,更快的 Amazon Kindle 做得更好。

    对此你无能为力。这与 Android 的图形内部有关,他们需要修复引擎以允许更好地滚动表面视图。

    【讨论】:

    • “你实际上看到的是 Android 的内衣”哈哈哈我在 stackoverflow 上读过的最有趣的评论
    【解决方案2】:

    其实这个问题有一个解决方法。您需要在 ScrollView 上放置一个侦听器并捕捉 Y 距离。当 Y 距离接近 YoutubePlayerView 的高度时,需要暂停视频。

    scrollView.getViewTreeObserver()
                    .addOnScrollChangedListener(() -> {
                        onScroll(scrollView.getScrollY()); 
                        }
                    });
    
    
    private void onScroll(int position)
        { 
                if (position>300 && position <400)
                {
                    canPauseOnScroll=false; 
                } 
    
                if (canPauseOnScroll)
                {
                    canPauseOnScroll=false;
                    ytHelper.getPlayer().pause();
                } 
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-15
      • 2013-11-16
      • 1970-01-01
      相关资源
      最近更新 更多