如何关闭youtube退出视频后小窗播放

1、首先登录到youtube。

2、其次打开youtube的设置选项。

3、最后在设置里关闭小窗口播放即可。

youtube悬浮窗没有了

youtube悬浮窗没有了可以这样设置出来。

1、要进入到youtube主页面,在页面当中将浮窗划动出来。

2、滑动浮窗之后在右上方的位置可以看到一个小窗口的按钮,点击一下即可小窗口使用。

购买苹果ID

3、接着继续长按窗口顶部中间的横线即可设置浮窗的移动位置。

4、点击横线的图标,页面就会有一个恢复的按钮,点击即可恢复到原页面还是很简单。

youtobe适配ipad

youtobe适配ipad

1、在AppStore下载YouTube。

2、打开菜单,点击“设置”,选“通用”点击进入,往下拉,会看到“连接器”设置,点击进入。

3、然后添加连接器设置,描述可以随意填写,服务器地址咨询你的连接器代理商,输入账号密码。

4、返回上一菜单,开启连接器,连接成功后就可以用iphone上YouTube了。

苹果手机油管使用技巧

1、软件支持小窗播放,在播放页面直接按返回键,返回手机桌面,会发现软件开启了小窗播放。

2、软件支持订阅功能,打开一个视频,可以在视频详情页看到订阅按钮。

3、软件支持画质调节,点击视频播放页面右上角的三个点就可以进行设置,此外还可以在视频设置页面开启字幕功能。

4、软件具有历史记录功能,可以查之前观看的视频。

苹果ios 14怎么设置

iOS14技巧1:如何替iPhone 开启敲三下实现截图技巧

到iOS「设定」点选「辅助使用」。

选择「触控」,滑到最底点选「背面轻点」。

背面轻点设定能自订两下或点三下iPhone 背面来实现功能,选择「点三下」进入后选择「截图」。那为什么不选点两下就好?因为点两下只要随便震动,就容易导致误触,所以iPhone 截图还是建议设定点三下。

就可以透过手指轻敲iPhone背面三下立即截图了!不过这项功能目前对于近年新款iPhone都可使用(仅限Face ID机种),不确定后续测试版或正式版支援旧款iPhone 。那装保护壳不就不行了?一般保护壳依旧是可以只不过手指需要更用力点,除非是iPhone聪颖电池护壳就真的无法实现。

除了透过手指碰背面外,另外也可以前后晃、左右大力晃三下也同样可以触发截图,所导致这功能有好处也有坏处。

至于iOS 14 背面轻点(Back Top) 功能是用什么原理实现的呢?这项功能是透过iPhone 内部的三轴陀螺仪、加速感应器来感应外,如发现有连续两下或三下震动就会触发背面轻点功能,主要是设计给没有手指的用户使用,不过对于一般用户来说这个截图功能会让不少人喜爱,预计又会带来一波讨论潮。

使用iOS 14子母画面和操作技巧,让你使用iPhone 时可边看影片或接听FaceTime 电话,还能同时使用另一个App。

iOS14技巧2:iOS 14子母画面操作教学

如果要在iOS 14 上启动子母画面功能,可以开启TV App后进入全屏幕播放模式,上方就会出现一个「子母画面」按钮,点击下去画面就会缩小至最下方。

就算是回到主画面或是打开使用其他App ,也依旧能够继续播放和控制影片,甚至你还可以调整画面位置,以及可透过双指或点击画面两下来缩放。

另外还有一招也是可以立即启动子母画面模式,播放时直接退回主画面,像是Netflix 透过这方法也能实现。

iOS14技巧3:iOS 14子母画面操作教学3

至于其他影音App 目前都还无法使用,要等待后续更新才能够支援子母画面功能,有些App 可能原先就已经内建,但是仅局限在App 内部使用,反而跳到主画面或其他App 就会消失,所以等后续App 更新实现吧!

YouTube 上其实也可以实现子母画面功能,不过需要透过Safari 浏览器打开YouTube 网页才能够实现,只要在全屏幕画面播放YouTube 影片时,就会看见子母画面功能。

