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

iOS Swift -如何获取本地和远程视频的宽高比?

在iOS Swift中,可以使用AVFoundation框架来获取本地和远程视频的宽高比。

对于本地视频,可以使用AVAsset类来获取视频的宽高比。下面是一个示例代码:

代码语言:txt
复制
import AVFoundation

func getLocalVideoAspectRatio(url: URL) -> CGFloat? {
    let asset = AVAsset(url: url)
    let videoTrack = asset.tracks(withMediaType: .video).first
    
    if let videoSize = videoTrack?.naturalSize {
        let aspectRatio = videoSize.width / videoSize.height
        return aspectRatio
    }
    
    return nil
}

对于远程视频,可以使用AVPlayer类来获取视频的宽高比。下面是一个示例代码:

代码语言:txt
复制
import AVFoundation

func getRemoteVideoAspectRatio(url: URL, completion: @escaping (CGFloat?) -> Void) {
    let asset = AVAsset(url: url)
    let playerItem = AVPlayerItem(asset: asset)
    let player = AVPlayer(playerItem: playerItem)
    
    player.currentItem?.asset.loadValuesAsynchronously(forKeys: ["tracks"]) {
        var aspectRatio: CGFloat?
        
        let videoTrack = playerItem.asset.tracks(withMediaType: .video).first
        if let videoSize = videoTrack?.naturalSize {
            aspectRatio = videoSize.width / videoSize.height
        }
        
        DispatchQueue.main.async {
            completion(aspectRatio)
        }
    }
}

这些代码片段可以用于获取本地和远程视频的宽高比。你可以将视频的URL传递给这些函数,并通过回调或返回值获取宽高比。

关于AVFoundation框架的更多信息,你可以参考腾讯云的产品介绍链接:AVFoundation - iOS开发 - 腾讯云

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

相关·内容

如何实现本地代码远程实时同步

如果我有一台国外服务器,还能解决速度问题,另外还不会占用我本地机器 CPU 资源。 但问题是,我要在自己机器上写代码呀,编译运行又在远端,那代码怎么同步到远端呢?...那么本节就来介绍下一种本地代码实时同步远程服务器方法吧。...既然要实现本地和服务器文件同步,那么当然必须要指定本地项目文件夹远程哪个文件夹同步吧。在哪里指定呢?切换到第二个选项卡,Mappings,如图所示: ?...Mappings 这里我们可以通过选择 LocalPath Deployment Path 分别指定本地远程文件夹名称。注意这里后者指的是相对服务器工作目录路径。...远程 SSH 点了之后就会提示选择哪个远程服务器,选了之后,下方 Terminal 就弹出来了,普通 SSH Shell 一模一样。 ?

4.9K30

iOS视频接入 - TRTC多人视频会议

