问题标签 [android-picture-in-picture]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 如何以图片模式在我的活动图片中播放 youtube 视频
我需要在我的应用程序中以画中画模式播放 youtube 视频,而无需调整原始活动的大小,只想以全屏或画中画模式显示 youtube,类似于 whatsapp 播放 youtube 视频的功能。
我正在尝试使用 exoplayer 播放视频,这是实现画中画功能的好方法。
我试图找到一些示例代码,教程但无法获得它。如果您有任何相关主题的链接,非常欢迎。
android - [有时] 使用 startActivityForResult() 调用 onUserLeaveHint()
我正在我们的 Android 应用程序中实现 PiP。这是一个导航应用程序,它的主要活动是全屏地图。当最小化(例如使用主页按钮)时,它会通过 onUserLeaveHint() 正确进入 PiP 模式。问题是主要活动有一些打开次要活动的功能,有时应用程序也会进入画中画模式。
我做错了什么或者我必须改变什么以确保应用程序仅在应用程序“最小化”时进入画中画?
这是一些代码,但我认为没有什么特别的。
这是进入画中画模式:
这是打开次要活动:
java - 如何在 Oreo 以下的 Android 版本上使用画中画模式?
我正在开发一个具有画中画模式的应用程序。根据文档只能从奥利奥版本获得。有没有其他方式(官方或非官方)在比奥利奥更低的版本中使用画中画?
android - 调整为画中画模式时闪烁视频/SurfaceView
我正在我的应用程序中使用画中画模式。事实上,它工作得很好,但我遇到了视频闪烁/消失一瞬间的问题。
我在“全屏”/正常模式下有 VideoActivity。我正在打电话enterPictureInPictureMode();
并且Activity
正在崩溃到小画中画框架。在动画结束缩小布局的那一刻,视频在一瞬间/一帧内变得透明。同样在这个框架中,整个画中画框架在(海拔)下得到阴影。当我触摸这个小画中画框时,它会稍微扩展为大画中画框(不是全屏),并且这个动画很流畅,但是当自动折叠到小画中画框时,它最后会再次闪烁......每次Activity
动画时到小画中画框(无论是从大画中画框还是从全屏折叠Activity
)在达到最终“小范围”时会发生一帧透明度闪烁。对声音没有影响,视频播放稳定,没有来电onPlayerStateChanged
。
使用较新的 API 版本,我们可以创建带边界的动画,这就是我知道视频视图闪烁的方式......使用无属性方法会使整个布局崩溃,我只能在具有视频/播放器/表面视图的区域看到闪烁(黑色条纹上面和下面的视频)。当我使用较新的方法时,setSourceRectHint
我可以看到整个画中画框架消失了,而不考虑其父级的黑色背景。事实上,我已经添加View
了具有固定大小、背景颜色centerInParent
等的虚拟对象 - 当放置在(父级中的第一个)层下方PlayerView
时,它会闪烁/隐藏,就像播放器一样,但放置在上面时根本不会闪烁,并且即使它显示在上面消失一秒钟。PlayerView
PlayerView
如何修复该闪烁或设置黑色背景,而不是透明...
xml:
PS。当使用通常VideoView
播放WebView
并通过VideoEnabledWebChromeClient进入全屏时,也会出现上述问题。但在这种情况下,眨眼显示WebView
s 内容的瞬间
编辑:我刚刚找到了闪烁 ExoPlayer 的解决方法 - 通过替换SurfaceView
为TextureView
,添加app:surface_type="texture_view"
- 但我读到TextureView
的效率有点低,而且这也不是修复VideoView
闪烁(全屏来自WebView
)
edit2:可以在 Android 8(小米)和 9(Pixel)上确认闪烁
java - 如何检测用户是否拖动 PIP 窗口(向下拖动以关闭)?
我需要做的是检测用户是否向下拖动 PIP 窗口(向下拖动以关闭)。当我这样做时,该onPictureInPictureModeChanged
方法被调用
但我怎样才能具体检测解雇?
android - Android中的浮动视频视图
我想做的是以下几点:
我有一个带有滚动视图的片段,顶部有一个视频。我想要实现的是让视频在我滚动时浮动。
与此链接类似的行为:https ://www.independentarabia.com/jsonfeed/api/v2/node/34291
我在图片模式下查看图片但没有运气
谁能告诉我如何实现这种行为?
android - 在新活动而不是当前活动中触发画中画
我正在进行活动 A。我想参加活动 B,并将 A 最小化为 Pip。
我试过了: enterPictureInPictureMode() startActivity(B)
但结果是 A 最小化,然后更改为 B,在全屏模式下没有任何活动。
我如何做到这一点?
java - YouTubePlayerSupportFragment 在画中画中停止并出现黑屏
我正在尝试在不停止 PIP 模式的情况下播放 YouTube 视频画中画模式。但是视频在黑屏进入画中画时停止播放,即使手动调用 player.play() 方法也不会播放。我看到它工作的唯一方法是创建一个新的 Fragment 实例并再次初始化()。如何播放具有以下要求的视频?
- YouTube 视频应继续播放而不会在进入 PIP 模式时停止/暂停
- newInstance() 丢失缓冲区 + 导致重新加载延迟,需要连续播放
- API 必须允许选择播放质量(“小”、“大”等).. 所以 IFRAME API 不是一个选项
- 不应该破坏 YouTube 的 TOS,因此其他支持 DASH url 等的外部视频播放器看起来也不像是一个选项
- 最好 Activity 应该扩展 AppCompatActivity 而不是 YouTubeBaseActivity
注意:当从 PIP 回到完整模式时,视频会连续播放而不会出现问题。
尝试了以下方法:
- 在不使用 PIP 的情况下尝试了有界和无界服务,仍然连续播放是一个问题。
- Francesco 的 android youtube player API(视频可以无缝播放,但由于 YouTube 的 API 限制无法改变播放质量)
- 使用 YoutTubePlayerSupportFragment 在 Activity 和 Player 的 onPictureInPictureModeChanged()、onPause() 和 onStopped() 事件上手动调用 play()(视频不会播放,保持黑屏)
- 删除了视图/布局并在 PIP 上尝试了 YouTubePlayer.setFullscreen(true)
- 尝试在布局上仅使用一个空 FrameLayout 来检查覆盖是否导致问题,否
- Android Studio 调试日志中也没有报告 Overlays 的错误
活动课
以及清单设置 android:supportsPictureInPicture="true"
android:configChanges="screenLayout|orientation|smallestScreenSize|screenSize"
***代码编辑器一直抱怨我粘贴的代码..我会尝试发布这个并稍后更新代码
更新代码:
我希望视频在输入 PIP 时无缝播放,但它是空白的。此外,我们不能再通过调用 play()、stop()、pause() 来控制播放器。也许,还有其他方法可以保存当前状态并继续 onResume?在 PIP 事件中传递额外的参数?
任何满足上述要求的解决方案都将被接受。
android - 缩放问题和 3 秒延迟进入/退出带有浮动/半透明窗口的画中画模式
使用带有 Android PIP 的浮动/半透明窗口会导致 3 秒延迟以及缩放问题。我已经整理了一个示例应用程序来演示该问题。我在想有一些标签组合我使用不正确或完全缺少一些标签或标签。我尝试了许多不同的组合,并想出了一些组合来演示这个问题。我将添加代码部分,让您了解我在做什么。我会根据需要添加额外的或完整的代码。我想尽量让这个问题保持简洁,但如果我添加更多您在开发环境中实际运行应用程序所需的示例应用程序,它可能会变得很长。
以下是测试应用程序的 styles.xml 中的重要部分:
下图是初始应用屏幕(如预期):
.
将应用程序置于 PIP 模式会导致此屏幕持续三秒钟(意外延迟和不良比例):
.
3 秒后,PIP 模式启用(预期图像)
由于缩放不良,退出 PIP 会导致无法使用的活动:
我会根据需要添加额外的代码片段。但现在,我认为styles.xml 文件不正确。
这里是样式:
这是清单:
底线,我需要一个可用的透明窗口进出 PIP 模式,不会导致缩放问题。
编辑:2019_08_20 - 根据要求,这是活动代码:
这是布局activity_main.xml:
这是布局activity_main_pip.xml
android - 为什么画中画显示不可见的内容?
我有一些很奇怪的事情:
请注意 FrameLayout 的 android:visibility="invisible"。正常屏幕完全符合预期 - 没有显示:
但是,画中画显示以下内容:
它显示了应该是不可见的 FrameLayout 之外的内容(片段)。
任何人都可以对此有所了解吗?
画中画是按照官方指南完成的。没什么特别的。
[编辑] 2019-08-26:
我添加了
到不可见的 FrameLayout。结果是完全一样的。这意味着灰色框是根布局。