点击后,在主画面、浏览网页或App 上同样可以看YouTube 影片以及听MV。

如果想要让YouTube 背景播放音乐,将YouTube 子母画面往右滑动,会变成一个隐藏标签浮在屏幕边缘,这样就能够变成背景播放。

在iOS 锁定状态或滑出控制中心依旧可以实现YouTube 背景播放。

iOS 14最明显变化的就是主画面小工具,可以让iPhone ?用户自行决定iOS 14主画面要摆放哪些不同尺寸的小工具(widgets),桌面立即显示工作、旅游、运动、娱乐及其他感兴趣App ,让感兴趣的资讯一目了然,也能节省不少要点开App才能够看见内容时间,比起过去小工具只能够藏在通知中心隔壁要来得更实用。

不过也并非是每一款小工具都能够直接放在主画面上,目前仅只有内建App 才能够加入至主画面上,像是照片、音乐、地图、行事历、提醒事项、Siri建议、备忘录、地图、天气、捷径、Podcast、提醒事项、照片、股市、屏幕使用时间、行事历、电池、音乐,那么要如何自订使用和排列主画面小工具呢?底下详细告诉大家。

iOS14技巧4:如何自订iOS 14 主画面小工具

在iOS 14 主画面长按其中一个App 进入「编辑主画面」状态,在点选左上角「+」。

就会进入小工具主页面,里面会提供不同类型的小工具,大多数是内建App (预计后续会加入第三方App),实际这功能就是从原本藏在角落的小工具提升至主画面上,整体新增画面也从原本只有文字改为图像视觉化。

目前小工具风格提供有三种尺寸,分别为小、中、大,尺寸越大占用空间就会越多,摆上建议先自己考虑,决定后就点选下方Add Widget 就能够放入到主画面上。

可以依照自己需求,每个页面都能塞入不同小工具,可自由选择适合的小工具放到适合位置上,像是有些人认为看不见浏海机的iPhone 电池数字,那就直接在主画面上放一个电池小工具吧!就能随时监控电量,小型最少可显示iPhone 当前电量(含数字),最多可显示AirPods 、Apple Watch 或苹果周边设备电量监控,甚至如果配件有在充电也会显示充电符号。

智慧型堆叠:一个堆叠功能实现五个小工具

除了主画面可以加入小工具外,另外还额外还多出一项称为「智慧型堆叠」功能,这项功能主要是小工具延伸,比较适合不想在主画面上放太多小工具区块用户,最多五种小工具堆叠,可以透过上下手势切换成不同资讯算是非常便利,不过目前局限在内建功能,也能自行手动调整堆叠排列组合。

编辑页面:一键隐藏应用程式

iOS 14 主画面也额外加入「编辑页面」功能,这项功能主要用来隐藏页面,像是iPhone 借给朋友或是小孩游戏时,怕会被误点或怕被看见不该看的东西,或是想要隐藏照片App,那就可以透过编辑页面功能,将想隐藏的App 全塞到一个页面内,取消勾选页面就能实现隐藏应用程式。

至于操作方式,就是在编辑主画面状态下,点选下方白色就能编辑要隐藏或显示哪一个页面。

iOS14技巧5:App 资料库:免花时间分类自动整理App

iOS 14 主画面另外还加入一项全新「App资料库」功能,这项功能会自动依照应用程式类型分类(App Store分类),也能从App Store 下载后自动归类,如点击搜寻框也会立即改为「列表显示」方式,搜寻滑动浏览会更直觉快速,好处是可透过系统智慧型分类更快找到想开启的应用程式。

简单来说可将App资料库当成是仓库,还会有一名仓库管理员会在后台默默工作,能够自动替我们规划和整理不同App 类型。

转:小窗播放视频的原理和实现(上)

转到, 在手机上看着方便

由于文章篇幅较长,将分为上、下两篇。上篇主要介绍小窗播放视频的原理,下篇主要介绍小窗播放视频的实现。

