问题标签 [cmtime]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 收到带有意外值的 CMTime 参数
我正在尝试将 CMTime 值作为函数参数传递...我的函数如下所示:
所以我在某个地方打电话
如果我在那里打印thumbnailTime
,我会看到在我的情况下的预期值很简单kCMTimeZero
(thumbnailTime.timeScale
是 1,thumbnailTime.value
是 0)
但是如果我time
从函数内部打印,我会得到一个非常奇怪的值:
time.value
是 6089232256,time.timescale
是 0。
我错过了什么?
ios - Swift iOS -CMTimeMakeWithSeconds:警告:由于时间尺度非常低而引入了 -0.433 的错误
我正在使用 AVPlayer 播放视频。我跟着这个视频教程让我们构建那个应用程序
我使用 UISlider/scrubber 来配合视频的当前帧/时间。
我有一个 10.43 秒的视频,我使用快进功能将我带到最后。
视频走到了最后,但问题是滑块只能到达 10 秒点,我无法让它到达最后 0.43 秒。我收到以下警告消息:
滑块的值是在 中确定的player?.addPeriodicTimeObserver()
,因此,当我按快进而不是滑块走到最后时,它会停止几个点(注意空白):
如何获得更准确的值,以便我的滑块可以一直滑动到最后?
ios - 哪些类型的 CMTime 无效?
kCMTimeInvalid 是无效的 CMTime,但是根据 Apple 文档,还有更多的无效 CMTime,它们是什么?CMTime“无效”是什么意思?它是溢出,未启动还是其他?
https://developer.apple.com/documentation/coremedia/kcmtimeinvalid
所有字段均为 0,因此您可以调用或填充 0 来生成大量字段。不要使用 (time == kCMTimeInvalid) 对此进行测试,除此之外还有许多 CMTimes 也是无效的。请改用 CMTIME_IS_INVALID(time)。
我发现了一些 CMTime 无效的情况:
当 flags(CMTimeFlags) kCMTimeFlags_Valid 未设置时。
kCMTimeFlags_Valid 必须设置,否则 CMTime 被视为无效。
CMTimeAdd的一些操作
+无穷大 + +无穷大 == +无穷大
-infinity + -infinity == -infinity +infinity + -infinity == 无效 -infinity + +infinity == 无效
ios - 如何在 CMTimeMake 的时间刻度 Int32 中传递浮点数
我正在研究 CMTimeMake,以便为视频添加慢动作和快动作效果。我们必须除以视频比例以获得快速效果,并乘以视频比例以获得慢速效果。
这里是:
现在根据我的要求,有一个滑块(介于 0.1 到 2.0 之间),用户将在其中为慢速和快速效果选择特定的视频比例值。该值以浮点数形式出现。
我的问题是当我在上面的代码中传递像 0.8 这样的浮点值时,然后:
let videoScaleFactor = Int64(0.8) // 这返回 0
我怎样才能将精确值 0.8 返回到这个?请给我提意见。
ios - 将 CMTime 值转换为 swift
我有以下两行代码要迁移到 Swift,但我有点卡住了。
将下面的行转换为开头时,出现以下错误。
二元运算符“/”不能应用于“CMTimeScale”(又名“Int32”)和“Float”类型的操作数
我尝试了几种不同的方法,但似乎没有任何效果。
ios - AVAssetWriter startSessionAtSourceTime 不接受 CMTIme 值
我的应用程序旨在使用 Xcode 10.0 作为 IDE 录制视频并分析在 iOS 11.4 下生成的帧。使用 AVCaptureMovieFileOutput 成功录制视频,但需要分析过渡到 AVAssetWriter 的帧和 RosyWriter 之后的建模代码 [ https://github.com/WildDylan/appleSample/tree/master/RosyWriter ]。代码是用 ObjC 编写的。
我在 captureOutput: didOutputSampleBuffer: fromConnection: delegate 中遇到问题。捕获第一帧后,使用从第一帧提取的设置配置 AVAssetWriter 及其输入(视频和音频)。一旦用户选择记录,捕获的 sampleBuffer 就会被分析和写入。我尝试使用 AVAssetWriter startSessionAtSourceTime: 但显然 CMSampleBufferGetPresentationTimeStamp 从样本缓冲区返回 CMTime 的方式有问题。sampleBuufer 日志似乎显示具有有效值的 CMTime。
如果我实现: CMTime sampleTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer); [self->assetWriter startSessionAtSourceTime: sampleTime] 生成的错误是 '*** -[AVAssetWriter startSessionAtSourceTime:] invalid parameter not compatible: CMTIME_IS_NUMERIC(startTime)' 。
如果我使用 [self->assetWriter startSessionAtSourceTime:kCMTimeZero] 错误“警告:无法在进程中执行支持代码来读取 Objective-C 类数据。这可能会降低可用类型信息的质量。” 生成。
当我记录 sampleTime 时,我读到 - value=0,timescale=0,epoch=0 & flags=0。我还记录了 sampleBuffer 并在下面显示,然后是相关代码:
==================================================== ==
}
swift - 收到致命错误:双精度值无法转换为 Int,因为它是无限的或 NaN
该代码用于播客应用程序。
选择要播放的播客时失败...导致音频播放,但应用程序冻结,直到重新启动。
编辑:错误在线发生let totalSeconds = Int(CMTimeGetSeconds(self))
ios - 如何访问当前正在录制的视频的长度
我有一个 iOS 相机应用程序,当用户开始按住一个按钮时,我想开始录制,并且在该 longTap 方法中能够知道录制当前持续了多长时间......在它结束之前。我想知道视频到现在为止的时长,或者换一种说法,用户已经录制了多长时间。
我的主要问题是如何在长按方法中知道用户录制了多长时间。因此,如果录音达到 X,它可以做 Y。
我目前尝试过:
视频录制的fileOutput方法中的以下内容(在用户让按钮后调用)
确实开始录制我得到了视频的缩略图。你会看到一个 num 变量但忽略它......它总是会产生零,因为这是开始。
LongTap 方法
然而,我所拥有的是非常错误的。它几乎无法使用,绝对无法释放。
谢谢你的帮助。
swift - 如何将 CMTime 存储在 UserDefaults 中然后解析它?
好吧,我尝试在设备内存中记住 AVPlayer 中的 currentTime(),以便在应用重启后继续播放视频。
我正在制作用于从我的 Raspberry PI 观看电影的应用程序。有任何想法吗?
swift - 如何在 Swift 4 中设置视频的偏移量?Seek(to:) 似乎不起作用
我在设置 AVQueuePlayer 视频的偏移量时遇到问题。我已经尝试过 seek( 来设置视频的偏移量,但它似乎不起作用。视频总是从 0 秒开始。其他要求是通过控制播放它并循环播放,这些都可以正常工作。
我很喜欢从 0 秒以外的任何其他时间播放视频。