首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在swift3中使用AVPlayer播放的视频将从容器视图中消失

在Swift 3中,使用AVPlayer播放的视频将从容器视图中消失可能是由于以下几个原因导致的:

  1. 视频播放完成或被中断:当视频播放完成或被中断时,视频播放器会自动从容器视图中移除。可以通过监听AVPlayerItemDidPlayToEndTime通知来捕获视频播放完成事件,并在处理完成后将播放器从容器视图中移除。
  2. 视频播放器被释放:如果在播放视频时,播放器对象被释放或销毁,视频将从容器视图中消失。确保在需要保持视频显示的情况下,保持对播放器对象的引用,以防止其被释放。
  3. 容器视图被移除或隐藏:如果容器视图被移除或隐藏,视频也将从视图中消失。确保容器视图在视频播放期间保持可见,并且没有被其他视图遮挡。

针对以上情况,可以采取以下措施:

  1. 监听视频播放完成事件:可以通过添加观察者来监听AVPlayerItemDidPlayToEndTime通知,一旦视频播放完成,可以在处理完成后将播放器从容器视图中移除。示例代码如下:
代码语言:swift
复制
NotificationCenter.default.addObserver(self, selector: #selector(playerDidFinishPlaying), name: .AVPlayerItemDidPlayToEndTime, object: player.currentItem)

@objc func playerDidFinishPlaying() {
    // 视频播放完成后的处理逻辑
    // 将播放器从容器视图中移除
    playerLayer.removeFromSuperlayer()
}
  1. 确保播放器对象的引用有效:在需要保持视频显示的情况下,确保对播放器对象的引用有效,以防止其被释放。可以将播放器对象声明为类的属性或使用其他方式来保持其引用。
  2. 确保容器视图可见且未被遮挡:在视频播放期间,确保容器视图可见且没有被其他视图遮挡。可以通过调整视图层级关系或更改视图的显示状态来实现。

以上是针对在Swift 3中使用AVPlayer播放的视频从容器视图中消失的可能原因和解决方法。如果需要更多关于AVPlayer的详细信息,可以参考腾讯云的相关产品文档:AVPlayer

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

AVKit框架详细解析(四) —— 基于AVKit 和 AVFoundation框架视频流App构建

在此过程,您将学习 AVKit 和 AVFoundation 框架基础知识。 本教程,您将学习如何: 添加本地视频。 添加流媒体视频。 启用播放控件。 实现循环。 实现画中画。...注意:视频可能无法模拟器播放真实设备上运行该应用程序将缓解该问题。 入门项目是一个 vlogger 应用程序,您将使用 AVKit 和 AVFoundation 添加功能和特性。...2) 在这里,您获取 url 并创建一个 AVPlayer 对象。 AVPlayer iOS 上播放视频核心。 播放器对象可以启动和停止您视频,更改其播放速率,甚至可以调高和调低音量。...每次收到通知时,您都会知道播放器已进入下一个视频。 要在 Swift 中使用 KVO——比 Objective-C 好得多——你需要保留对观察者引用。...你任务是: 1) 单击时取消视频静音。 2) 双击时 1x 和 2x 速度之间切换。 您将从完成这些事情所需实际方法开始。

6.9K10

iOS-视频播放简单封装

iOS-视频播放简单封装 封装视频播放器,首先需要了解视频播放实现,iOS9之前可以使用MediaPlayer来进行视频播放,iOS9之后系统推荐使用AVFoundation框架实现视频播放...如果仅仅是播放视频两者使用都非常简单,但是相比MediaPlayer,AVPlayer对于视频播放可控制性更强一些,可以通过自定义一些控件来实现视频播放暂停等等。...因此这里使用AVPlayer视频播放。 封装视频播放器,首先需要实现视频播放器,然后再去考虑怎样封装可以让以后自己使用起来方便快捷。...初始化AVPlayer和AVPlayerLayer,并将AVPlayerLayer添加到imageViewlayer上,layoutSubviews设置playerLayerframe //...,播放暂停,则此时工具栏不会消失,重新开始播放视频,工具栏5秒内消失