目前很多视频类App都有小窗播放功能,比如Youtube(如图1)、Facebook(如图2)等,不过它们的实现方式却不同。Youtube 是将视频播放View内嵌到应用内,优点是交互好;Facebook则是通过WindowManager添加视频播放View,同时支持应用内部和外部播放。

小窗播放视频功能在小窗和大屏之间切换时,视频类App通常一边执行交互动作一边播放视频。交互动作包括移动、缩放或者动画;这些App在播放时期望给用户平滑的过渡体验,流畅加载视频,不能有明显的卡顿。

figure

figcaption(图1 Youtube小窗播放视频)/figcaption

/figure

figure

figcaption(图2 Facebook小窗播放视频)/figcaption

/figure

二、SurfaceView 和 GLSurfaceView

Android 中使用 MediaPlayer 播放视频时,一般采用 SurfaceView 、 GLSurfaceView 和 TextureView 。Youtube、Facebook用不同技术方案实现了小窗播放视频功能,它们共同点是都可以使用 SurfaceView 、 GLSurfaceView 和 TextureView 来播放视频。接下来分析三个视图用于小窗播放视频的原理。

SurfaceView继承自类View,但与其他View的子类不同的是它有独立的Surface,如下源码可以看出它包含一个Surface属性,即它不与宿主窗口共享同一个绘图表面。因此SurfaceView的UI可以在一个独立的线程中进行绘制。由于不会占用主线程资源,因此SurfaceView可以实现复杂而高效的UI。GLSurfaceView继承SurfaceView,作为SurfaceView的补充,加入了EGL的管理,并自带了渲染线程。它用于小窗播放时效果和SurfaceView类似。本文以下内容以SurfaceView为例分析独立的Surface对小窗播放会有什么影响。

通过Surface的类注释可以知道,Surface处理一块由Screen compositor管理的Raw buffer。而Screen compositor其实就是SurfaceFlinger服务。Surface字面意思就是绘图表面,可以理解为是UI的画布。

Android应用程序窗口需要请求SurfaceFlinger服务创建绘图表面(也就是Surface对象),同时窗口还需要被WindowManagerService管理;所以实际上窗口的绘图表面是通过两个Surface对象来描述,一个是应用程序进程创建的,另一个是由WindowManagerService创建的,这两个Surface对象对应于SurfaceFlinger服务的同一个Layer对象。

在应用程序进程这一侧,每一个应用程序窗口,如Activity,都有一个Surface对象,就是在ViewRootImpl对象的mSurface属性,这个Surface用来绘制应用程序窗口的UI,如下ViewRootImpl源码所示。当界面需要刷新时,窗口调用draw方法,向Surface请求canvas,执行绘画操作后再次提交给Surface完成屏幕显示。

在WindowManagerService服务这一侧,每一个窗口,都有一个对应的WindowState对象。其有一个属性mSurface,它负责设置窗口的位置、大小属性。例如,一个窗口的Z轴坐标大小要考虑到它的窗口类型,以及它与系统中的其它窗口的关系[2]。

SurfaceView有独立的绘图表面,那么SurfaceView又是怎么绘制在宿主窗口的呢?

上面说到每一个窗口在SurfaceFlinger服务中都对应有一个Layer,用来描述它的绘图表面。同时每一个SurfaceView在SurfaceFlinger服务中还对应有一个独立的Layer或者LayerBuffer,用来单独描述它的绘图表面,以区别于它的宿主窗口的绘图表面[3]。

figure

/figure

(图3 SurfaceView的Surface的创建过程)

接下来了解Surface创建过程,如图3的时序图所示,每当一个窗口需要刷新UI时,就会调用ViewRootImpl类的performTraversals方法。如果当前窗口的Surface还没有创建,或者已经失效,SurfaceView就会请求WindowManagerService服务创建一个新的Surface,它最终会调用updateWindow来完成Surface的创建。

如SurfaceView源码所示,它有一个mSurface属性,相比之下TextView或者Button等普通View会共用ViewRootImpl的Surface。

