ios(swiftui) 畫中畫

?一、環境

要實現畫中畫 ios系統必須是 iOS14+

本文開發環境

xcode14.2

二、權限配置

  1. 在項目導航器中單擊項目,然后單擊Signing & Capabilities
  2. 單擊 + Capabilit
  3. 搜索Background Modes,然后雙擊將其添加為功能。
  4. 在新添加的Background Modes部分,選中Audio, AirPlay, and Picture in Picture復選框。

三、實例

import Foundation
import SwiftUI
import AVKit
struct VideoPlayerView: UIViewControllerRepresentable {var videoURL: URL?// 創建UIViewControllerfunc makeUIViewController(context: Context) -> AVPlayerViewController {let controller = AVPlayerViewController()controller.player = AVPlayer(url: videoURL!)controller.allowsPictureInPicturePlayback = truecontroller.delegate = context.coordinatorreturn controller}// 更新UIViewControllerfunc updateUIViewController(_ uiViewController: AVPlayerViewController, context: Context) {uiViewController.player = AVPlayer(url: videoURL!)uiViewController.allowsPictureInPicturePlayback = trueuiViewController.showsPlaybackControls = true // 顯示控制層if #available(iOS 14.2, *) {//進入后臺時是否自動打開
//               uiViewController.canStartPictureInPictureAutomaticallyFromInline = true} else {// Fallback on earlier versions}}func makeCoordinator() -> Coordinator {Coordinator(self)}class Coordinator: NSObject, AVPlayerViewControllerDelegate {var playerView: VideoPlayerViewinit(_ playerView: VideoPlayerView) {self.playerView = playerView}func playerViewController(_ playerViewController: AVPlayerViewController, restoreUserInterfaceForPictureInPictureStopWithCompletionHandler completionHandler: @escaping (Bool) -> Void) {// 在這里,你可以決定在退出畫中畫模式后是否保持在當前視圖。// 這個例子中我們選擇保持在當前視圖。completionHandler(true)}}
}struct playView: View {var body: some View {VStack {VideoPlayerView(videoURL: URL(string: "http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8")!).frame(height: 400)}
//        .onAppear {
//            player.play()
//        }
//        .onDisappear {
//            player.pause()
//        }}
}

注意:畫中畫只能在真機上運行,xcode上的模擬器沒有畫中畫功能

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/163144.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/163144.shtml
英文地址,請注明出處:http://en.pswp.cn/news/163144.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

前端——設計模式

0 設計模式分類 創建型:幫助創建對象(工廠模式、單例模式、建造者模式、原型模式)結構型:幫助設計代碼結構(適配器模式、裝飾者模式、享元模式)行為型:幫助組織模塊行為(策略模式、…

Pyqt5實現多線程程序

主從架構 Pyqt常常使用**主從架構(Master-Workers 架構)**來避免界面卡死的情況。 Master-Workers 架構就像它的名字,一個master統領著幾個workers一起干活。其中某個worker倒下了不會導致整體任務失敗。matser不用干活,因此可以…

分布式鎖之基于redis實現分布式鎖(二)

2. 基于redis實現分布式鎖 2.1. 基本實現 借助于redis中的命令setnx(key, value),key不存在就新增,存在就什么都不做。同時有多個客戶端發送setnx命令,只有一個客戶端可以成功,返回1(true);其他…

市場是變化的?這種悖論fpmarkets澳福一秒打破

你是不是始終認為市場是經常變化的,其實這是不對的,這種認識fpmarkets澳福今天一秒打破。 市場經常變化嗎?眾多投資者無需過多思考,就認為答案是肯定的。因為無論是在互聯網的哪個角落,都可以看到這樣的信息。即使我們沒有深入研…

NLP基本知識

NLP基本知識 詞嵌入&詞向量 詞嵌入(Word Embedding)是一種將單詞或文本轉化為向量表示的技術,它在自然語言處理(NLP)中廣泛應用。詞嵌入的目標是將文本數據映射到一個低維度的向量空間中,以便計算機可…

Python---函數的嵌套(一個函數里面又調用了另外一個函數)詳解

函數嵌套調用------就是一個函數里面又調用了另外一個函數。 基本語法: # 定義 函數B def funcB():print(這是funcB函數的函數體部分...)# 定義 函數A def funcA():print(- * 80) # 這一行為了更好區分print(這是funcA函數的函數體部分...)# 假設我們在調用funcA…

設計模式-Adapter

定義 適配器設計模式是一種結構型設計模式,用于將一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。 適配器模式包括三種形式:類適配器模式、對象適配器模式、接口適配器模式&a…

Ubuntu18 Opencv3.4.12 viz 3D顯示安裝、編譯、使用、移植

Opencv3.*主模塊默認包括兩個3D庫 calib3d用于相機校準和三維重建 ,viz用于三維圖像顯示,其中viz是cmake選配。 參考: https://docs.opencv.org/3.4.12/index.html 下載linux版本的源碼 sources。 查看cmake apt list --installed | grep…

App Cleaner Uninstaller Pro 一鍵清理,徹底卸載Mac應用

隨著科技的不斷發展,Mac電腦已經成為許多用戶工作和娛樂的首選。然而,隨著時間的推移,我們的Mac電腦上可能會堆積大量的無效文件和冗余數據,這不僅占用了寶貴的磁盤空間,還可能影響到系統的運行速度。為了解決這一問題…

基于51單片機zigbee溫室大棚監控系統

**單片機設計介紹,基于51單片機zigbee溫室大棚監控系統 文章目錄 一 概要二、功能設計設計思路 三、 軟件設計原理圖 五、 程序六、 文章目錄 一 概要 基于51單片機和Zigbee技術的溫室大棚監控系統是一種用于監測和控制溫室大棚環境的設備。以下是一個基本的設計介…

STM32 CAN通信自定義數據包多幀連發亂序問題

場景: can標準幀中每一幀只能傳輸8字節,而應用中傳輸一包的內容往往超過8字節,因此需要把一個包拆成多個幀發送,接收端才把收到的多幀重新組裝成一個完整的包 問題描述 在一問一答的兩塊板間通信,多幀連發是能夠按照…

UDP分片和丟包與TCP效果對比

UDP 分片 與 丟包,UDP 真的比 TCP 高效嗎? UDP(用戶數據報協議)和TCP(傳輸控制協議)在很多方面都有顯著的區別。總體來說,TCP更適合需要可靠傳輸的應用,例如網頁瀏覽、電子郵件等&a…

信創系列之大數據,分布式數據庫產業鏈跟蹤梳理筆記…

并購優塾 投行界的大叔,大叔界的投行 【產業鏈地圖,版權、內容與免責聲明】1)版權:版權所有,違者必究,未經許可不得翻版、摘編、拷貝、復制、傳播。2)尊重原創:如有引用未標注來源…

