首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >获取视频的准确时长

获取视频的准确时长
EN

Stack Overflow用户
提问于 2017-05-30 16:04:46
回答 2查看 14.3K关注 0票数 22

我正在制作一个播放器,我想要列出所有文件,并在所有文件之前,我想要呈现视频的持续时间。

唯一的问题是我没有得到正确的视频持续时间,有时它返回的持续时间是完全错误的。

我已经尝试了以下解决方案:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let asset = AVAsset(url: "video.mp4")

let duration = asset.duration.seconds

所以它,时间有时会给出一个值,有时会给出另一个值。如果有人知道可能的解决方案,我很高兴听到。

我已经使用一种可能的解决方案更新了代码,但它不能很好地工作,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let asset = AVAsset(url: url)

let duration = asset.duration

let durationTime = CMTimeGetSeconds(duration)

let minutes = Double(durationTime / 60)

我尝试了一个时长为11:47分钟的视频,结果返回me = 11: 78,视频怎么会有11分78秒?

所以我认为问题出在视频上,我选择了另一个1:16分钟的视频,然后再次返回1:26 (10秒错误)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-30 17:14:00

这对我来说很有效:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import AVFoundation
import CoreMedia

...

    if let url = Bundle.main.url(forResource: "small", withExtension: "mp4") {
        let asset = AVAsset(url: url)

        let duration = asset.duration
        let durationTime = CMTimeGetSeconds(duration)

        print(durationTime)
    }

对于视频here,它打印"5.568“,这是正确的。

根据注释进行编辑:

如果视频除以60 sec/min时返回707秒,则为11.78。这是11.78分钟,或者11分钟加上0.78min * 60sec/min = 47sec,总数是11 min 47 sec

票数 37
EN

Stack Overflow用户