SurfaceView类的属性mWindowType描述的是SurfaceView的窗口类型,它的默认值等于 TYPE_APPLICATION_MEDIA ,用来显示多媒体的,如视频。SurfaceView还有另外一个类型 TYPE_APPLICATION_MEDIA_OVERLAY ,它是在视频上面显示Overlay的,它可以显示视字幕等信息。宿主窗口会遮挡这两个类型的SurfaceView,如果窗口嵌入这两类SurfaceView,那么它们的Z轴位置会低于该窗口的Z轴位置,显示在该窗口下面。如果mWindow等于null的话,那么就说明该SurfaceView还没有添加到WindowManagerService服务中去,然后调用addWithoutInputChannel添加到WindowManagerService服务中。

mSession.relayout()请求WindowManagerService服务对SurfaceView的UI进行布局。如果宿主窗口的绘制表面还未创建,或者需要重新创建,那么就会请求SurfaceFlinger服务为它创建一个新的Surface。由于这一步可能会修改SurfaceView的Surface,所以添加了mSurfaceLock锁,避免其它线程同时修改该Surface的内容。

执行完成上述步骤之后,SurfaceView的Surface的创建完成了。但是mWindowType为 TYPE_APPLICATION_MEDIA 或 TYPE_APPLICATION_MEDIA_OVERLAY 的SurfaceView会被宿主窗口挡住,如何解决这个问题,这就要了解SurfaceView“挖洞”原理。

当SurfaceView附加宿主窗口时,它的onAttachedToWindow会被调用。这个方法调用requestTransparentRegion请求在宿主窗口上设置透明区域,即请求在宿主窗口上挖洞,其实就是设置ViewRootImpl中Surface的透明度。而每当其宿主窗口刷新自己的UI的时候,就会调用ViewGroup的gatherTransparentRegion将所有嵌入在它里面的SurfaceView所设置的透明区域收集起来。然后再通知WindowManagerService为SurfaceView的gatherTransparentRegion方法设置一个总的透明区域。这就是SurfaceViewd的“挖洞”原理,如图4时序图所示。

figure

/figure

(图4 SurfaceView“挖洞”原理)

接下来结合ViewRootImpl类的requestTransparentRegion源码,来分析请求在宿主窗口上设置透明区域的过程。

当mView等于子View时,将mPrivateFlags的 View.REQUEST_TRANSPARENT_REGIONS 位设置为1,表示该窗口被设置了一块透明区域。当一个窗口被请求设置了一块透明区域之后,它的窗口属性就发生了变化,这时候除了要将与它所关联的ViewRootImpl对象的mWindowAttributesChanged值设置为true之外,还要调用该ViewRootImpl对象的requestLayout方法对窗口的UI进行重新布局和绘制。requestLayout最终会调用到另外一个方法performTraversals来实际执行刷新窗口UI的操作。

ViewRootImpl类的方法performTraversals是用来收集嵌入在它里面的SurfaceView所设置的透明区域的。它处于窗口的UI布局完成之后,窗口的UI绘制之前。这是因为窗口的UI布局完成之后,各个子视图的大小和位置才能确定下来,进而才能确定SurfaceView的透明区域的位置和大小。从顶层视图开始,从上到下收集每一个子视图所要设置的区域,最终收集到的总透明区域并保存在ViewRootImpl类的成员变量mTransparentRegion中。其中host是DecorView,它的gatherTransparentRegion方法重载了父类ViewGroup的gatherTransparentRegion方法。

ViewGroup的gatherTransparentRegion方法中,检测到有透明区域时,调用父类View的方法gatherTransparentRegion来检查当前视图容器是否需要绘制。如果需要绘制,说明当前视图的前景需要绘制,就会将它所占据的区域从参数region所占据的区域移除,以便可以显示当前视图的前景。然后调用每一个子视图的成员函数gatherTransparentRegion来继续往下收集透明区域。

