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

关闭应用程序的Swift AVPlayerViewController Done按钮

Swift AVPlayerViewController是一个用于播放音视频的视图控制器,它提供了一种简单的方式来集成音视频播放功能到iOS应用程序中。

关闭应用程序的Swift AVPlayerViewController Done按钮是指在使用AVPlayerViewController播放音视频时,用户可以点击Done按钮来关闭播放器界面并返回到应用程序的其他界面。

关闭应用程序的Swift AVPlayerViewController Done按钮的实现步骤如下:

  1. 创建AVPlayerViewController实例并设置要播放的音视频资源。
  2. 通过调用AVPlayerViewController的present(_:animated:completion:)方法将其呈现在当前视图控制器上。
  3. 监听AVPlayerViewController的didFinishDismissal通知,该通知在用户点击Done按钮后触发。
  4. 在通知的回调方法中,调用AVPlayerViewController的dismiss(animated:completion:)方法来关闭播放器界面。

以下是一个示例代码:

代码语言:swift
复制
import AVKit

class ViewController: UIViewController {
    var playerViewController: AVPlayerViewController?

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 创建AVPlayerViewController实例
        playerViewController = AVPlayerViewController()
        
        // 设置要播放的音视频资源
        if let videoURL = Bundle.main.url(forResource: "video", withExtension: "mp4") {
            let player = AVPlayer(url: videoURL)
            playerViewController?.player = player
        }
    }
    
    @IBAction func playButtonTapped(_ sender: UIButton) {
        if let playerViewController = playerViewController {
            // 呈现AVPlayerViewController
            present(playerViewController, animated: true, completion: nil)
            
            // 监听AVPlayerViewController的didFinishDismissal通知
            NotificationCenter.default.addObserver(self, selector: #selector(playerDidFinishDismissal), name: .AVPlayerViewControllerDidFinishDismissal, object: nil)
        }
    }
    
    @objc func playerDidFinishDismissal() {
        // 关闭播放器界面
        playerViewController?.dismiss(animated: true, completion: nil)
        
        // 移除通知观察者
        NotificationCenter.default.removeObserver(self, name: .AVPlayerViewControllerDidFinishDismissal, object: nil)
    }
}

这样,当用户点击Done按钮时,AVPlayerViewController会被关闭,并且应用程序会返回到之前的界面。