发布于 2021-01-05 04:55:34

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if let url = Bundle.main.url(forResource: "small", withExtension: "mp4") {
        let asset = AVAsset(url: url)

        let duration = asset.duration
        let durationTime = CMTimeGetSeconds(duration)
        let minutes = durationTime/60
        let seconds = durationTime%60
        let videoDuration = "\(minutes):\(seconds)"
        print(videoDuration)
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44267013

复制
相关文章
在标签打印软件中如何快速对齐标签内容
在标签打印软件中制作标签的时候,有的时候标签内容比较多,文字长短不一,如果不好好排版的话,会感觉很乱,为了标签的美观,在标签打印软件中添加完需要的文字之后,可以选择我们想要排版的文字,点击软件中的对齐按钮,使标签内容迅速对齐。具体操作如下:
用户5746110
2019/09/10
4.1K0
日本小哥如何使用深度学习和TensorFlow种黄瓜?
导读 现在说机器学习和深度学习的应用只受限于人们的想象力并不夸张。不仅全世界的数据科学家们为之着迷,甚至在日本的农场,一位小哥为了减轻妈妈的工作负担,也开始尝试采用深度学习和Tensor Flow种黄瓜。 大约一年前,曾为日本汽车业内一名嵌入式系统设计师的MakotoKoike开始在父母的黄瓜种植园帮工。根据大小形状颜色和其他属性来分选黄瓜这件事所需的工作量令他吃惊。 Makoto Koike那一生致力于提供鲜脆黄瓜的父亲就很为他那些仍带有细刺的扎手黄瓜感到自豪。颜色鲜艳又直又粗并且有许多刺的黄瓜被认为是
大数据文摘
2018/05/24
1.3K0
使用VBA在工作表中列出所有定义的名称
有时候,工作簿中可能有大量的命名区域。然而,如果名称太多,虽然有名称管理器,可能名称的命名也有清晰的含义,但查阅起来仍然不是很方便,特别是想要知道名称引用的区域时,如果经常要打开名称管理器查找命名区域,会非常麻烦,也浪费时间。
fanjy
2022/11/16
6.6K0
如何修改django的app在admin中显示的名称
在django的开发中,很多时候我们希望app在admin中显示成我们想要的中文名,而不是显示默认的app_label名称。 比如我们有一个blog应用,在我们的blog app目录下面,默认会生成一个apps.py文件,类似:
小海怪的互联网
2019/09/25
3.4K0
如何修改django的app在admin中显示的名称
Netty在Dubbo中的线程名称
在项目中,我们会使用RocketMQ和Dubbo.前者用于发送或消费消息,后者用于两个模块之间的接口调用.
书唐瑞
2022/06/02
1.3K0
Netty在Dubbo中的线程名称
在 Linux 中如何按名称和 Grep 内容查找文件?
如果您使用该find命令递归搜索某些文件,然后将结果通过管道传递给该grep命令,那么您实际上将解析文件路径/名称,而不是它们的内容。
网络技术联盟站
2022/05/11
6.7K0
在 Linux 中如何按名称和 Grep 内容查找文件?
黑盒测试中关键截图如何打点
Android黑盒测试过程中如何进行有效的打点是我们经常遇到的问题,我们一般会在脚本内部进行数据打点,也可以使用其他进程录屏或截图。那我们如何选取合适的方式进行打点记录呢?下图是对常用打点方式的统计!对于测试开发人员来说有效的关键截图信息是最直观的数据,可以很快定位问题场景!本文重点介绍如何在Shell进程内统计屏幕截图变化。
霍格沃兹测试开发Muller老师
2022/12/04
5310
【说站】css中a标签伪类如何使用
1、书写顺序必须是访问前link,访问后visited,鼠标移动hover,鼠标点击active。
很酷的站长
2022/11/24
1.3K0
在条码打印软件中如何打印黑底白字标签
在条码打印软件中绘制普通文本添加文字的的时候,一般都是白底黑字的。但是有的时候,个别客户想要实现黑底白字的效果,这个在条码打印软件中该如何设置呢?接下来我们一起来看下在条码打印软件中将文字设置成黑底白字的操作步骤:
用户5746110
2019/09/18
2.2K0
在条码打印软件中如何打印黑底白字标签
在条码打印软件中绘制普通文本添加文字的的时候,一般都是白底黑字的。但是有的时候,个别客户想要实现黑底白字的效果,这个在条码打印软件中该如何设置呢?接下来我们一起来看下在条码打印软件中将文字设置成黑底白字的操作步骤:
用户5746110
2019/09/10
2.3K0
在 Java 中如何使用 transient
Java语言的transient不像class、synchronized和其他熟悉的关键字那样众所周知,因而它会出现在一些面试题中。这篇文章我将为大家讲解transient。
哲洛不闹
2018/09/18
6.1K0
在 Java 中如何使用 transient
在Scrapy中如何使用aiohttp?
当我们从一些代理IP供应商购买代理IP时,他们可能是提供一个网址供我们查询当前可用的代理IP。我们周期性访问这个网址,拿到最新的IP,再分给爬虫使用。
青南
2020/07/16
6.5K0
在HTML中如何使用CSS?
一、前言 在 HTML 中使用 CSS,包括内联式、内嵌式、链接式和导入式。 二、分类 2.1 内联式 内联式是所有样式应用方式中最为直接的一种,它通过对 HTML 标记使用 属性,将 CSS 代码直接写在其中。 内联式是最简单、直接的 CSS 使用方法,但它的针对性很明显,只能作用于当前标记,造成代码冗余,维护比较困难。 2.2 内嵌式 内嵌式与内联式使用方法不同,它将 CSS 代码写在 标记之间,并需要采用 标记进行声明。 使用内嵌式 CSS 用法时 CSS 代码将被集中放在 标记中,这样方便查
企鹅号小编
2018/02/01
8.6K0
在Zeppelin中如何使用Hive
我们来看看强大的 Zeppelin 能够给 Hive 带来什么吧。首先需要安装 Hive 和 Zeppelin。具体请参考如下两篇文章:
smartsi
2020/10/27
6.7K0
在Zeppelin中如何使用Hive
在Python中如何使用Elasticsearch?
在这篇文章中,我将讨论Elasticsearch以及如何将其整合到不同的Python应用程序中。
马哥linux运维
2019/06/10
8.1K0
在Python中如何使用Elasticsearch?
在不是Thread类的子类中,如何获取线程对象的名称呢?
我想要获取main方法所在的线程对象的名称,该怎么办呢?   遇到这种情况,Thread类就提供了一个很好玩的方法:     public static Thread currentThread()
黑泽君
2018/10/11
4.9K0
【DB笔试面试739】在Oracle中,如何获取集群的名称(Cluster name)?
集群名称信息是记录在OCR中的,因此可以通过转储OCR的方法来获得集群名称,另外,也可以使用cemutlo工具直接查看集群名称信息,如下所示:
AiDBA宝典
2020/02/24
2.2K0
在Intellij IDEA中修改模板中user变量名称
默认IDEA取的是当前系统的用户名作为这个变量的,但是如果系统的用户名不是你期望的用户名,那么修改系统的用户名在IDEA中也还是使用的是旧的用户名。
前Thoughtworks-杨焱
2021/12/08
3.6K0
WebUI自动化中截图的使用
做UI自动化时,有时候可能因为需要把某个步骤的界面显示截图保存,这里我用到的是webdriver的截图功能。
虫无涯
2023/01/31
4640
在XCode中如何使用高级查询
对于一个框架来说,仅有基本的CURD不行,NewLife.XCode同时还提供了一个非常宽松的方式来使用高级查询,以满足各种复杂的查询需求。 (本文同样适用于其它任何数据访问框架) 先上图看一个复杂查询的效果图: image.png 这里有8个固定的查询条件和1个模糊查询条件,加上多表关联(7张表)、分页、统计,如果用传统的做法,这个查询会非常的复杂。 这个页面有XCode实现,核心查询部分共100多行代码,包括一个查询、一个总记录数分页、两个统计(就是业绩、提成等的统计),看看高级查询代码: image
大石头
2018/01/15
5.1K0
在XCode中如何使用高级查询

相似问题

黄瓜Java截图

22

如何使用黄瓜标签实现黄瓜并行执行?

12

无法在黄瓜报告中嵌入屏幕截图

17

如何在黄瓜报告中嵌入屏幕截图?

15

在黄瓜中使用标签选项

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文