pod 'TXIMSDK_iOS' pod 'TXLiteAVSDK_TRTC' 第二步:配置隐私权限 向系统申请使用权限,在info.plist文件中添加一下两个key对应描述: key 描述...userSig腾讯云设计一种安全保护签名,获取方式请参考 如何计算 UserSig。callback登录回调,成功时 code 为0。...userSig 腾讯云设计一种安全保护签名,获取方式请参考 如何计算 UserSig。 callback 登录回调,成功时 code 为0。...房主在创建会议室前需要设置用户头像、名称、设置音质、音量计算、开启麦克风和摄像头、开始音频采集、设置本地是否静音、设置美颜参数(需要美颜功能时)、设置本地画面镜像预览模式、本地音、视频推流。...TRTCMeeting.sharedInstance().muteRemoteAudio(item.userId, mute: mute) } 禁画某个用户 调用之后该用户画面会定格在 /** * 屏蔽某个远程用户视频

2.4K11
  • 直播系统开发中关于开发环境你了解多少?

    u=282655418,3382627768&fm=26&gp=0.jpg 2、iOS开发:在直播系统开发中iOS开发环境是使用Xcode软件进行开发,而Xcode这个软件官方仅支持在Mac上进行安装开发...,iOS开发语言我们是使用Objective-C语言进行开发【也简称OC】,同样OC也并不是唯一一种可以开发iOS语言,还有Swift;在直播系统开发中Socket相关代码嵌套使用Swift开发语言...二、后端开发: 1、在直播系统开发中一般后端使用是PHP语言进行开发,一般做开发时,会直接使用服务器环境,而不是本地环境,因为后端主要是为APP提供接口,如果使用本地环境,APP是没有办法通过域名方式来访问接口获取数据...其实这就是一种协议,大家可以简单理解为支持FTP协议工具,连接到服务器,然后直接修改服务器上文件。 2、FTP工具一般是进行在线编辑文件类,那如何我们远程为服务器安装一个软件呢?...可能会有很多人想到通过类似qq远程之类,其实这是不对,大部分服务器提供商,都不会提供可视化,就是带有图形界面的远程方案,那如何链接呢?

    57320

    如何使用File Browser结合cpolar实现远程访问共享本地储存文件

    ,它可以帮助用户轻松地管理他们文件和文件夹,并通过Web界面进行访问共享。...File Browser主要功能包括文件和文件夹上传、下载、重命名、复制、粘贴、删除等操作,以及文件搜索、预览分享链接生成。它还支持用户权限管理,以确保文件安全性隐私性。...下面就和大家分享一下如何在Windows系统搭建这款网盘神器filebrowser并结合cpolar内网穿透实现公网访问本地云盘文件。...3.安装cpolar内网穿透 此时我们网盘神器FileBrowser已经部署完成,并能成功登录,不过只能在本地访问,如果打算在公网环境随时随时访问内网FileBrowser,我们需要安装cpolar...点击创建 然后点击左侧状态中在线隧道列表,可以看到刚才创建FileBrowser隧道,生成了两个公网地址,有两种访问方式,分别是http https,随意复制一个地址,在公网电脑浏览器打开即可

    33010

    如何写出一手好小程序代码,从架构说起

    简单来说,它会直接将 native 相关属性方法,直接转换成 prototype object 上方法属性。 那在 JS 代码中,如何执行 Swift 代码呢?...那应该如何使用该 JSExport 协议呢?...直接本地执行 JS 的话,我们需要先加载本地 js 文件,然后执行。...跨平台互通 支持微信小程序与Android、iOS、PC、Web主流平台互通;满足一对一、一对多实时音视频通话场景需要。...▼ 音视频交流群友,正在召唤你 扫一扫下方二维码,加小编微信,进群交流 (由于群友已超100人,需加成员拉进群) ▼ 扫一扫下方二维码,关注“腾讯云视频”公众号 获取更多视频技术服务 点击“阅读原文”

    1.9K20

    开发者所需要知道 iOS 10 SDK 新特性

    如何提供适时有效通知,往往决定了用户活跃留存可能性。在 iOS 10 上,Apple 对通知进行了加强革新。...现在,为了更好地处理管理通知,本地及推送通知相关 API 被封装到了全新框架 UserNotifications.framework 中。...在 iOS 10 中,开发者服务器有机会在本地或者远程通知发送给用户之前再进行修改。...同时,该书现有的 Swift 2 相关描述示例也会按照 Swift 3 语法规范特性进行更新,以适应最新版本。您可以访问 swifter.tips 获取这本书更多相关内容。...不管名字如何改变,Apple 在 iOS,macOS,watchOS tvOS 这四个产品线上布局已经完成,整个生态现在看来也还十分健康。

    93410

    iOS视频接入 - TRTC接入实时视频通话

    image.png 由于TRTCCalling同时依赖于TRTCIM SDK,所以我们还需要通过pod导入“TXIMSDK_iOS”。...- (void) exitRoom; 1v1视频通话 视频通话是在音频通话上增加远端视频显示、本地视频采集、推送、摄像头切换等 获取远端视频渲染 /** * 开始显示远端视频画面 * *...在收到 SDK onUserVideoAvailable(userid, YES) 通知时,可以获知该远程用户开启了视频, * 此后调用 startRemoteView(userid) 接口加载该用户远程画面...,可根据自己实际情况选择 /** * 停止显示远端视频画面,同时不再拉取该远端用户视频数据流 * * 调用此接口后,SDK 会停止接收该用户远程视频流,同时会清理相关视频显示资源。.../** * 停止本地视频采集及预览 */ - (void)stopLocalPreview; 暂停/恢复推送本地视频数据 /** * 暂停/恢复推送本地视频数据 * * 当暂停推送本地视频

    5.8K149

    iOS开发常用之网络、网页

    苹果提供过一个可达性类,用于检测网络状态但是该类由于年代久远,并不支持ARC该项目旨在提供一个苹果可达性类替代品,支持ARC使用方式iOS网络监测如何区分2,3,4G Reachability.swift...RealReachability - iOS实际网络连接状态检测,解决“如何判断设备是否真正连上互联网?而不是只有网络连接”问题。...Localize-Swift - Localize-Swift一款开发者不可或缺国际化本地化字符串框架支持类库。同样地,使用简单,直观又方便。...从而可以轻松获取(或输出)对象属性名,类型值变量。...Device-swift - 可以非常方便获取设备型号屏幕尺寸,实现起来难度不大,大家可以学习一下源码。

    5.3K10

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

    开始 首先看下主要内容: 了解如何使用 AVKit AVFoundation 框架构建视频流应用。内容来自翻译。...在本教程中,您将学习如何: 添加本地视频。 添加流媒体视频。 启用播放控件。 实现循环。 实现画中画。...这就是应用程序如何用数据填充现有列表方式。 视频本身来自嵌入在应用程序包中 JSON 文件。 如果您好奇,您可以查看 Video.swift 以了解它们是如何获取。...2) 在这里,您获取 url 并创建一个 AVPlayer 对象。 AVPlayer 是在 iOS 上播放视频核心。 播放器对象可以启动停止您视频,更改其播放速率,甚至可以调高调低音量。...这包括一个播放按钮、一个静音按钮用于前进后退 15 秒跳过按钮。 2. Adding Remote Playback 那很容易,对吧? 如何远程 URL 添加视频播放? 那一定要难很多!

    7K10

    iOS组件化(一)—Cocopods创建私有库

    安装过程中会提示你输入要下载工程配置(如下:),依次输入:iOSSwift、Yes、Quick、Yes,其中第二步如果想创建OC库,请输入ObjC。...打开这个文件,里面是工程配置。我们在用pod命令安装库时,就是找到这个文件,获取地址下载库,并根据配置下载好依赖库其它工程配置。...就能看到Cocopods所有本地仓库列表了,例子库是AaronSwift。我们也可以浏览一下其它目录,就能找到很多后缀为podspec文件。...pod install命令就是根据要安装名字在这些目录中遍历,找到对应配置文件后,解析里面的地址配置进行下载。...Pod update命令是从远程库,把这些配置文件下载到本地这个目录中,再install。

    2.4K30

    Agora iOS SDK-开始聊天

    在上一篇Agora iOS SDK-快速入门中聊了如果配置Agora iOS SDK,这一篇将看下如何使用Agora如何进行聊天。...初始化 AgoraRtcEngineKit是Agora SDK入口,通过它就可以完成聊天基本设置。比如设置远程视频本地视频配置、声音控制、以及设置摄像头等。..._VideoProfile_360P, swapWidthAndHeight: false) 远程视频设置一样,首先需要一个view用来接收本地视频显示,定义一个本地显示本地视频view:...videoCanvas.renderMode = .render_Adaptive agoraKit.setupLocalVideo(videoCanvas) } 上面完成了本地视频远程视频设置显示...源代码地址:https://github.com/jjz/agora-swift 参考文档:https://docs.agora.io/cn/user_guide/API/ios_api.html 发布者

    1.3K20

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

    kxmovie - 使用ffmpeg影片播放器,修改说明,修改代码,基于FFmpegkxMoive艰难编译运行。 ijkplayer - B站开源视频播放器,支持AndroidiOS。...IOS录音播放功能demo - 比较完整ios录音播放功能实现。 CameraManager - 相机管理封装类库。看着极好用样子---- swift。...Eleven - Eleven Player - 一个使用FFmpeg实现简单强大iOS开源播放器。 mobileplayer-ios.swift - 很不错高度可定制播放器项目。...TBPlayer - 视频变下变播,把播放器播放过数据流缓存到本地,支持拖动。采用avplayer。...实现说明 WMPlayer - WMPlayer视频播放器,AVPlayer封装,继承UIView,想怎么玩就怎么玩。支持播放mp4,m3u8,3gp,mov,网络本地视频同时支持。

    2.8K51

    iOS开发常用之完整项目加、文章

    高仿斗鱼电视 - 高仿斗鱼电视,点击头部滚动视图可以播放视频。...SimpleMemo - 易便签已经转到Swift2.0,全面适配iOS9Watch OS2,并支持iPhone6siPhone6sPlus3D Touch功能,包括图标快捷键内容预览。...XXYAudioEngine.swift - 基于NSURLSessionAVAudoPlayer在线音乐工具,可以把音乐保存在本地,也可以支持后台播放,后台下载,最低支持iOS7,swift版本...======== 好文章 自定义转场动画 - 3种方法〜关于自定义转场动画。 iOS提高效率方法工具 - iOS提高效率方法工具。...【iOS图片压缩工具】效率最高是tiny-png:在线压缩,前500张免费。 iOS推送之远程推送 ,iOS推送之本地推送。 动态部署方案 - iOS应用架构谈动态部署方案。

    2.3K21

    iOS开发常用之UI模糊效果、自动版式

    Snap - Snap是砌体自动布局DSLSwift版本,是一款轻量级布局框架,使用了更好语法封装了AutoLayout.Snap支持iOSOS X....PureLayout - PureLayout是iOSOS X Auto Layout终极API--非常简单,又非常强大.PureLayout通过一个全面的Auto Layout API扩展了UIView...Auto-Layout-Showcase - swift,AutoLayout进阶演示,宽高比约束,比例约束,不等约束,视差约束,低优先级约束等高级用法,无需写码即可进行复杂页面布局,Demo还动态模拟了各屏幕下效果...来自百度知道iOS小组内部分享。 UIView-FDCollapsibleConstraints - 一个AutoLayout辅助工具,最优雅方式解决自动布局中子查看动态显示隐藏问题。...支持Cell,LabelTableview高度自适应,致力于做最简单易用AutoLayout库。 Neon.swift - 功能强大UI布局神器。

    1.6K30

    Hipo 2.0 Swift重写,限时免费!限时免费!限时免费!

    ,于是: 看国内翻译swift语法文档 继续看其他版本swift语法资料 ……如此重复纠结…… 看完swift语法,发现对iOS开发还是一无所知,买了bitfountain出iOS 8,swift...视频教程,教程属于入门教程,然后用iPad看视频,电脑开着Xcode,Google联系,倒也跟得上,iOS原生开发逐渐入门。...看完bitfountain视频,发现对着空屏幕还是无从下手,又发现iTunes出了斯坦福白胡子老头iOS swift教程,又开始进入左边iPad,右边电脑模式…… 一边看斯坦福教程,一边也用swift重写...YouTube上有不少高质量视频教程。 Apple iOS API官方文档是个好东西,先看别入门教程,代码阶段常开iOS API官方文档。...在数据网络存储,多设备同步实现方案选择中纠结了很久,初期考虑使用类似LeanCloud方式,但是后来发现似乎LeanCloud方案无法仅依靠客户端实现增量同步(可能是我没想到如何做),需要依赖云端代码

    2.4K20

    iOS 端实现1对1音视频实时通话

    申请权限 首先,我们来看一下 iOS 端是如何获取访问音视频设备权限。相比 Android 端而言,iOS获取相关权限要容易很多。其步骤如下: 打开项目,点击左侧目录中项目。...获取本地视频 WebRTC 库引入成功之后,我们就可以开始真正 WebRTC 之旅了。下面,我们来看一下如何获取本地视频并将其展示出来。 在获取视频之前,我们首先要选择使用哪个视频设备采集数据。...那么,紧接下来问题就是如何将采集到视频展示出来了。 在iOS端展示本地视频与Android端还是有很大区别的,这主要是由于不同系统底层实现方式不一样。...下我们我们就逐一看它们是如何实现吧! 获取 socket 在 iOS获取 socket 其实很简单,我们来看一下代码: ......在本文中,我通过对下面几个主题介绍,向大家完整讲解了 iOS 端该如何实现一个实时音视频通话程序: 权限申请 引入 WebRTC 库 采集并显示本地视频 信令驱动 创建音视频数据通道 媒体协商 渲染远端视频

    4.3K10

    精品资源汇总:(持续更新)

    】(核心原理:按照图片宽高比例进行显示图片全部内容,并自动适应高度)完整demo源码 1、原理文章:https://kunnan.blog.csdn.net/article/details/112976838...2、应用场景:商品详情页以及需要展示大量图片界面 3、核心原理 : 3.1)按照图片原来宽高比进行缩 3.2)UICollectionView高度自适应 II 蓝牙打印商品价格标签、交易小票...、HTML字符串与富文本互转 HTML字符串与富文本互转(加载本地html) demo 源码 1、下载地址:https://download.csdn.net/download/u011018979/...1、iOS《用户协议及隐私政策》弹框(包含超链接属性)【本文包含完整demo源码,demo支持中英文切换】 2、UICollectionView自适应案例详解:【商品详情页】(核心原理:按照图片宽高比例进行显示图片全部内容...5、我已加入CSDN内容合伙人计划,亲爱各位粉丝,可以添加我CSDN官方微信号,和我近距离互动聊天,为您答疑解惑 #公众号:iOS逆向 CSDN认证博客专家 Swift SwiftUI Objective-C

    1K30
    领券