CentOS 7啟動時報“Started Crash recovery kernel arming.....shutdown....”問題處理過程

有臺虛擬機由于CPU負載過高而宕機,宕機重啟后停在“Started Crash recovery kernel arming…shutdown…”階段,如下所示: 重置虛擬機,進入grub菜單,按e編輯啟動選項,在linux16 行末,加上&…

【考研】數據結構(更新到循環鏈表)

聲明&#xff1a;所有代碼都可以運行&#xff0c;可以直接粘貼運行&#xff08;只有庫函數沒有聲明&#xff09; 線性表的定義和基本操作 基本操作 定義 靜態&#xff1a; #include<stdio.h> #include<stdlib.h>#define MaxSize 10//靜態 typedef struct{int d…

【追求卓越02】數據結構--鏈表

引導 今天我們進入鏈表的學習&#xff0c;我相信大家對鏈表都很熟悉。鏈表和數組一樣&#xff0c;作為最基礎的數據結構。在我們的工作中常常會使用到。但是我們真的了解到數組和鏈表的區別嗎&#xff1f;什么時候使用數組&#xff0c;什么時候使用鏈表&#xff0c;能夠正確的選…

監控員工上網有什么軟件

監控員工上網的軟件主要用于監控員工在工作時間內的網絡行為&#xff0c;包括瀏覽網頁、使用社交媒體、發送郵件等。通過監控員工上網行為&#xff0c;企業管理者可以更好地了解員工的工作狀態和行為&#xff0c;規范員工的上網行為&#xff0c;提高工作效率&#xff0c;同時也…

SSL證書對網站的作用及影響?

SSL證書作為當下互聯網的重要安全件&#xff0c;包括搜索引擎的收錄、網站是否具備信任的條件以及HTTP2.0傳輸協議的相互作用等&#xff0c;尤其是瀏覽器對古老的http協議警告提示不安全將直接影響到用戶的信任度以及品牌形象&#xff0c;對于網站來說可謂是必不可少。 SSL證書…

Webstorm 插件文件目錄顏色分析——白藍綠紅黃灰

Webstorm 插件文件目錄【白色、藍色、綠色、紅色、黃色、灰色】對應當前文件發生什么了&#xff0c;即文件夾當前狀態。 WebStrom配置好git或SVN后文件顏色代表的含義&#xff1a; 白色&#xff1a;本地無修改內容 藍色&#xff1a;文件內容有修改&#xff0c;暫未提交到git…

python命令行 引導用戶填寫可用的ip地址和端口號

字多不看&#xff0c;直接體驗 待補充 演示代碼 # -*- coding:UTF-8 -*- """ author: dyy contact: douyaoyuan126.com time: 2023/11/23 10:29 file: 引導用戶填寫可用的ip地址和端口號.py desc: xxxxxx """# region 引入必要的依賴 import …