1.8K110

AVPlayer初体验之视频解纹理

AVPlayer是苹果提供用来管理多媒体播放控制器,提供了播放所需要控制接口和支持KVO属性,支持播放本地和网络视频,以及实时视频流。...不同性能设备上,甚至相同设备不同iOS版本上,AVPlayer最大支持清晰度都会不一样,例如在iOS10某些机器上不支持4k播放,但是到iOS11就支持了,关于测定视频是否可以用AVPlayer...如果只需要播放视频,可以直接使用CALayer子类AVPlayerLayer。这里不做过多说明,可以查看苹果Demo代码。...这里主要说明从AVPlayerOutput获取视频纹理以用于OpenGl下一步处理。...硬件加速 iOS6以后可以使用底层框架VideoToolbox来实现硬解码,具体视频工具箱和硬件加速有很清楚解释,基本场景,使用AVPlayer即可满足需求。

3.3K40

【iOS 开发】同步快速判断视频是否可以播放

背景 拿到一个视频 url 地址(无论是远程还是本地),有时候播放之前需要检测该视频是否可以播放(本地可能是文件损坏,远端地址情况更复杂),下面介绍两种适用不同情况方法来实现。...如果你在这里需要直接使用这个 AVPlayer 进行视频播放,那么推荐使用这个 KVO 方法。...否则会有这样几个缺点: avplayer 用于判断视频播放性,本应该是局部变量,现在因为 KVO 它 scope 被扩大了 KVO 方法代码可读性上不如同步直接判断 控制台会默认打印下面这些东西...如果仅仅是想要判断视频播放性,而不需要使用 AVPlayer,建议使用这种方法,可以将 AVAsset 创建逻辑加入到你自定义播放 init 方法。...我尝试 iPhone 6s 上使用本地一个约 800k mp4 视频进行粗略测试,发现新建 AVAsset 耗时约 0.02s,新建 AVPlayer 异步返回耗时约 0.05s,这种同步方法大概快了一倍

2.1K20

基于 HTTP 低延迟流媒体播放性能

低延迟打包器输出是分块视频片段和清单文件,通知播放器如何在低延迟模式下使用流。...Chrome 浏览器和 AVPlayer Mahimahi 容器内运行,并通过模拟虚拟网络接口连接到媒体服务器。...所有其他指标(包括流比特率、视频分辨率、下载媒体数据、比特率切换次数)均来自服务器日志。我们测试系统收集完整指标列表总结在表 2 。...我们使用了从真实世界移动网络记录轨迹。当我们 Mahimahi 运行测试播放器时,播放器下载速度受到虚拟界面容量限制。...基于图 9,我们还注意到 HLS.js 和 Shaka 播放器比 AVPlayer 实现了更低延迟。AVPlayer 延迟线超过一半会话较低且平坦,但在接近结束时上升。

8.7K40

iOS 视频播放方式整理

最原始播放 ----       要不是刚接触iOS开发同学应该是知道MediaPlayer这个框架,要是想简单使用播放视频,可能几行代码就能搞定了,它里面有一个MPMoviePlayerViewController...MPMoviePlayerController来播放视频,是它初始化时候self.view 上添加 KRVideoPlayerControlView 这个自定义UI,你可以看到下面的代码: //...包含了这个播放器几乎所有的功能,淡然这部分方法代代码都是MPMoviePlayerController.h,有兴趣或者需要可以command进去了解。      ...下面把上面说各个类分别说一下:       1、AVPlayerItem       我们使用AVPlayer播放视频时候,提供视频信息就是AVPlayerItem,一个AVPlayerItem...AVPlayer 控制视频播放, 暂停, 跳转 等等。 播放过程获取缓冲进度,获取播放进度。 视频播放完成后做些什么,是暂停还是循环播放,还是获取最后一帧图像。

2.6K100

多媒体-图片、音频、视频基本实现