SurfaceView类的方法gatherTransparentRegion中,先检测是否用作窗口面板以及mPrivateFlags的SKIP_DRAW位是不是1。如果都是,将它所占据的区域从参数region所描述的区域移除,region中剩下的就是透明区域。最后判断Surface的像素格式是否设置有透明值。如果有,返回false给ViewRootImpl,然后ViewRootImpl调用 sWindowSession.setTransparentRegion(mWindow, mTransparentRegion); 设置窗口为透明。这样就能看到SurfaceView了。

SurfaceView虽然具有独立的Surface,不过它仍然是宿主窗口的视图结构中的一个结点,因此,它仍然是可以参与到宿主窗口的绘制流程中去的。

在SurfaceView的draw和dispatchDraw方法中,参数canvas是建立在宿主窗口的Surface上的画布,因此在这块画布上绘制任何UI都是出现在宿主窗口的Surface上的。但如果当前正在处理的SurfaceView不是用作宿主窗口面板的时候,即属性mWindowType的值不等于 TYPE_APPLICATION_PANEL 的时候,SurfaceView的这两个方法只是简单地将它所占据的区域绘制为黑色。另外dispatchDraw还会调用另外一个方法updateWindow更新的UI,绘制自己的Sueface。

通过了解SurfaceView的创建过程、“挖洞”原理和绘制过程,可以了解到Surface对小窗播放视频的影响如下:

1)SurfaceView在宿主窗口下面,通过“挖洞”原理显示Surface。SurfaceView在做旋转时,画面不会跟随SurfaceView旋转。

2)同理,设置透明度或者执行透明值动画时,SurfaceView显示有问题。

3)SurfaceView绘制时会先绘制黑边,所以在移动或者缩放过程,在更新不及时时会看到黑边。

4)SurfaceView具有独立的Surface,它的UI绘制可以在独立的线程中进行,可以进行复杂的UI绘制。

由于SurfaceView不在View hierarchy中,View的一些缩放,透明度变化等方法无法使用。要实现这些功能就得使用TextureView,但TextureView有个缺点就是性能低耗电高。Android N对SurfaceView进行了更改,它对SurfaceView自身和它的内容改变做了同步处理,播放视频时不会出现之前难看的黑色条。SurfaceView因这个新特性不会出现黑色条,但它旋转时画面仍然不会跟随旋转,仍然不支持透明度。

如下源码所示,TextureView继承于View,并重载了View的draw()方法,它与其它的View一样在View hierarchy中管理与绘制。draw()方法中主要把SurfaceTexture中收到的图像数据作为纹理更新到对应的HardwareLayer中。SurfaceTexture.OnFrameAvailableListener用于通知TextureView有新数据。

根据以上信息,可以知道TextureView不同于SurfaceView,没有单独创建Surface,而是作为View hierarchy中的一个普通View,来进行移动,旋转,缩放,动画等,没有SurfaceView执行旋转、缩放时的缺点。值得注意的是TextureView必须在硬件加速的窗口中,通过HardwareLayer更新视图。它需要硬件加速层,这使得TextureView比SurfaceView更耗性能。 Android N上SurfaceView新特性的说明上,官方也推荐在不执行旋转、透明度、缩放时使用SurfaceView。

SurfaceView有独立的Surface,通过“挖洞”原理显示它。以致它在执行旋转时,画面不会跟随旋转;同时设置透明度或者执行透明值动画时,显示有问题。Android N以上的SurfaceView在视频进行缩放旋转时会同步变化,不会看到黑色边,官方推荐使用SurfaceView。TextureView作为普通View在View hierarchy中管理与绘制,更适用于小窗播放视频功能。但TextureView需要硬件加速层,使得TextureView比SurfaceView和GLSurfaceView更耗性能。

[1]、Surface( )

[2]、Android应用程序窗口(Activity)的绘图表面(Surface)的创建过程分析 ( )

[3]、Android视图SurfaceView的实现原理分析( )

[4]、SurfaceView( )

小窗播放视频的原理和实现(下)

关于苹果youtube如何悬浮窗播放和苹果youtube小窗口的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。