jjzjj

ios - AVQueuePlayer 寻求问题(至 :) and CMTime

我有一个AVQueuePlayer,我正在尝试在按下按钮时向后搜索5秒。我的代码如下:funcseekBack(){guardletcurrentTime=self.player?.currentTime()else{return}letcurrentTimeSeconds=CMTimeGetSeconds(currentTime)letnewTimeSeconds=max(currentTimeSeconds-5,0)letnewTime=CMTimeMakeWithSeconds(newTimeSeconds,currentTime.timescale)self.player?.s

objective-c - AVMutableAudioMix - 无法淡出

我正在尝试淡出AVComposition轨道(它是视频的音轨)。我可以在开始时淡化它没问题,但在最后淡化它时遇到很多麻烦。这是我的代码:AVMutableAudioMixInputParameters*audioMixParameters=[AVMutableAudioMixInputParametersaudioMixInputParametersWithTrack:compositionAudioTrack];[audioMixParameterssetVolume:0.0atTime:kCMTimeZero];[audioMixParameterssetVolumeRampFro

iphone - 从视频中获取缩略图总是返回 null

我正在尝试从视频中获取第一个缩略图。我尝试了以下方法:一个AVURLAsset*asset=[[AVURLAssetalloc]initWithURL:[NSURLfileURLWithPath:_moviePath]options:nil];AVAssetImageGenerator*gen=[[AVAssetImageGeneratoralloc]initWithAsset:asset];gen.appliesPreferredTrackTransform=YES;CMTimetime=CMTimeMakeWithSeconds(0.0,600);NSError*error=nil

ios - CMTime 和 AVFoundation 中的单帧移动

我正在尝试使用AVFoundation播放视频。我将以下代码用于将播放推进一帧的按钮。它间歇性地工作,在某些执行中它会做正确的事情并前进一帧,但大多数时候我必须按下按钮3或4次才能前进一帧。这让我觉得这是某种精度问题,但我无法弄清楚它是什么。每次运行时,新的CMTime似乎都以相同的量前进。我的另一个理论是,这可能是由于currentTime未按照我的帧速率设置为精确的帧边界(通过搜索视频引起的)。但我不知道如何以我的帧速率“捕捉”到最近的帧。AVAssetTrack*videoTrack=...;Float64frameRate=[videoTracknominalFrameRate

ios - CMTimeCompare 如何工作?

CMTimeCompare是如何工作的?Apple似乎从他们的文档中遗漏了返回值。https://developer.apple.com/library/mac/#documentation/CoreMedia/Reference/CMTime/Reference/reference.html我假设如果时间相等,它会返回零并根据哪个更大返回正数或负数1? 最佳答案 来自CMTime.h:Returnsthenumericalrelationship(-1=lessthan,1=greaterthan,0=equal)oftwoCMT

ios - 使用 Swift 在 AVPlayer 中进行持续时间倒计时的 periodicTimeObserver

我有一个AVPlayer的时间观察器,效果很好。我试图让它从音频0的持续时间开始倒计时。它可以工作并且倒计时了,我只是在格式化方面遇到了一些问题。如果你看到下面的图片,你就会明白我的意思。它从整分钟:秒3:00到奇怪的数字3:-1等等。知道我做错了什么吗?这里是定时器的代码:letinterval=CMTime(value:1,timescale:1)self.audioPlayer?.addPeriodicTimeObserver(forInterval:interval,queue:DispatchQueue.main,using:{(progressTime)inletsecon

ios - 将 CMTimeRange 拆分为多个 CMTimeRange block

假设我有一个从starttime零构造的CMTimeRange,并且持续时间40秒。我想通过X秒分隔符将此CMTimeRange分成多个block。所以block的总持续时间将与原始持续时间相同duration,并且每个startTime将反射(reflect)endTime。最后一个block将是剩余秒数的模数。例如,对于40秒的视频和每个block15秒的分隔符:第一个CMTimeRange-开始时间:0,持续时间:15秒。第二个CMTimeRange-开始时间:15,持续时间:15秒。第三个CMTimeRange-开始时间:30,持续时间:10秒。(剩下的)我尝试过的:我尝试对总

ios - CMTimeMakeWithSeconds 中的首选时间刻度

我正在实现自定义相机,为此我想设置曝光持续时间。我设置slider属性的代码是-slider.maximumValue=Float(CMTimeGetSeconds(camera.activeFormat.maxExposureDuration))slider.minimumValue=Float(CMTimeGetSeconds(camera.activeFormat.minExposureDuration))现在每当更改slider时设置曝光时间就会出现问题。我的代码看起来像这样-change(duration:CMTimeMakeWithSeconds(Double(slider

swift - 收到 fatal error : Double value cannot be converted to Int because it is either infinite or NaN

该代码用于播客应用。importAVKitextensionCMTime{functoDisplayString()->String{lettotalSeconds=Int(CMTimeGetSeconds(self))letseconds=totalSeconds%60letminutes=totalSeconds/60lettimeFormatString=String(format:"%02d:%02d",minutes,seconds)returntimeFormatString}}选择要播放的播客时失败...导致音频播放但应用程序卡住,直到重新启动。编辑:错误发生在行lett

ios - Swift iOS -CMTimeMakeWithSeconds : warning: error of -0. 433 由于时间尺度非常短而引入

我正在使用AVPlayer播放视频。我跟着这个视频教程Let'sBuildThatApp我使用UISlider/scrubber来配合视频的当前帧/时间。我有一个10.43秒的视频,我使用快进功能将我带到最后。@objcfileprivatefuncfastForwardButtonTapped(){guardletplayerItem=playerItemelse{return}guardletplayer=playerelse{return}letduration:Float64=CMTimeGetSeconds(playerItem.duration)letseekTime:CM