前言 iOS开发关于多媒体是经常使用,下面就简单总结下基本实现方式。当然首先需要获得系统私有设置访问权限。...AVAudioRecorder 使用AVAudioRecorder进行音频录制时候,需要设置一些参数,下面就是参数说明,并且写下了音频录制代码: //音频开始录制 - (void)startRecordWithFilePath...可以满足 在线播放使用AVFoundationAVPlayer可以满足 在线播放同时存储文件:使用AudioFileStreamer + AudioQueue 可以满足 在线播放且带有音效处理:使用...完全下载后才播放就不能算在线播放了 所有苹果公司提供了功能强大AVPlayerAVPlayer存在于AVFoundation,其实它是一个视频播放器,但是用它来播放音乐是没问题,当然播放音乐不需要呈现界面...]; PS:AVPlayer视频播放完成通知监听 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector

2K10

AVFoundation 框架初探究(四)

这里就先开始总结书本第五章内容。前面第四章内容视频播放我们再前面的确也总过了,就不在这里再去重复总结。...,默认值 // AVLayerVideoGravityResizeAspectFill 保留视频宽高比,并且通过缩放填满整个播放界面 // AVLayerVideoGravityResize 会将视频内容拉伸匹配承载层范围...播放底层控制器要是消失就返回NO - (BOOL)playerViewControllerShouldAutomaticallyDismissAtPictureInPictureStart:(AVPlayerViewController...@field duration The duration of the time range. */ } CMTimeRange;       通过这个定义我们就了解了它组成,Demo我们已经是简单使用过它了...AVAssetExportSession ----       我们先看看在我们Demo里面我们使用关于AVAssetExportSession代码,我们在这里使用时候只是利用它进行了一下视频压缩

1.4K60

iOS开发常用之摄像照相视频音频处理

删除任何你不想要记录段。可以使用任何视频播放播放片段。保存记录可以序列化NSDictionary中使用。(NSUserDefaults操作)添加使用Core Image视频滤波器。...自定义视频播放AVPlayer - 利用系统类AVPlayer实现完全自定义视频播放器,显示播放时间,缓存等功能。代码清晰,注释详细。...iFrameExtractor - 开源视频播放器,ffmpegiOS使用-iFrameExtractor源码解析,文章。...TBPlayer - 视频变下变播,把播放播放数据流缓存到本地,支持拖动。采用avplayer。...BMPlayer.swift - 基于AVPlayer使用Swift封装视频播放器,方便快速集成,支持横屏,竖屏,上下滑动调节音量,屏幕亮度,左右滑动调节播放进度。

2.8K51

百思不得姐数据挖掘第三篇

播放视频界面现在只剩下视频功能了,对于这种播放视频应该属于功能块。我们可以单独把这个功能提取出来。 我们新建一个包Plugins专门放置各种功能,我称作为插件。...对于播放视频功能只2013年做过,貌似叫做MP开头类,差不多忘记了。我们可以谷歌一下,不怕不会,只怕不会搜索。...let videoPlay = AVPlayer(url: videoUrl) let videoPlayController = AVPlayerViewController() 我们需要放置我们播放视频界面的模板上面...视频截图 黑乎乎,应该界面是出来了,但是播放不了。 仔细查看了代码,忘记给属性赋值。 open var player: AVPlayer? 我们赋值一下。再次试一下看看。...谷歌意思,iOS模拟器要使用输入设备和输出设备,但是Mac电脑没有,会造成这样结果。因为AVPlayer造成这些错误信息。

58320

VC++200320052008 调用Mediaplayer指南

菜单上选择 项目-〉添加类-〉MFC->activex控件mfc类-〉添加。 4、选择 windows media player,添加IWMPControls类。...此时添加变量VS2003不在时IWMPPlay4 了,而是COcx。...打开:当选择一个文件打开是,可以直接使用m_avPlayer.put_URL(fileName); 为打开按钮添加消息响应函数,函数添加如下代码: char szFileFilter[]=         ...开始:为了实现播放控制,OnInitDialog()添加代码: m_control = static_cast(m_avPlayer.get_controls());...(true/false); l         使用播放列表自动播放文件,第一步: 需要在播放列表添加媒体;第二步:将列表设置为当前播放列表;第三步:将播放设置为自动播放