推荐的腾讯云相关产品:腾讯云移动直播(https://cloud.tencent.com/product/mlvb)可以用于在移动应用中实现音视频直播功能。

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

相关·内容

AVKit框架详细解析(二) —— 基于视频播放器画中画实现(一)

现在您已经设置了所有内容,您可以在您应用程序中实现画中画。 ---- Implementing PiP 打开 AppDelegate.swift。...你已经看到,如果你使用标准 AVPlayerViewController,画中画几乎是自动。 如果您应用程序具有自定义播放控制器,则您需要做一些额外工作来支持画中画。 接下来您将了解这一点。...但是……如果您点击画中画按钮,则什么也不会发生。 别担心,你现在会解决这个问题。 打开 CustomPlayerViewController.swift。...Handling PiP controller failure and closing 当用户使用关闭按钮关闭画中画或画中画模式失败时,您需要从活动控制器集中删除自定义播放器控制器。...现在启动画中画会关闭自定义播放器控制器,并关闭画中画窗口。 但是,如果您点按按钮以从画中画返回标准全屏播放,继续播放相同视频,则没有任何反应。 你现在会处理这个问题。

2.8K10

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

这就是应用程序如何用数据填充现有列表方式。 视频本身来自嵌入在应用程序包中 JSON 文件。 如果您好奇,您可以查看 Video.swift 以了解它们是如何获取。...这包括一个播放按钮、一个静音按钮和用于前进和后退 15 秒跳过按钮。 2. Adding Remote Playback 那很容易,对吧? 如何从远程 URL 添加视频播放? 那一定要难很多!...但是,您使用过多少次启动无声视频但关闭音乐应用程序? 如果您从未体验过这种第一世界讽刺,请插入耳机......哦,对不起,现在版本:蓝牙连接您耳机。 打开一些音乐,然后运行该应用程序。...作为一个体贴应用程序开发人员,您应该允许用户关闭他们自己音乐,而不是大胆地假设您应用程序应该胜过所有其他应用程序。...默认是 AVAudioSession.Category.soloAmbient,它解释了关闭来自其他应用程序音频。

7K10
  • iOS - Swift UISearchController取消按钮

    UISearchController�取消按钮 关于UISearchController�设置就不多说了,可以参考《UISearchController�仿微信搜索框》或者自行上网查找。...情况 本人想实现微信通讯录上方搜索框功能,但在搜索框取消按钮设置这个卡住,在网上搜了个遍,没有�合适做法,经过不懈探索,终于找到解决方案,遂前来记录一下。...方案 添加两个属性 // 记录是否已经找到取消按钮 lazy var hasFindCancelBtn: Bool = { return false }() // 定时器(用来定时查找取消按钮)...link: CADisplayLink = { CADisplayLink(target: self, selector: #selector(findCancel)) }() 提供查找并设置取消按钮方法...附上相关项目:Swift 3.0 高仿微信

    88320

    iOS开发之AVKit框架使用 原

    AVRoutePickerView只是一个按钮,其用来方便用户可以直接在应用程序内唤出AirPlay选择窗口。...从上面的示例代码也可以看出,对于AVRoutePickerView,我们基本没有任何可以进行自定义余地,从UI效果到按钮触发方法全部由AVKit封装好了,它只是一个唤出系统功能接口。...三、AVPlayerViewController     AVPlayerViewController是对AVFoundation中AVPlayer与AVPlayerLayer封装,它是一个封装好视图控制器...*)playerViewController; //是否自动关闭控制器当画中画开始时 - (BOOL)playerViewControllerShouldAutomaticallyDismissAtPictureInPictureStart...:(AVPlayerViewController *)playerViewController; //画中画结束后回复之前用户界面 - (void)playerViewController:(AVPlayerViewController

    2.2K20

    WPF使用Storyboard做个带旋转特效关闭按钮

    见过迅雷7右边广告关闭按钮,鼠标移上去的话有个旋转90度效果,感觉挺酷,于是用WPF也实现了一下。很简单,定义几行XAML就搞定了。...WPF做这种效果还是很好使~~ 用SL封装了个效果: <Image Width="20" Height="20" Source="image\close.png"                       ...ToolTip="<em>关闭</em>"                    Opacity="0.5" Canvas.Left="720" Canvas.Top="3"                     MouseLeftButtonDown...                                                               其中给图片定义个旋转变化...当鼠标进入时候触发器触发故事板在0.2秒时间内使图片以中心为圆点旋转90度。SO EASY!!

    1.6K30

    iOS新视频开发框架AVPlayerViewContoller与画中画技术

    在iOS8中,iOS开发框架中引入了一个新视频框架AVKit,其中提供了视频开发类AVPlayerViewController用于在应用中嵌入播放视频控件。...iOS9系统后,iPad Air正式开始支持多任务与画中画分屏功能,所谓画中画,即是用户可以将当前播放视频缩小放在屏幕上同时进行其他应用程序使用。这个革命性功能将极大方便用户使用。...二、AVPlayerViewController使用与其中方法属性解析         使用AVPlayerViewController首先需要引入两个框架,如下: #import <AVKit/AVKit.h...是默认支持画中画操作,如上图所示,视频播放界面右下角出现一个画中画按钮,点击这个按钮当前播放视频界面会缩小显示在屏幕角落,这时点击Home键回到主界面,或者切换到其他应用程序,视频播放不会中断。...:(AVPlayerViewController *)playerViewController{     return YES; } //用户点击还原按钮 从画中画模式还原回app内嵌模式时调用方法

    2.1K40

    iOS视频播放基本方法

    play]; //第六步:在退出界面的时候,关闭播放器,移除通知 - (void)dealloc{ //当前视图控制器pop之后并不会关闭播放,需要手动关闭 [self.playerController...notification.userInfo[MPMoviePlayerThumbnailImageKey]; self.captureImgView.image = image; } 3.实现截屏 //添加一个按钮...AVPlayerViewController是iOS8新增视频框架AVKit中一个播放器类。...由于iOS9弃用前两种播放器类原因,AVPlayerViewController也将变得更加常用。AVPlayerViewController适合开发播放界面要求不是很高应用。...使用这种方式播放优点在于可以指定播放界面的原始尺寸大小,但是值得注意AVPlayerViewController必须被当前视图控制器所持有,以防止被当做局部变量被释放。

    4.4K20

    JavaShutdown Hook机制:优雅地关闭应用程序

    Java应用程序在结束运行时,需要做一些清理工作,例如释放资源、关闭数据库连接等。为了保证这些清理工作能够顺利完成,Java提供了Shutdown Hook机制。...一、什么是Shutdown Hook机制Shutdown Hook机制是Java提供一种钩子机制,允许开发者在Java应用程序结束运行前执行一些清理工作。...当Java应用程序启动时,主线程会创建一个Shutdown线程,并将所有注册Shutdown Hook添加到Shutdown线程Hook列表中。...示例代码下面是一个简单示例代码,演示如何使用Shutdown Hook机制来关闭数据库连接。...;当JVM关闭时,会输出“数据库连接已关闭!”。四、Shutdown Hook机制注意事项Shutdown Hook中不能执行一些可能会阻塞操作,否则会导致Java虚拟机无法正常退出。

    81500

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

    既然MPMoviePlayerViewController这个类已经过时了,我们就导入AVKit使用最新AVPlayerViewController如果这个类是9.0之后出,我们就做兼容模式,如果...@available(iOS 8.0, *) open class AVPlayerViewController : UIViewController { 果然和我们预想一样,果然是兼容iOS8.0...let videoPlay = AVPlayerViewController() 发现AVPlayerViewController已经不像MPMoviePlayerViewController这样初始化...videoPlayController.player = videoPlay 播放界面总算是出来了,但是点击按钮会崩溃,崩溃信息如下。...经过测试也是可以,界面看着有点丑 我们把按钮距离底部约束为40,删除之前上约束。 这是最后界面。 对应工程文件下载下载

    60120

    iOS 视频播放方式整理

    UI,包括一些播放按钮,进度条,以及全屏切换等等       2、KRVideoPlayerController   集成自 MPMoviePlayerController             继承之后直接使用...我们自定义那些播放时候控件就是添加在它上面的,比如我们能看到播放按钮,停止按钮,或者播放进度条等等。      ...4、AVPlayerViewController       它是Apple 帮我们封装好可以一个视频播放控制器,它就有一个  @property (nonatomic, strong, nullable...delegate:                                设置代理       5、AVPlayerViewControllerDelegate       这个代理就是前面说AVPlayerViewController...协议,它主要是为画中画设置代理,前面介绍 AVPlayerViewController 时候有看到过一个是否允许画中画属性,具体什么是画中画相信大家都了解,看过直接朋友应该都看到了这个技术点具体应用

    2.6K100
    领券