如何检查 AVPlayer 是否有视频或只有音频?

2023-11-25

我尝试播放一些“媒体”,但在 AVPlayer 启动时我不知道它是音频还是视频。

我连接了播放器层并且工作正常。

self.avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:[[PCPlayerManager sharedManager] audioPlayer]];
avPlayerLayer.videoGravity = AVLayerVideoGravityResizeAspect;
avPlayerLayer.frame = CGRectMake(0, 0, videoView.frame.size.width, videoView.frame.size.height);
[videoView.layer addSublayer:avPlayerLayer];

但是我如何检查是否有视频以便我可以添加/删除一些选项?


来自Apple的示例代码项目AVSimplePlayer:

// Set up an AVPlayerLayer according to whether the asset contains video.
if ([[(AVAsset *)asset tracksWithMediaType:AVMediaTypeVideo] count] != 0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查 AVPlayer 是否有视频或只有音频? 的相关文章

随机推荐

  • 如何在 WPF DataGrid 中定义自己的列?

    我有一个AutoGenerateColumnsWPF DataGrid 在代码隐藏中绑定到 LINQ to SQL 效果很好 但当我脱下AutoGenerateColumns并定义我自己的列 它告诉我 使用 ItemsSource 之前 项
  • 我可以写入 Azure 网站上的文件系统吗?

    我可以写入 Azure 网站上的文件系统吗 例如 从仪表板更新或安装 WordPress 中的插件 主题 AFAIK 这在 Heroku 上是不可能的 那么 Azure 网站呢 当然可以在Azure网站的文件系统上写入 但是 您的写入权限仅
  • 使用 SQLAlchemy ORM 高效更新数据库

    我正在启动一个新应用程序并考虑使用 ORM 特别是 SQLAlchemy 假设我的数据库中有一个列 foo 我想增加它 在直接 sqlite 中 这很简单 db sqlite3 connect mydata sqlitedb cur db
  • JSON 模式中的“$id”属性用法

    我在用着JSON 模式用于验证数据 我认为使用保留关键字 id 可能会导致我的模式出现错误 该字段的目的是指定另一个平台上的属性的 REMOTE ID 是什么 所以这就是 起源 ID 您能否告知 id 是什么以及我是否犯了一个严重错误并且该
  • 将 OpenCV 构建为静态库

    也许我遗漏了一些东西 但我无法构建 opencv 的静态库 Setup 库班图 12 04 海湾合作委员会4 6 3 使 3 81 cmake 2 8 7 opencv 2 4 6 1 现场最后可用 我手动完成所有工作 我尝试使用 cmak
  • 渲染方法 libgdx 中的增量值

    我在 Screen 类的渲染方法中检查了增量值 我看到它不是恒定的 任何人都可以说出它来自哪里以及它是什么吗 不同的屏幕尺寸有什么不同吗 如果是这样 我们怎样才能克服这个问题呢 我问这个是因为我的玩家跳跃取决于增量时间 有时它跳得太高 Th
  • 使用可选关键字参数定义类的 __init__ 方法的更好方法是什么?

    我希望班级做同样的事情如下 class Player def init self kwargs try self last name kwargs last name except pass try self first name kwar
  • 反应改变输入值 onChange

    这是我的搜索表单 js handleKeywordsChange必须处理输入keywords changes import React from react import ReactDOM from react dom class Sear
  • 使用相同的代码,TCPDF 比 FPDF 慢两倍

    我目前使用 FPDF 创建一些相当复杂的报告 并尝试升级到 TCPDF 但我发现通过 TCPDF 运行的相同代码大约慢两倍 因为我的 PDF 生成时间已经长达一分钟 所以我实在无法承受这种速度变慢的后果 但我真的很想利用一些 TCPDF 功
  • 返回受 UPDATE 语句影响的行数

    如何获取存储过程 SQL Server 2005 中受 UPDATE 查询影响的行数作为结果集 例如 CREATE PROCEDURE UpdateTables AS BEGIN SET NOCOUNT ON added to preven
  • RxJS 中的链接可观察量

    我正在学习 RxJS 和 Angular 2 假设我有一个包含多个异步函数调用的承诺链 这些调用取决于前一个函数的结果 如下所示 var promiseChain new Promise resolve reject gt setTimeo
  • 程序类型已存在:com.google.common.util.concurrent.ListenableFuture

    我刚刚将我的项目转换为 androidx 现在收到 程序类型已存在 错误com google common util concurrent ListenableFuture 我已经浏览了多个 stackoverflow 解决方案和一些 Gr
  • 如何使用 php cURL 发送请求负载?

    如何使用 php cURL 发送请求负载 我正在尝试将文件上传到免费托管文件的服务器 当将文件发送到curl时 我不接受它并重定向到错误页面 当我从Interfas执行此操作时 我可以看到文件如何发送到代码检查器中 我应该如何设置 cURL
  • 主干引导集合未正确初始化

    我有一个问题 确实很难注意到 因为在大多数情况下一切正常 只有当我尝试在集合初始化函数中操作数据时 我才发现了问题 主干文档位于http backbonejs org Collection constructor 如果你定义了一个初始化函数
  • 核心数据背景上下文最佳实践

    我需要处理核心数据的大型导入任务 假设我的核心数据模型如下所示 Car identifier type 我从服务器获取汽车信息 JSON 列表 然后我想将其与我的核心数据同步Car对象 含义 如果是新车 gt 创建新的核心数据Car来自新信
  • 安装 Gatsby Starter 时出错“安装“sharp”模块时出错”

    Problem 我正在尝试在 Windows 上建立一个 Gatsby 入门项目 具体来说 这个启动项目 https www gatsbyjs com starters hasura gatsby gitbook starter 版本 节点
  • 带有 C# 控制台应用程序的系统托盘图标不会显示菜单

    我有一个小型 C NET 4 0 控制台应用程序 我希望用户在右键单击系统托盘图标时能够通过显示菜单进行交互 我可以毫无问题地向托盘添加图标 但我就是无法显示菜单 我正在使用以下代码 NotifyIcon trayIcon new Noti
  • 如何从 Python 中的列表、字符串或元组中提取最后两项?

    用户将输入字符串 列表或元组 我必须提取第一个 do 和最后两个值 对于前两个值 ls 2 对于最后两个值我该怎么做 If n是最后两项可以切片的值的总数 n 1 我怎样才能把它写进代码里呢 ls 2 切片中的负数只需通过添加来计算len
  • Twisted:创建线程池然后守护进程会导致无信息的挂起

    我正在 Twisted 中开发一个网络应用程序 其中一部分由用 Django 编写的 Web 界面组成 我希望使用 Twisted 的 WSGI 服务器来托管 Web 界面 并且我已经编写了一个可用的 tap 插件来允许我使用twistd
  • 如何检查 AVPlayer 是否有视频或只有音频?

    我尝试播放一些 媒体 但在 AVPlayer 启动时我不知道它是音频还是视频 我连接了播放器层并且工作正常 self avPlayerLayer AVPlayerLayer playerLayerWithPlayer PCPlayerMan