1.4K20

如何像抖音直播一样,从 App 直播间到桌面画中画实现画面无缝切换?丨有问有答

今天我们要讨论问题是一位社群朋友遇到一个工作技术优化问题,原文如下: 请问 iOS 画中画小窗播放如何做到像抖音一样无缝切换?...目前 App 内使用腾讯云播放播放 flv 流,切到桌面画中画小窗时必须使用系统 AVPictureInPictureController + AVPlayerAVPlayer 不支持 flv... App 直播间依然使用腾讯云播放播放 flv 流,同时 flv 首帧渲染成功后,再拉起一个 AVPlayer播放一路占位 hls 流(可以静音、全黑、小尺寸画面)。...这个 AVPlayer App 内不显示出来,但是把它作为画中画 AVPictureInPictureController 播放器。...如果你确实感兴趣或者有更好方案,可以通过本文后二维码加入我们关键帧视频开发圈一起了解和探讨。 - 完 -

1.7K20

AVPlayer+AudioUnit之播放视频音轨(AVAssetTrack)

背景 VoIP应用,需要在通话端进行视频播放,同时该视频又不进入到VoIP声音,避免产生回音现象。...保底方案,从AVPlayer取出PCM文件,做内存或者文件缓存,单独再播一份,需要手动对齐媒体时间。 保底方案,使用AVPlayer视频,同时直接再解码一份,光播音频,需要手动对齐媒体时间。...尝试一 首先是看到官网架构图,第一反应肯定是AVPlayer音频播放也是基于AudioUnit,那就好办了 ?...尝试二 参考了苹果AudioTapProcessorDEMO,发现可以使用AudioMix方案来取到实时音频数据,那转推一份就好了。 首先从AVPlayerKVO监听状态,获得音轨。...todo 需要监听AVPlayer进度,来播放响应位置AudioBufferData。

2.5K20

视频面试题集锦(第 13 期)

下面是第 13 期面试题精选: 1、AVPlayer 如何实现视频片段加速预览播放? 2、如何高效获取一个视频关键帧序列? 3、SPS 和 PPS extradata 作用是什么?...什么情况下 I 帧不是 IDR 帧? 1、AVPlayer 如何实现视频片段加速预览播放?...在编辑场景用 AVPlayer 来实现预览播放器时,对视频某一段内容进行加速播放实现代码如下: // 创建 AVMutableComposition 对象 AVMutableComposition... extradata ,SPS 和 PPS 作用是为解码器提供视频序列配置信息,以确保解码器能够正确地解释和处理视频数据。...视频序列,I 帧通常用于随机访问点,也作为其他帧解码参考。 IDR 帧:IDR 帧是一种特殊 I 帧,它具有刷新解码器缓冲区功能。

20310

WWDC 2022 音视频相关 Session 概览(EDR 相关)丨音视频工程示例

AVKit 框架,我们可以基于 AVKit 来创建支持视频播放用户界面,完成传输控制、章节导航、画中画播放、字幕、隐藏式字幕显示等功能,AVKit 可以将 HDR 内容 EDR 管线播放。...使用 AVFoundation 可以轻松播放、创建和编辑 QuickTime 电影和 MP4 文件,播放 HLS 流,并在应用构建强大媒体功能。...对于不同应用场景,我们可以选择不同框架来实现: 简单播放 HDR 视频,可以使用 AVKit 和 AVFoundation; 指定 layer 上播放 HDR 视频,可以使用 AVPlayerLayer...2)使用 AVKit 和 AVFoundation 如果需要简单播放 HDR 视频媒体渲染到 EDR,可以使用 AVPlayerViewController 渲染 AVPlayer,也可以使用 AVPlayer...AVPlayer 用法 示例代码如下: AVPlayerViewController 使用示例 AVPlayer+AVPlayerLayer 使用示例 如果需要实现实时视频效果,比如: 特效: Color

2.3K21
领券